【发布时间】:2011-03-01 23:11:05
【问题描述】:
我正在使用 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 才能访问的文件。
这里有什么想法吗?任何帮助将不胜感激。
【问题讨论】: