useradd不加密/ etc / shadow中的密码


20

当尝试为vsftpd创建新的FTP用户时,我偶然发现了这个问题。使用以下命令创建新用户并尝试使用FileZilla登录后,我将收到“密码错误”错误。

useradd f -p pass -d /home/f -s /bin/false

完成后,/ etc / shadow包含

f:pass:1111:0:99:2:::

一旦我运行以下命令并提供相同的通过密码

passwd f

/ etc / shadow包含

f:$1$U1c5vVwg$x5TVDDDmhi0a7RWFer6Jn1:1111:0:99:2:::

看来加密是在我运行passwd时发生的,而不是在useradd上发生的

重要的是,执行此操作后,我可以使用完全相同的凭据登录FTP。

我正在使用CentOS 5.11,用于FTP的vsftpd和用于FTP访问的FileZilla

/ var / log / secure包含:

Dec 17 useradd[644]: new group: name=f, GID=511
Dec 17 useradd[644]: new user: name=f, UID=511, GID=511, home=/home/f, shell=/bin/false

当我传递-p pass给useradd 时,为什么它不起作用?我需要做些什么才能使其正常工作?


我在那里没看到问题吗?-这些事情是通过PAM管理的,通常会登录/var/log/secure
HBruijn 2014年

@HBruijn我已经更新了我的答案,以显示写入/ var / log / secure的内容
BadToTheBone 2014年

2
真?+12是相关手册页明确回答的问题?
CVn 2014年

注意,在密码哈希中,$1$指示使用MD5。MD5虽然不单单让密码糟透了,但如今却处于弱势。这是一个完全独立的问题,但是我绝对敦促您考虑迁移到更强大的哈希函数。
CVn 2014年

2
旁注:输入的密码/etc/shadow未加密但经过哈希处理
Tobias Kienzler 2014年

Answers:


43

这按预期工作。如果要使用useradd命令设置密码,则应将密码的哈希值提供给useradd

该字符串pass确实满足中的哈希密码字段的格式标准/etc/shadow,但没有对该字符串的实际密码哈希。结果是,出于所有意图和目的,该帐户将表现为具有密码,但是您尝试用来访问该密码的任何密码都会被拒绝,因为它不是正确的密码。

请参阅man useradduseradd文档

-p--password 密码

加密的密码,由crypt(3)返回。默认为禁用密码。

注意:不建议使用此选项,因为列出进程的用户将看到密码(或加密的密码)。

您应该确保密码遵守系统的密码策略。


32

manuseradd

   -p, --password PASSWORD
       The encrypted password, as returned by crypt(3). The default is to
       disable the password.

您应该将哈希密码传递给它。
不是明文密码。


16

useradd希望您向其传递密码的哈希值,而不是密码本身。您可以在命令中使用以下变体来为useradd

useradd f -p "$(mkpasswd --method=sha-512 'pass')" -d /home/f -s /bin/false

要找出可用的方法,请使用:

mkpasswd --method=help

为了避免在命令行上传递密码,请将密码放入文件中(使用编辑器而不使用echo或类似文件),然后执行以下操作:

useradd f -p "$(mkpasswd --method=sha-512 --password-fd=0 < filename)" -d /home/f -s /bin/false

这将在命令行中传递哈希密码,但不会传递明文密码。

mkpasswdexpect包装随附。


2
不要使用MD5!使用SHA-2
约瑟夫(Josef)2014年

9
笔记,这暂时通过各种内核接口暴露的密码(任何进程被允许读取任何其他进程的命令行),可能会导致它被保存在通过$历史或类似机制纯文本到磁盘。
2014年

@MichaelKjörling:非常好。请查看我编辑的答案。
暂停,直到另行通知。

1
当然,您仍将纯文本密码存储在磁盘上。至少,这给sysadmin一个选择。也许在这一点上,我们最好还是先使用一个虚拟密码,然后立即运行passwd将其更改为其他密码……
CVn 2014年

2
绝对是丹尼斯,它要好得多,但是密码仍然以纯文本形式出现在磁盘上。在某些情况下和某些威胁模型下,这可能是一个现实问题。它不具备如此。
CVn 2014年
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.