我想使用adduser命令通过外壳程序脚本添加用户(具有禁用的密码)。

默认情况下,adduser会提示您输入各种值(例如全名)。有什么方法可以通过命令行提交这些值?还是我需要useradd

#1 楼

使用--gecos选项可以跳过chfn交互式部件。

adduser --disabled-password --gecos "" username


这些都在手册页中。不是最明显的表述。

--gecos GECOS
          Set  the  gecos field for the new entry generated.  adduser will
          not ask for finger information if this option is given.


GECOS字段是逗号分隔的列表,例如:Full name,Room number,Work phone,Home phone,尽管该手册页提到了finger information详细信息-维基百科
希望这对您有所帮助。

评论


离题壁虎?

– Alex2php
20年5月12日在10:57

贝尔实验室的某些早期Unix系统使用GECOS机器进行打印假脱机和其他各种服务,因此添加了该字段以携带有关用户GECOS身份的信息(来源:en.wikipedia.org/wiki/Gecos_field)

–笑话
20年5月12日在21:44



#2 楼

useradd也可以添加用户,并且似乎没有内置的任何形式的提示。

目录

-m--create-home:指定用户密码;跳过以禁用它


-p--password:登录用户的默认外壳程序

空白将使用-s中变量--shell指定的默认登录外壳程序

用登录名替换SHELL
用加密的密码替换/etc/default/useradd


生成哈希密码:

有很多可以生成哈希密码的crypt3实现。整个过程就是您的哈希密码。

基于Sha-512的

结果输出格式:哈希机制(对于sha-512为<user>),随机盐(八个第二个美元符号<encryptedPassword>之后的字节),其余部分为有效载荷。



mkpasswd基于DES的:

生成的输出格式:前2个字节是您的salt,其余部分是有效载荷。整个过程就是您的哈希密码。 >
python:



评论


您提到的选项在我的(最新)Ubuntu版本中对于adduser不存在。

–ᴠɪɴᴄᴇɴᴛ
2015年9月22日20:30在

@ᴠɪɴᴄᴇɴᴛadduser与useradd不同,我知道这很混乱。

–雷神召唤师
15年9月22日在21:01

糟糕,确实错过了您几乎使用它的名字的含义...难道没有BDFL保护命令行名称空间吗? ; p

–ᴠɪɴᴄᴇɴᴛ
2015年9月23日在9:52



@ mum007这只是一般建议,请尝试在您的ssh命令中添加-v或-vv或-vvv,以查看出了什么问题,然后在SO或Google上搜索错误消息。

–雷神召唤师
15年12月3日在17:30

@KovacsAkos尝试以下操作:sudo sed -i“” -e“ s / PasswordAuthentication no / PasswordAuthentication yes /” / etc / ssh / sshd_config和sudo服务ssh重新启动

– JSBach
17年4月5日在9:01