我一直在寻找一种方法来强制usermod修改密码/组/ ...文件,尽管用户正在使用。
我现在得到的是:
!! Failed to execute 'usermod --home '...' --password '...' --shell '/bin/false' 'zabbix' 2>&1':
usermod: user zabbix is currently used by process 518
我知道为了安全起见,我需要重启服务。但这是在安装脚本中完成的。我正在重新启动所有服务。
有什么方法可以说--force? (好吧,除了修改所有必要的文件。)
由于
答案 0 :(得分:0)
您可以在单独的用户名称空间(使用最新的Linux)中运行usermod
,但是您需要将root用户映射到root(否则您将无权修改/etc/passwd
)
即像这样的东西:
unshare --user --map-root-user usermod ...
现在usermod将找不到正在您正在修改的用户uid上运行的进程。
您可能无法以此来修改root用户本身。
答案 1 :(得分:0)
如果您可以通过sudo获得root权限,并且有足够的信心使用vi更改系统文件,那么我将手动更改文件。
只需更改一些内容
- /etc/passwd
here you could change UID, GID, Homedirectory, Shell ...
- /etc/group
here you might need to change UID/GID as well for the username if there was a change
使用passwd设置新密码时,文件/ etc / shadow将自动更改。如果您是root用户,则可以直接执行此操作:“ passwd用户名”