我无法理解“useradd”中 -p 选项的用途
让我们创建一个用户
useradd -m -p 'pass1' user1
运行上述命令后,尝试使用身份验证登录时su - user1
失败。另一个问题是密码在 /etc/passwd 文件中没有加密,如果我运行cat /etc/passwd | grep user1
我得到user1:pass1:19196:0:99999:7:::
.
答案1
您应该向该-p
选项提供加密的密码。从useradd(8)
手册页:
-p, --password PASSWORD
The encrypted password, as returned by crypt(3). The
default is to disable the password.
Note: This option is not recommended because the password
(or encrypted password) will be visible by users listing
the processes.
您提供的值在文件中逐字使用passwd
,因此,如果您提供未加密的值,您将永远无法使用该密码登录。
像这样的东西有效:
useradd -m \
-p "$(python -c 'import crypt; print(crypt.crypt("pass1"))')" \
testuser
(但请注意手册页中有关可能将密码泄露给其他系统用户的警告。)