如何创建一个 /etc/passwd 中 HOME_DIR 字段完全空白的用户?

如何创建一个 /etc/passwd 中 HOME_DIR 字段完全空白的用户?

我能想到的最接近的是:

useradd --home / -r --shell /sbin/nologin someuser

但这会在 /etc/htpasswd 中创建一个条目,如下所示:

someuser:x:100:100::/:/sbin/nologin

我希望那个“/”消失,这样它看起来像这样:

someuser:x:100:100:::/sbin/nologin

这可以通过 usermod 实现:

usermod -d '' someuser

但我认为这有点倒退了。

有任何想法吗?

答案1

首先,我必须同意吉姆的观点,即您应该非常清楚创建此类用户帐户的动机。

话虽如此:

useradd -d /REPLACEME someuser && perl -p -i -e 's/\/REPLACEME//;' /etc/passwd



当然,这是假设 /REPLACEME 没有在其他任何地方用作有效的主目录。更复杂但更精确的表达式:

's/(someuser:.*:)\/REPLACEME(:.*)/$1$2/'

将确保只有上面 useradd 创建的用户被修改。

答案2

确实,这并不倒退。没有登录目录的账户无法直接登录。它可以拥有资源和文件。你想做什么?

如果没有 --home,useradd 会抱怨吗?

您可以直接使用 vi 或 vim 添加用户。但你必须非常小心。您还提前添加了任何组。

相关内容