正在做:
# newusers
username::1002:1002::/home/username:/bin/bash
^D
No password supplied
No password supplied
No password supplied
newusers: (user username) pam_chauthtok() failed, error:
Authentication token manipulation error
newusers: (line 1, user username) password not changed
添加没有密码的用户(在 中使用哈希“!” /etc/shadow
)。
正在做:
# newusers
username:*:1002:1002::/home/username:/bin/bash
^D
添加密码为“*”的用户(带有一些哈希值/etc/shadow
)。
但是,我需要的是在 .txt 文件中添加带有哈希值“*”的“用户名”用户/etc/shadow
。
我怎么做?
答案1
将密码字段留空。 newusers
将反复抱怨“未提供密码”并且无法更改密码,但将!
在影子密码字段中使用(即无效密码)创建用户。
username::1002:1002::/home/username:/bin/bash
代替:
username:*:1002:1002::/home/username:/bin/bash
例如:
# echo "username::10000:10000::/home/username:/bin/bash" | newusers
No password supplied
No password supplied
No password supplied
newusers: (user username) pam_chauthtok() failed, error:
Authentication token manipulation error
newusers: (line 1, user username) password not changed
# tail -1 /etc/passwd
username:x:10000:10000::/home/username:/bin/bash
# tail -1 /etc/shadow
username:!:16713:0:99999:7:::
答案2
添加一批用户后,您可以使用以下命令解锁每个用户:
usermod -p <username> '*'
答案3
请注意,如果您发送“*”或“!”作为密码,您最终可能会让所有用户都设置该特定密码。 @cas 提到的观点在考虑密码内容/etc/shadow
而不是密码本身的内容时是有效的。鉴于默认情况下newusers
会对密码进行加密,因此这是行不通的。
强制禁用密码的方法是强制不加密:
echo 'username:*:16713:0:99999:7:::' > users
然后禁用加密:
newusers -c NONE users
确认这一点的最佳方法是检查生成的/etc/shadow
:
tail /etc/shadow