如何在Ubuntu中自动设置future / new文件的权限?

时间:2017-08-17 12:09:58

标签: python ubuntu file-permissions

目前,我sudo chown -R ubuntu:ubuntu /home/ubuntu/<folder>

但是,当我运行一个Python脚本来创建一个名为testoutput的文件夹并向其写入文件时,该文件夹是使用root权限创建的,因此获得{{1}将文件写入文件夹时出错。

在执行permission denied时,如何确保该范围内的新文件获得相同的权限?有没有办法确保在Ubuntu中?

新文件夹i的权限:

chown

虽然现有文件夹的权限是:

drwxr-xr-x 2 root   root

2 个答案:

答案 0 :(得分:2)

在几乎所有操作系统中,新文件的所有者由创建文件的用户上下文确定。即您最有可能将repsective python脚本作为root运行。 如果你之后递归chown基本目录testoutput - 当然是root - 你应该没问题。 如果您不希望root成为初始所有者,请考虑不首先将相应的脚本作为root运行,而是将其作为所需的所有者。 或者看看ACLs

答案 1 :(得分:1)

这受umask设置的约束,此设置默认设置为

root@brad:~# grep ^UMASK /etc/login.defs
UMASK           022
root@brad:~#

(虽然用于远程登录等的pam和其他服务有替代)。

有了这个,我们有:

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使得组权限可写。