创建没有密码的用户


66

我正在尝试创建没有密码的用户,如下所示:

sudo adduser \
   --system \
   --shell /bin/bash \
   --gecos ‘User for managing of git version control’ \
   --group \
   --disabled-password \
   --home /home/git \
   git

很好。但是,当我尝试使用git用户登录时,输入的密码是:

su git
Password:...

当我将其保留为空时,会出现错误:

su: Authentication failed

怎么了?


1
没什么错,身份验证按预期失败。您将不会收到“没有密码,无法登录”的错误消息。
scai 2012年

但是我需要在git用户下创建.ssh文件夹,该怎么办?
埃里克(Erik)2012年

1
可以以root用户身份创建它并设置正确的权限,也可以su git以root用户身份执行而不必提供密码。
scai 2012年

4
通过使用chmodchown
scai 2012年

1
脱离主题,但它是“用户”而不是“用户”。writersdigest.com/online-editor/...
大卫Baucum

Answers:


31

您已经使用“禁用的密码”创建了一个用户,这意味着没有密码可以让您以此方式登录。这与创建用户无需输入密码即可登录的用户不同,后者是通过指定空密码来实现的,很少有用。

为了执行诸如通常无法登录的“系统”用户命令,您需要通过root帐户进行跳转:

su -c 'su git -c "git init"'

要么

sudo -u git git init

如果您希望某些用户能够以用户身份运行命令git而又不让他们以root用户身份运行命令,请设置sudo(visudo以root用户身份运行并添加像这样的行%gitters ALL = (git) ALL)。


@JulienRicard Er,是的,还有吗?有多种方式可以理解“没有密码的用户”,我回答问题中给出的用例。例如,关于创建访客用户的问题将是另一个问题。
吉尔斯

41

--disabled-password选项不会设置密码,这意味着没有密码是合法的,但是仍然可以登录(例如,使用SSH RSA密钥)。

要创建没有密码passwd -d $username的用户,请在创建用户后使用以使密码为空。请注意,并非所有系统都允许密码为空的用户登录。


3
这似乎在版本16的ubuntu中不起作用
Daniel Tate



4

使用空密码创建用户

sudo useradd test-user-0
echo test-user-0:U6aMy0wojraho | sudo chpasswd -e
su test-user-0

不幸的是,密码提示仍然显示。

但是,如果您只是按Enter键而不输入任何内容,那么它将以用户身份登录test-user-0

这些-e标志chpasswd表明密码已经加密,并且U6aMy0wojraho是空字符串的哈希值。

在Ubuntu 18.04上测试。

终端自动登录 getty -a

至少在终端上,您不需要创建没有密码的用户即可允许某人每次都不输入密码。

我可以通过以下操作在BusyBox上执行以下操作inittab如何在不通过Buildroot BusyBox init输入根用户名或密码的情况下自动登录?

因此,我相信通过修改Ubuntu 18.04的systemd初始化系统脚本来设置该getty -a <user>终端(如答案中提到的那样)来适应该技术并不难,尽管我没有自己尝试过。


2

我认为这是您想要的:

adduser --disabled-password --shell /bin/bash --gecos "User" $username

您将能够

su $username

在/ bin / bash或您指定的任何shell中以该用户身份运行命令。--gecos“ User”只需将“ User”放入注释字段,这样就不会提示您输入该信息。您可以将任何内容放入该字段。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.