如何在一行中,在 Bash 中,在 Redhat 上创建一个带有密码的用户?

Elo*_*mis 5 redhat

useradd有一个-p标志,你可以用它指定一个用 crypt 加密的密码密文。但是后来的 Linux 没有 crypt。

如何在一行中使用预定义的密码在 RedHat 中创建一个新用户?

更新以防止在没有上下文或参与的情况下进行更多的直接投票:我的脚本在 Amazon Web Services 的自动设置环境中使用。该脚本下载并安装必备软件以及主要业务应用程序、配置它、为其添加配置文件等。该应用程序需要做的另一件事是创建一个 SFTP 服务来向后和向前传输一些分类帐文件(该服务不在我的控制之下,因此我无法通过公钥身份验证满足此要求)。自动化设置中的步骤之一是创建外部系统将用来登录以执行 SFTP 的用户,但 RedHat 中的 useradd 命令默认创建一个没有密码的锁定用户,然后您交互使用 passwd 设置密码。这不是自动脚本中的选项。-p 标志存在,但它期望用 crypt 加密的密文,它本身使用(我认为)影子文件使用的任何加密算法,但似乎该实用程序在后来的 Linux 和类似 Linux 的操作系统中不存在尽管。在另一个较旧的系统上加密密码并在脚本中使用密文是唯一的方法吗?鉴于脚本中的任何密码都是使用 KMS 解密来检索的,因此似乎需要付出很多努力,因此脚本中看不到明文机密。

Who*_*AmI 15

这个解决方案应该可以解决问题:

sudo useradd -p $(openssl passwd -1 密码) 用户名

此命令使用用户名“username”和密码“password”创建一个用户。

选择:

用户添加测试
echo "用户名:密码" | 密码

测试:Ubuntu 16.04 / Debian 9

  • 这也适用于 RedHat (2认同)