强制usermod运行程序

时间:2013-12-12 19:59:14

标签: bash

我一直在寻找一种方法来强制usermod修改密码/组/ ...文件,尽管用户正在使用。

我现在得到的是:

!! Failed to execute 'usermod --home '...' --password '...' --shell '/bin/false' 'zabbix' 2>&1':
usermod: user zabbix is currently used by process 518

我知道为了安全起见,我需要重启服务。但这是在安装脚本中完成的。我正在重新启动所有服务。

有什么方法可以说--force? (好吧,除了修改所有必要的文件。)

由于

2 个答案:

答案 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用户名”