如果我以root用户身份从我的本地SSH服务器ssh …并创build文件在一个虚拟服务器的web根目录,如何确保在该文件夹内创build的文件和文件夹总是有一些不同的用户/组作为所有者而不是根?
或者有什么办法,我可以通过rootlogin上传文件后运行一个命令…以便该文件夹中的所有文件将具有相同的用户/组作为父目录?
你不能强制所有权,但你可以强制组。 为此,将目录组设置为您select的组,然后设置组粘贴位。 例如,如果该组是web
,目录是/www/primary
那么你应该这样做:
chgrp web /www/primary chmod g+s /www/primary
人们的umask
设置仍然会控制权限设置。
新创build的文件将始终由创build它的用户拥有,并且(默认情况下)它是其成员的组。
但是,如果在父目录上设置了setgid
访问权限标志,则在其下创build的新文件和子目录将inheritance父目录的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/
如果现在在dir /目录下创build(以root用户身份)一个新文件,它将由用户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命令。