python 创建文件 权限_python创建tmp目录权限

我正在使用python脚本来创建linux文件系统的副本.我在创建的/ tmp目录上的权限有问题. / tmp目录应具有1777权限,即:

ls -l /

drwxrwxrwt 17 root root 16384 2011-03-01 09:50 tmp

当我做以下,

os.mkdir('/mnt/tmp',1777)

我得到了奇怪的权限:

ls -l /

d-wxr----t 2 root root 4096 2011-03-01 09:53 tmp

然后我想知道umask和chmod,所以我尝试了这个:

os.mkdir('/mnt/tmp')

old_mask=os.umask(0000)

os.chmod('/mnt/tmp',1777)

os.umask(old_mask)

但我仍然得到意外的权限:

ls -l /

d-wxrwS--t 2 root root 4096 2011-03-01 09:57 tmp

但是,什么能够为我提供创建目录的正确权限如下:

os.mkdir('/mnt/tmp')

os.system("chmod 1777 /mnt/tmp")

我应该注意到我正在通过sudo运行这个脚本,但是在/ etc / sudoers中没有提到任何umask设置.以实际root用户身份运行它没有任何区别.它不可能像普通用户一样运行,因为我正在制作FS的副本,其中必须包含只能访问root的文件.

这里有什么想法?任何帮助将不胜感激.

解决方法:

您应该将权限提供为八进制数.在Python 2.x中,只需使用01777而不是1777.在Python 3.x中,使用0o1777.

标签:python,linux

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值