Eth*_*han 173 linux user-accounts
我想subversion
在 RHEL 5 系统上创建一个用户和一个组。我查看了手册页useradd
,我想命令只是......
useradd subversion
Run Code Online (Sandbox Code Playgroud)
但是,不确定如何避免创建主目录。另外,我不希望它成为可以登录系统的用户。
主要目的只是为 SVN 存储库提供所有者。
ryn*_*nop 265
您可以使用以下命令:
useradd -r subversion
Run Code Online (Sandbox Code Playgroud)
man useradd
Run Code Online (Sandbox Code Playgroud)
您将在本文档中找到可用于您的目的的以下标志。
-r, --system create a system account
Run Code Online (Sandbox Code Playgroud)
该-r
标志将创建一个系统用户 - 一个没有密码、主目录且无法登录的用户。
Joh*_*n T 97
您可以使用-M
开关(确保它是大写的)来确保不会创建主目录:
useradd -M subversion
Run Code Online (Sandbox Code Playgroud)
然后锁定帐户以防止登录:
usermod -L subversion
Run Code Online (Sandbox Code Playgroud)
Ski*_*rou 35
创建系统用户的另一种解决方案,使用adduser
:
adduser --system --no-create-home --group yourusername
Run Code Online (Sandbox Code Playgroud)
--group
如果您不需要组--no-create-home
您的用户名,并且您确实需要此用户的主页,则可以删除。
正如 py4on 在评论中提到的,在某些系统上,可能需要使用该--disabled-login
选项来禁用该用户的登录。不过,这似乎是 Debian 下的默认行为。
请注意,用户的数字 ID 将属于系统帐户。不过,您可以使用该--uid
选项修复 uid 。
最后,请注意,在某些系统(例如 Fedora)上adduser
是指向 的符号链接useradd
,在这种情况下,此答案无效。
Tim*_*Gee 29
对原始问题的最干净的答案是运行以下命令:
adduser subversion --shell=/bin/false
Run Code Online (Sandbox Code Playgroud)
如果您也不想要主目录:
adduser subversion --shell=/bin/false --no-create-home
Run Code Online (Sandbox Code Playgroud)
或者,如果你想要一个更加锁定的系统用户(通常这不会创建一个主目录 - 据报道它仍然会根据下面的评论在 linux mint 中创建一个主目录)
adduser subversion --system --group
Run Code Online (Sandbox Code Playgroud)
所有这些命令将创建一个与用户同名的组
slm*_*slm 21
这样做最安全的形式是使用adduser
如下:
$ adduser -r -s /bin/nologin subversion
Run Code Online (Sandbox Code Playgroud)
注意:请务必包括-s /sbin/nologin
以禁用任何登录 shell,使其无法用于该帐户。
$ grep subversion /etc/passwd /etc/shadow
/etc/passwd:subversion:x:496:496::/home/subversion:/bin/nologin
/etc/shadow:subversion:!!:17232::::::
Run Code Online (Sandbox Code Playgroud)
但是没有目录:
$ ll /home | grep subversion
$
Run Code Online (Sandbox Code Playgroud)
确认帐户在其他方面可用:
$ sudo -u subversion whoami
subversion
$ sudo -u subversion date
Tue Mar 7 08:58:57 EST 2017
Run Code Online (Sandbox Code Playgroud)
如果您需要删除此帐户:
$ userdel subversion -r
userdel: subversion mail spool (/var/spool/mail/subversion) not found
userdel: subversion home directory (/home/subversion) not found
$
Run Code Online (Sandbox Code Playgroud)
并确认:
$ grep rtim-hc-user /etc/passwd /etc/shadow
$
Run Code Online (Sandbox Code Playgroud)
小智 5
在 Debian 中,您可以创建一个系统用户(没有主目录)并登录 shell:
useradd --system --shell=/usr/sbin/nologin <username>
Run Code Online (Sandbox Code Playgroud)
如果您的nologin
程序在 中/sbin/nologin
,请相应更改。