subversion
的组。我看了看useradd
的手册页,我猜命令应该只是...。但是,不确定如何避免创建主目录。另外,我不希望它成为可以登录系统的用户。主要目的只是为了提供SVN存储库的所有者。
#1 楼
您可以使用-M
开关(确保它是大写字母)来确保不会创建主目录:useradd -M subversion
然后锁定帐户以防止登录:
usermod -L subversion
评论
这不是一个特别有力的答案,用这种方法创建的用户仍然有一个外壳。而且您甚至没有警告OP这是事实。追溯地将是usermod -s / bin / false颠覆,或使用--shell / bin / false来实现useradd
–李·汉普里(Lee Hambley)
2011-09-14 16:55
@beak帐户已被锁定,拥有外壳是有争议的。
– John T
2011-09-14 22:55
@beak实际上只有root用户才可以使用锁定的帐户,但是如果该人已经获得root访问权限,为什么还要麻烦呢?当用户可以运行su -s / bin / bash用户名并绕过该用户名时,设置shell并没有多大作用。
– John T
2011-09-15 22:44
感谢您抽出宝贵的时间进行讨论,您当然是正确的;但是让我看到定义了shell的非登录用户感到很痛苦,这让我感到很懒,而且如果有人不熟悉该系统,很高兴他们不会意外地做一些事;黑客是不同的人,如果他们已经在计算机上安装了外壳,我认为这基本上是一场游戏
–李·汉普里(Lee Hambley)
2011年9月16日下午6:43
这些评论完全涵盖了我希望学习的东西,谢谢@Beaks && John T
– Rixius
2013年2月14日20:27
#2 楼
您可以使用以下命令:useradd -r subversion
有关更多信息,请使用以下命令检查手册页:
man useradd
您将在本文档中找到以下可用于您的目的的标志。
-r, --system create a system account
-r
标志将创建一个系统用户-一个没有该用户的用户密码,主目录且无法登录。评论
该命令甚至会为用户创建一个名为“ same”的组。因此,“ subversion”用户将属于“ subversion”组。非常适合您以后想要执行“ sudo chown -R subversion:subversion / path / to / folder”
– s3v1
13年8月15日在12:07
仅使用-r,我们仍然可以登录。我们需要-s / bin / false来禁用用户外壳程序。
–c4il
13-10-25在13:27
@ c4il但是唯一可以登录他们的人是root,对吗?我的意思是,他们没有密码,所以我希望只有root用户才能登录。
–卡米洛·马丁(Camilo Martin)
2014年7月12日20:48在
但是无论如何我们都可以给他们分配密码,我尝试了passwd subversion。
–沙燕
19/09/21在17:26
#3 楼
使用adduser
创建系统用户的另一种解决方案:该用户。正如py4on在评论中提到的那样,在某些系统上,可能需要使用
--group
选项才能禁用该用户的登录名。不过,这似乎是Debian下的默认行为。请注意,用户的数字ID属于系统帐户。不过,您可以使用--no-create-home
选项修复uid。最后,请注意,在某些系统(例如Fedora)上,--disabled-login
是--uid
的符号链接,在这种情况下,此答案无效。评论
要解决“我不想让它成为可以登录的用户”,还要添加标志--disabled-login(在yourusername之前)
–毒素
15年7月30日在10:37
@ py4on:尽管此选项在手册页中有介绍,但至少在Debian中它似乎是默认选项。
–Skippy le Grand Gourou
15年8月1日在19:59
#4 楼
原始问题的最干净答案是运行命令:adduser subversion --shell=/bin/false
如果您也不希望主目录:
adduser subversion --shell=/bin/false --no-create-home
,或者,如果您想要更受锁定的系统用户(通常这将不会创建主目录-据报道,根据注释,它仍将在linux mint中创建主目录下面)
adduser subversion --system --group
所有这些命令将创建一个与用户同名的组
评论
在Mint上,最后一个命令肯定会创建一个主目录:创建主目录'/ home / nodejs'...
– jcollum
19年2月2日在22:38
我也应该加L
–警报
20年7月7日在18:53
#5 楼
最安全的方式是使用adduser
,如下所示: 。设置确认
$ adduser -r -s /bin/nologin subversion
但是没有目录:
$ 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
$
评论
adduser无法识别-r选项。我认为您的意思是useradd。
–追随
17年7月29日在16:30
@felwithe不,我写下的每个答案我都会在发布前进行测试。我检查了一下,并在CentOS 6.x系统上显示了该开关。
–slm
17年7月29日在20:10
这是结果的粘贴框。我正在使用Ubuntu 16 LTS。我不知道安装了哪个版本的adduser,但我从未想象过它会随着时间或系统的变化而变化。然后,我改为使用--system标志来尝试它,该标志为用户创建了一个homedir(我不想要一个)。最后,我只是使用useradd而不是adduser来完成它,并且按计划工作。因此,我只是假设您应该将其键入为adduser时将其键入为adduser。
–追随
17年7月30日在0:18
@felwithe是的,我没有怀疑您,只是让您知道我尝试了它8-)。我是Unix和Linux站点上的mod,这些cmd众所周知是不同的黑白发行版。 OP在问题中提到RHEL,因此我为什么要这样回答,但他们没有将其标记为特定于Red Hat,这是对此Q&A IMO感到困惑的一部分。
–slm
17年7月30日在0:31
#6 楼
在Debian中,您可以创建系统用户(没有主目录)并登录Shell:useradd --system --shell=/usr/sbin/nologin <username>
如果
nologin
程序位于/sbin/nologin
中,请进行相应的更改。 >#7 楼
在CentOS 7计算机上,您可以使用以下命令:如果用户不存在:
useradd testuser --shell=/sbin/nologin
如果要修改现有用户:
usermod testuser --shell=/sbin/nologin
#8 楼
首先,通过执行以下操作为用户生成最长为8个字符的加密密码:openssl passwd -crypt new_password_less_than_eight_chars_long
然后执行以下操作: br />
评论
您是否真的查看过useradd的手册页,却没有找到-M(不创建HOME目录)?