Answers:
要设置组,给/var/www
了setgid的位:
chgrp www-data /var/www
chmod g+s /var/www
还要调整子目录: find /var/www -type d -exec chmod g+s {} +
这将使所有新创建的文件继承父目录的组,而不是用户的组。
要设置默认的组权限,您将必须使用ACL。设置“默认” ACL:
setfacl -m "default:group::rwx" /var/www
还要调整子目录: find /var/www -type d -exec setfacl -m d:g::rwx {} +
注意:文件系统必须启用ACL支持。有时默认情况下它是打开的;在ext3或ext4上,您可能会得到“不支持操作”,在这种情况下,必须手动启用它:
对于当前安装的文件系统: mount -o remount,acl /
永久- 以下方法之一:
在fstab级别:编辑/etc/fstab
以acl
在选项字段中具有
在文件系统级别: tune2fs -o acl /dev/diskname
chmod
还会获取所有文件。
install
设法绕过目录默认ACL。
/var/www/html/projects
文件夹,当www-data创建文件时,它具有rw-rw-r
权限,但是当我在控制台中执行某些操作时,它使用创建一个文件rw-r--r
。如何强制新创建的文件始终具有rw-rw-r
权限?
umask
。每个目录的默认权限可以通过setfacl
在主帖子中使用来更改。
这可能会使一些人对setgid的“原始性”答案感到困惑,如果文件夹的组不同于您自己的组,则可能需要以root用户身份运行chmod,但是不会出现任何错误,表明您需要执行此操作。
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir
$ chmod g+s dir #no errors
$ ls -ld dir
drwxrwxr-x 2 luke testgroup 4096 Mar 9 10:44 dir #but nothing changed
$ touch dir/nosudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo #and the group is still wrong
$ sudo chmod g+s dir
$ ls -ld dir
drwxrwsr-x 2 luke testgroup 4096 Mar 9 10:44 dir #the setgid bit is now on
$ touch dir/withsudo && ls -l dir/
-rw-rw-r-- 1 luke luke 0 Mar 9 10:51 nosudo
-rw-rw-r-- 1 luke testgroup 0 Mar 9 10:51 withsudo #and group is set
stor
/appe
?通过HTTPPUT
吗?通过外壳帐户?这些细节很重要,因为它们会极大地影响可能的答案,因此需要您提出问题。