Linux的文件/目录访问权限

时间:2022-06-25 12:02:20

一直以为对这个概念非常懂,但这次还是犯了眼高手低的毛病。

配置服务器遇到了一个问题,对某个WEB目录(例如"/bin"),有两个用户要对其进行读写操作:

  1. 首先apache服务器要对这个目录进行读写,而apache进程的所属账号是www-data用户,www-data分组。
  2. 其次要通过远程登录账号,使用git更新这个目录下的代码,远程登录账号是:server用户,server分组。

  下面是所需步骤:

  1. 由于更新代码要改动大部分文件,所以将/bing目录的所有者改为server用户:
    • sudo chown -R server:server /bing
  2. 由于www-data只修改/bing/images子目录,所以将/bing/images子目录所有者修改为www-data:
    • sudo chown -R www-data:www-data /bing/images
  3. 而server有时也会修改/bing/images目录,所以将server用户添加到www-data分组中:
    • sudo adduser server www-data
  4. 将/bing/images目录的权限改为分组可写:
    • sudo chmod g+w /bing/images

如此一来,就比较好的解决了不同用户访问同一目录的权限问题。

写完发现这些命令我都会敲,以前也敲过,用起来就不太顺溜了,智商堪忧~

另外,在把server用户添加到www-data分组时,用错了命令:

  sudo usermod -G www-data server

结果清空了server用户所属的其他分组,比如admin分组,造成sudo失效,正在重启服务器进入Recovery Mode修复中。