![su 用户失败并显示“grep:/var/cpanel/users/user:权限被拒绝”](https://linux22.com/image/18832/su%20%E7%94%A8%E6%88%B7%E5%A4%B1%E8%B4%A5%E5%B9%B6%E6%98%BE%E7%A4%BA%E2%80%9Cgrep%EF%BC%9A%2Fvar%2Fcpanel%2Fusers%2Fuser%EF%BC%9A%E6%9D%83%E9%99%90%E8%A2%AB%E6%8B%92%E7%BB%9D%E2%80%9D.png)
我只是做了一些非常简单的事情。给定一个用户user
,我修改了他的用户 id、主要组的 id,并将他添加到一个新组,以便使我的服务器使用与通过 NFS 与该服务器共享文件的另一台服务器相同的 uid 和 gid。 (有人告诉我,我需要这样做,以防止共享文件的权限变得疯狂。)
我所做的如下:
groupadd -g 2000 mygroup
groupmod -g 1500 user
usermod -u 500 -g 1500 -G 1500,2000 user
这完成了以下任务:
- 用户的 ID 现在与远程用户的 ID 匹配,因此 NFS 权限将起作用。
- 用户的主要组 ID 现在与远程用户的主要组 ID 相匹配。
- 该用户现在属于
mygroup
远程用户所属的组。
现在,不幸的是,我不能su -l user
,因为我收到以下错误:
grep: /var/cpanel/users/user: Permission denied
我不认为我做错了什么,当我这样做时id user
,一切看起来都很好:
uid=500(user) gid=1500(user) groups=1500(user),2000(mygroup)
是什么赋予了?为什么我会收到此 cPanel 风格的错误?我在这里做错了什么/忘记做什么?
编辑
看来我能够进入用户的帐户,但每次我都会收到该错误su -l user
。
答案1
如果您可以以用户身份登录,然后收到此错误消息,则该消息可能来自用户的初始化文件(/etc/profile
、~/.profile
或~/.bash_profile
类似文件)。尝试跟踪这些配置文件脚本;作为有问题的用户,运行
bash --login -x
答案2
我更改了用户的 ID 和主要组的 ID,这破坏了权限。
user
对于主要组为 的用户user
,以下是相关文件夹的权限:
-rw-r----- 1 root 500 671 Oct 4 05:48 user
由于我修改了组的 id,因此它没有在这里更新,这破坏了权限。
我只是chown -R root:user /var/cpanel/users/user
为了解决这个问题。