Python 如何在Ubuntu中自动设置未来/新文件的权限?
目前,我做Python 如何在Ubuntu中自动设置未来/新文件的权限?,python,ubuntu,file-permissions,Python,Ubuntu,File Permissions,目前,我做sudochown-rbuntu:ubuntu/home/ubuntu/ 但是,当我运行一个Python脚本,该脚本将创建一个名为testoutput的文件夹并向其中写入文件时,该文件夹是使用root权限创建的,因此,在将文件写入文件夹时出现权限被拒绝的错误 在执行chown操作时,如何确保该范围内的新文件也获得相同的权限?在Ubuntu中有没有办法确保这一点 新文件夹i的权限: drwxr-xr-x 2 root root 而现有文件夹的权限为: drwxrwxr-x 2 ub
sudochown-rbuntu:ubuntu/home/ubuntu/
但是,当我运行一个Python脚本,该脚本将创建一个名为testoutput
的文件夹并向其中写入文件时,该文件夹是使用root
权限创建的,因此,在将文件写入文件夹时出现权限被拒绝的错误
在执行chown
操作时,如何确保该范围内的新文件也获得相同的权限?在Ubuntu中有没有办法确保这一点
新文件夹i的权限:
drwxr-xr-x 2 root root
而现有文件夹的权限为:
drwxrwxr-x 2 ubuntu ubuntu
在几乎所有操作系统中,新文件的所有者由创建文件的用户上下文确定。也就是说,您最有可能以root
的身份运行repsective python脚本。
如果您递归地chown
基本目录testoutput
之后-当然,作为root
-您应该很好。
如果不希望<代码>根/代码>成为初始所有者,那么首先不要考虑将相应的脚本运行为<代码>根>代码,而是作为所需的所有者。
或者看看。这由umask
设置控制,默认设置为
root@brad:~# grep ^UMASK /etc/login.defs
UMASK 022
root@brad:~#
(尽管pam和其他远程登录服务等pp有覆盖)
因此,我们有:
root@brad:~# umask # four digits because of suid bit
0022
root@brad:~# mkdir tempDir1
root@brad:~# ls -ld tempDir1
drwxr-xr-x 2 root root 4096 Aug 17 07:22 tempDir1
root@brad:~# umask 002
root@brad:~# umask
0002
root@brad:~# mkdir tempDir2
root@brad:~# ls -ld tempDir?
drwxr-xr-x 2 root root 4096 Aug 17 07:22 tempDir1
drwxrwxr-x 2 root root 4096 Aug 17 07:22 tempDir2
root@brad:~#
您可以看到,将中间数字从022更改为002是如何使组权限可写的。这可能会有帮助吗