Joh*_*nal 6 linux useradd login password nobody
创建没有密码的用户的好方法是什么?没有密码,我的意思是一个帐户,它只能由使用 su/sudo 命令的 root 帐户使用(如 Apache 或 Nginx 使用的“nobody”用户)。
我已经读过在 /etc/shadow 文件的密码字段中放置 * 可以工作,但我想知道是否有办法使用 useradd 命令来做到这一点。
我想过这样做:
useradd my_new_user -s /sbin/nologin -p '*'
Run Code Online (Sandbox Code Playgroud)
但我不确定 useradd 命令可以这样使用。我还没有找到任何关于它的参考。
这按照您描述的方式工作(当然,您可以指定您想要的任何外壳来代替/bin/bash):
root# useradd temp_test1 -s /bin/bash -p '*'
root# su temp_test1
temp_test1#
Run Code Online (Sandbox Code Playgroud)
执行上述useradd命令后,我的/etc/shadow文件中有以下条目:
temp_test1:*:15842:0:99999:7:::
Run Code Online (Sandbox Code Playgroud)
使用John Smith Optional的答案时,以下内容将起作用:
root# useradd temp_test2 -s /sbin/nologin
root# su -s /bin/bash temp_test2
temp_test2#
Run Code Online (Sandbox Code Playgroud)
编辑: 我想指出不同之处在于su,/sbin/nologin除非您在发出su命令时指定一个可用的 shell ,否则您不能进入一个将 shell 指定为的帐户:
root# useradd temp_test3 -s /sbin/nologin
root# su temp_test3
This account is currently not available.
root#
Run Code Online (Sandbox Code Playgroud)
(在 CentOS 6.4 中测试——应该适用于各种发行版)。
| 归档时间: |
|
| 查看次数: |
39805 次 |
| 最近记录: |