目前,我sudo chown -R ubuntu:ubuntu /home/ubuntu/<folder>
。
但是,当我运行一个Python脚本来创建一个名为testoutput
的文件夹并向其写入文件时,该文件夹是使用root
权限创建的,因此获得{{1}将文件写入文件夹时出错。
在执行permission denied
时,如何确保该范围内的新文件获得相同的权限?有没有办法确保在Ubuntu中?
新文件夹i的权限:
chown
虽然现有文件夹的权限是:
drwxr-xr-x 2 root root
答案 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使得组权限可写。