我只是做了一些非常简单的事情。给定一个用户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
为了解决这个问题。