我有一个服务级别帐户来运行我的网络服务器,并且该用户是使用/sbin/nologin
.
通常,当您将用户添加到组时,您必须注销并登录才能使用新的组权限。
我想将此用户添加到另一个组以扩展其部分权限,但由于我的网络服务器用户从未登录,用户何时或如何获得新组权限的访问权限?
答案1
进程的组由在执行进程的程序之前从 root 更改为目标用户的程序设置。当用户登录时,更改用户的程序是登录程序(login
, su
, sshd
, …),而该进程的程序是用户的 shell。对于在系统用户下运行的守护进程,更改用户的程序可以是su
或其他一些工具,例如 Debian 的start-stop-daemon
。例如,start-stop-daemon
始终将补充组添加到流程中。用户更改程序必须具有从用户数据库设置主要组和从组数据库设置补充组的逻辑。
答案2
CentOS 6nscd
可能正在运行。如果您没有通过高级命令(例如usermod
)更改组所有权,则必须确保运行grpconv
/etc/gshadow 也会更新。如果nscd
正在运行添加nscd -i group
以使本地组缓存无效。如果您更改了主 GID,请运行nscd -i passwd
.
使用 检查结果id -a $ACCOUNT
。
之后 - 重新启动您的服务。
答案3
我建议 su - ; /etc/init.d/NAME 停止; /etc/init.d/NAME 开始;
“/etc/init.d/NAME restart”可能还不够。