我们有两个普通用户&根.所以当搞乱/ var / www中的文件时,而不是……
chown -R www-data:www-data
……一直以来,处理这个问题的好方法是什么?
补充问题:你是如何获得权限的硬核?
这一直是协作开发环境中的一个问题.
解决方法
groupadd www-pub
usermod -a -G www-pub usera ##必须使用-a附加到现有组
usermod -a -G www-pub userb
groups usera ##显示用户组
>将/ var / www下所有内容的所有权更改为root:www-pub
chown -R root:www-pub / var / www ## -R for recursive
>将所有文件夹的权限更改为2775
chmod 2775 / var / www ## 2 =设置组ID,7 = rwx为所有者(root),7 = rwx为组(www-pub),5 = rx为world(包括apache www-data用户)
设置组ID(SETGID)位(2)会将组(www-pub)复制到该文件夹中创建的所有新文件/文件夹.其他选项是SETUID(4)来复制用户ID,而STICKY(1)我认为只允许所有者删除文件.
有一个-R递归选项,但不会区分文件和文件夹,所以你必须use find,如下所示:
find / var / www -type d -exec chmod 2775 {}
>将所有文件更改为0664
find / var / www -type f -exec chmod 0664 {}
>将用户的umask更改为0002
其他umask控制默认文件创建权限,0002意味着文件将有664和目录775.设置此项(通过编辑/ etc / profile底部的umask行),意味着一个用户创建的文件可由其他用户写入www-group中的用户无需chmod他们.
通过创建文件和目录并使用ls -l验证所有者,组和权限来测试所有这些.
注意:您需要注销/以更改组才能生效!