如何批量添加禁用密码的用户?

如何批量添加禁用密码的用户?

正在做:

# 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

相关内容