问题描述
我想使用adduser
命令通过shell脚本添加一个用户(具有禁用的密码)。
默认情况下,adduser
会提示您输入各种值(例如,全名)。有什么办法通过命令行提交这些值?或者我需要改为useradd
?
最佳解决方法
使用--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
希望这可以帮助你。
次佳解决方法
useradd
也可以添加用户,并且看起来没有任何形式的内置提示。
useradd -m -p <encryptedPassword> -s /bin/bash <user>
-
-m
,--create-home
:创建用户主目录 -
-p
,--password
:指定用户密码 -
-s
,--shell
:登录用户的默认shell空白将使用/etc/default/useradd
中SHELL
变量指定的默认登录shell -
用登录名替换
<user>
-
用加密的密码替换
<encryptedPassword>
生成散列密码:
crypt3实现有a lot,可以生成散列密码。整个事情就是你的哈希密码。
基于Sha-512
生成的输出格式:哈希机制(sha-512的$6
),随机盐(第二个美元符号$ASDF1234
之后的八个字节),余数是有效负载。
-
mkpasswd
mkpasswd -m sha-512
(mkpasswd
由whois
包提供)
基于DES:
生成的输出格式:前2个字节是您的盐,剩余部分是有效负载。整个事情就是你的哈希密码。
-
mkpasswd:
mkpasswd
(由whois
包提供) -
openssl:
openssl passwd -crypt
-
perl的:
perl -e "print crypt('password', 'sa');"
/!\
之所以选择自己随机two-byte盐代替'sa'
的 -
python:
python -c 'import crypt; print crypt.crypt("password", "Fx")'
/!\
选择你自己的随机two-byte盐而不是"Fx"