当前位置: 首页>>技术问答>>正文


非交互式运行adduser

, ,

问题描述

我想使用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/useraddSHELL变量指定的默认登录shell

  • 用登录名替换<user>

  • 用加密的密码替换<encryptedPassword>


生成散列密码:

crypt3实现有a lot,可以生成散列密码。整个事情就是你的哈希密码。

基于Sha-512

生成的输出格式:哈希机制(sha-512的$6),随机盐(第二个美元符号$ASDF1234之后的八个字节),余数是有效负载。

  • mkpasswd mkpasswd -m sha-512(mkpasswdwhois包提供)

基于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"

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/330.html,未经允许,请勿转载。