为文件夹分配权限

为文件夹分配权限

如果我以 root 用户身份从本地 ssh 到我们的 unix 服务器...并在虚拟服务器 Web 根目录中创建文件,我如何确保在该文件夹内创建的文件和文件夹始终具有不同的用户/组作为所有者而不是 root?


或者有什么方法可以在通过 root 登录上传文件后运行命令...以便该文件夹中的所有文件都具有与父目录相同的用户/组?

答案1

您无法强制所有权,但可以强制组。为此,请将目录的组设置为您选择的组,然后设置组粘性位。例如,如果组是web,目录是,/www/primary那么您可以执行以下操作:

chgrp web /www/primary
chmod g+s /www/primary

人们的umask设置仍然会控制权限设置。

答案2

新创建的文件始终归创建它的用户和(默认情况下)其所属的组所有。

但是,如果你setgid在父目录上设置了访问权限标志,那么在其下创建的新文件和子目录将继承父目录的 groupID。

例如:

~$ sudo addgroup testing
Adding group `testing' (GID 1001) ...
Done.
~$ mkdir dir
~$ chown :testing dir/ # Change owner to group "testing"
~$ chmod g+s dir/      # Set the setgid flag
~$ ls -ld dir/
drwxr-sr-x 2 root testing 4096 2010-10-19 04:20 dir/

如果您现在(以 root 身份)在 dir/ 目录下创建一个新文件,则它将由用户 root 和组 testing 所有,而不是由用户 root 和组 root 所有:

~$ touch dir/file
~$ ls -l dir/file
-rw-r--r-- 1 root testing 0 2010-10-19 04:46 dir/file

你可能想看看umask命令也是如此。

相关内容