如何创建非登录用户?

如何创建非登录用户?

我想subversion在 RHEL 5 系统上创建一个用户和一个组。我查看了手册页useradd,我猜命令应该是...

useradd subversion

但是,不确定如何避免创建主目录。另外,我不希望它是可以登录系统的用户。

主要目的只是为 SVN 存储库提供所有者。

答案1

您可以使用-M开关(确保它是大写的)来确保不会创建主目录:

useradd -M subversion

然后锁定帐户以防止登录:

usermod -L subversion

答案2

您可以使用以下命令:

useradd -r subversion

欲了解更多信息,请查看手册页使用以下命令:

man useradd

您将在本文档中找到可用于您的目的的以下标志。

-r, --system                  create a system account

-r标志将创建一个系统用户 - 没有密码、没有主目录并且无法登录的用户。

答案3

创建系统用户的另一种解决方案是使用adduser :

adduser --system --no-create-home --group yourusername

--group如果您不需要将 yourusername 分组,或者--no-create-home确实需要为该用户提供一个主页,则可以将其删除。

正如 py4on 在评论中提到的那样,在某些系统上,可能需要使用该--disabled-login选项才能禁用此用户的登录。不过,这似乎是 Debian 下的默认行为。

请注意,用户的数字 ID 将属于系统帐户。--uid不过,您可以使用选项修复 uid。

最后,请注意,在某些系统(例如 Fedora)上adduser是 的符号链接useradd,在这种情况下这个答案无效。

答案4

最安全的方式是像这样使用adduser

$ adduser -r -s /bin/nologin subversion

笔记:确保包含-s /sbin/nologin禁止任何登录 shell 对该帐户可用的内容。

确认设置

$ grep subversion /etc/passwd /etc/shadow
/etc/passwd:subversion:x:496:496::/home/subversion:/bin/nologin
/etc/shadow:subversion:!!:17232::::::

但是没有目录:

$ ll /home | grep subversion
$

确认该帐户是否可用:

$ sudo -u subversion whoami
subversion

$ sudo -u subversion date
Tue Mar  7 08:58:57 EST 2017

移动

如果您需要删除该帐户:

$ userdel subversion -r
userdel: subversion mail spool (/var/spool/mail/subversion) not found
userdel: subversion home directory (/home/subversion) not found
$

并确认:

$ grep rtim-hc-user /etc/passwd /etc/shadow
$

相关内容