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

How to automatically set permissions of future/new files in Ubuntu?

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

但是,当我 运行 一个 Python 脚本将创建一个名为 testoutput 的文件夹并将文件写入其中时,该文件夹是使用 root 创建的权限,因此在将文件写入文件夹时出现 permission denied 错误。

如何确保范围内的新文件在执行 chown 时也能获得相同的权限?有没有办法确保在 Ubuntu?

新文件夹i的权限:

drwxr-xr-x 2 root   root

而现有文件夹的权限是:

drwxrwxr-x 2 ubuntu ubuntu

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

这由 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 如何使组权限可写。