我正在Linux机器上设置一个用于Subversion存储库访问的新帐户,并且可以将密码发送给新用户。但是,我认为该新用户有一个命令行实用程序,可以将他喜欢的密码加密为我可以直接复制/粘贴到/ etc / shadow文件中的格式。
这个新用户应在控制台(例如Bash)上运行以创建这样的加密密码的完整命令是什么?
更新:将不允许用户登录计算机,该帐户仅用于svn + ssh://访问。因此,用户不能自己更改它。
我正在Linux机器上设置一个用于Subversion存储库访问的新帐户,并且可以将密码发送给新用户。但是,我认为该新用户有一个命令行实用程序,可以将他喜欢的密码加密为我可以直接复制/粘贴到/ etc / shadow文件中的格式。
这个新用户应在控制台(例如Bash)上运行以创建这样的加密密码的完整命令是什么?
更新:将不允许用户登录计算机,该帐户仅用于svn + ssh://访问。因此,用户不能自己更改它。
Answers:
用户可以在计算机上执行以下操作:
echo "password"|openssl passwd -1 -stdin
然后将输出发送给您。
与其让他们加密密码并将其发送给您,不如告诉他们键入密码:
passwd
它可以做您想做的所有事情,并具有额外的优势,即无需您进行任何额外工作即可更改密码。
编辑:根据这个,还有一个据说叫makepassword,你可以得到适用于Debian / Ubuntu的命令。
/ etc / passwd和/ etc / shadow很容易使用常用的命令行工具(例如grep,awk,sed,tr等)来标记化。
变得有趣的是/ etc / shadow中的实际密码哈希字段,其前缀告诉您如何对密码进行加密。来自人(5)的阴影:
The password field must be filled. The encrypted password consists of 13 to 24 characters from the 64 characters alphabet a thru z, A
thru Z, 0 thru 9, \. and /. Optionally it can start with a "$" character. This means the encrypted password was generated using another
(not DES) algorithm. For example if it starts with "$1$" it means the MD5-based algorithm was used.
对其进行广泛加密的方式取决于所安装操作系统的年代。重要的是要特别注意/ etc / shadow中的第二个字段。
由于它很容易检测,因此您应该尽一切努力跟踪系统正在使用的任何哈希,无论是DES,MD5等。
有没有办法通过命令行生成此密码?是的,使用debian软件包makepasswd(但仅适用于MD5):
echo "mypasswd" | makepasswd --crypt-md5
$1$r2elYKyB$vUr/Ph.brKTldM2h2k8J5.
但这无法通过在/ etc / shadow中复制和粘贴来实现。要在某些Linux发行版中通过脚本更改密码,可以使用:
echo oracle:mypasswd | chpasswd
要么
echo -n mypasswd | passwd --stdin oracle