use*_*276 13 password adduser useradd
我正在运行 ubuntu 14.04 LTS。我运行以下命令来创建一个用户
$sudo useradd -m -p password1 guest_user
Run Code Online (Sandbox Code Playgroud)
然后尝试切换到用户
$su guest_user
Run Code Online (Sandbox Code Playgroud)
但我无法使用密码 1 登录
我错过了什么吗?我是否想使用 password1 或其他方式登录,如 -p 选项在 useradd 的手册页中所述
-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.
You should make sure the password respects the system's password policy.
Run Code Online (Sandbox Code Playgroud)
以上让我感到困惑,因为当我输入命令时
用户添加 -m -p 密码 1
密码 password1 在命令行上可见。如何使它在上述命令中不可见?
hee*_*ayl 12
来自man useradd
:
-p, --password PASSWORD
The encrypted password, as returned by crypt(3). The default is to disable the password.
Run Code Online (Sandbox Code Playgroud)
如您所见,PASSWORD
with-p
选项是crypt(3)
库函数返回的加密密码。
如果使用-p password1
,系统会将此纯文本password1
视为加密的影子密码条目/etc/shadow
。
解决办法是这里使用加密的密码,-p
这是不安全的,你应该交互设置密码。
例如首先创建 suer :
sudo useradd -m -s /bin/bash guest_user
Run Code Online (Sandbox Code Playgroud)
现在设置密码:
sudo passwd guest_user
Run Code Online (Sandbox Code Playgroud)
或者更好地使用adduser
:
sudo adduser --gecos '' guest_user
Run Code Online (Sandbox Code Playgroud)
您可以使用perl
打印加密的密码并将其与命令中的-p
选项一起使用useradd
。
$ sudo useradd -m -p $(perl -e 'print crypt($ARGV[0], "password")' 'YOUR_PASSWORD') username
Run Code Online (Sandbox Code Playgroud)
您还可以将它与其他选项一起使用,例如-s
Shell 或-d
主目录。
归档时间: |
|
查看次数: |
61979 次 |
最近记录: |