Answers:
您可以使用-M
开关(确保它是大写字母)来确保不会创建主目录:
useradd -M subversion
然后锁定该帐户以防止登录:
usermod -L subversion
usermod -s /bin/false subversion
,或者--shell /bin/false
到useradd
su -s /bin/bash username
并绕过它时,设置外壳并没有多大作用。
useradd -r subversion
-r, --system create a system account
-r标志将创建一个系统用户-一个没有密码,主目录且无法登录的用户。
passwd subversion
。
创建系统用户的另一种解决方案,使用adduser
:
adduser --system --no-create-home --group yourusername
如果不需要对用户名进行--group
分组,并且--no-create-home
不需要此用户的家,则可以将其删除。
正如py4on在评论中提到的那样,在某些系统上,可能需要使用该--disabled-login
选项才能禁用该用户的登录名。不过,这似乎是Debian下的默认行为。
请注意,用户的数字ID将属于系统帐户。不过,您可以使用--uid
选项修复uid 。
最后,请注意,在某些系统上(例如Fedora)adduser
是的符号链接useradd
,在这种情况下,此答案无效。
--disabled-login
(在之前yourusername
)
原始问题的最干净答案是运行命令:
adduser subversion --shell=/bin/false
而且,如果您也不希望主目录:
adduser subversion --shell=/bin/false --no-create-home
或者,如果您想要一个更加锁定的系统用户(通常这将不会创建主目录-据报道,它仍会按照以下注释在linux mint中创建主目录)
adduser subversion --system --group
所有这些命令将创建一个与用户同名的组
Creating home directory '/home/nodejs' ...
最安全的方式是这样使用adduser
:
$ adduser -r -s /bin/nologin subversion
注意:确保包括在内,-s /sbin/nologin
以使该帐户无法使用任何登录外壳。
$ 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
$
在CentOS 7机器上
如果用户不存在:
useradd testuser --shell=/sbin/nologin
如果要修改现有用户:
usermod testuser --shell=/sbin/nologin