【Nginx】修改 nginx 用户 id 和 gid
目录
警告
本文最后更新于 2021-05-16,文中内容可能已过时。
前因
近期创建的 web 服务器上安装了新的 nginx 扩容 web 节点,然后发现挂载了 AWS 的 EFS 在 /upload/目录下,ll 发现文件的用户和用户组的权限都不是 nginx,后来得知发现一开始那台 EFS 挂载机的 nginx uid 和 gid 是 993 和 997,与新的这台的 nginx id 不一致,导致权限错乱。
解决办法
- 先停掉 nginx 服务
- 修改 nginx gid 和 uid,不能与已经存在的冲突,如果非要用已经存在的,要先修改已经存在的uid 和 gid,通过
cat /etc/passwd
寻找 - 改了之后要修改之前为 nginx 属主属组的文件和目录,用
chown -R nginx
或者chown -R nginx.nginx
递归修改
查看 当前 nginx 用户 id
|
|
查看文件和目录属性
|
|
修改 nginx 的 gid
|
|
再次查看文件和目录属性,这个时候 nginx 用户组就变成 993了
|
|
修改 nginx 的 uid 就报错了,该用户正在使用,无法修改
|
|
停掉 nginx,在进行修改
|
|
第三次查看文件和目录权限,默认原来的 uid 和 gid
|
|
修改文件目录属性为 nginx
|
|
全局确认一下还有哪些文件或者目录的属主和属组没有更改
|
|
useradd 创建示例:创建 test 用户
|
|
-M :不创建家目录
-s /sbin/nologin :该用户不能登录
userdel 删除用户
|
|
-r :删除用户家目录