Linux的文件/目录访问权限
一直以为对这个概念非常懂,但这次还是犯了眼高手低的毛病。
配置服务器遇到了一个问题,对某个WEB目录(例如"/bin"),有两个用户要对其进行读写操作:
- 首先apache服务器要对这个目录进行读写,而apache进程的所属账号是www-data用户,www-data分组。
- 其次要通过远程登录账号,使用git更新这个目录下的代码,远程登录账号是:server用户,server分组。
下面是所需步骤:
- 由于更新代码要改动大部分文件,所以将/bing目录的所有者改为server用户:
- sudo chown -R server:server /bing
- 由于www-data只修改/bing/images子目录,所以将/bing/images子目录所有者修改为www-data:
- sudo chown -R www-data:www-data /bing/images
- 而server有时也会修改/bing/images目录,所以将server用户添加到www-data分组中:
- sudo adduser server www-data
- 将/bing/images目录的权限改为分组可写:
- sudo chmod g+w /bing/images
如此一来,就比较好的解决了不同用户访问同一目录的权限问题。
写完发现这些命令我都会敲,以前也敲过,用起来就不太顺溜了,智商堪忧~
另外,在把server用户添加到www-data分组时,用错了命令:
sudo usermod -G www-data server
结果清空了server用户所属的其他分组,比如admin分组,造成sudo失效,正在重启服务器进入Recovery Mode修复中。