linux创建一个不可以登录但是可以su的用户
我们要创建的用户的特点:
1. 不能login
2. 但是能su到这个用户
3. sudo不需要密码
下面我们是以创建 myUser这个用户为例解说,你可以改成任何你想要用户的名字
创建用户
$ sudo useradd myUser
限制登录
编辑 /etc/passwd文件
在 myUser这一行,将 /bin/bash改为 /bin/nologin或者/bin/false
或者要达到这个效果,在创建用户的使用下面的命令:
$ sudo useradd myUser -s /bin/nologin
去掉密码
$ sudo passwd -d myUser
但是这个以下面的方式使用su
$ su myUser ./test.sh
就会报错:
This account is currently not available.
那是因为前面设置的 nologin导致,我们可以换中方式:
$ su -s /bin/bash myUser ./test.sh
此时,就能正常运行了。
我们test.sh 的脚本的内容非常简单:
#!/bin/bash
echo "run test program"
执行sudo的权限
修改/etc/sudoers文件,添加下面一行
myUser ALL=(ALL) NOPASSWD:ALL
然后我们将test.sh这个文件稍作修改
#!/bin/bash
echo "run test program"
sudo touch "adminFile.txt"
就是让它执行sudo一次
$ su -s /bin/bash myUser ./test.sh
加强系统安全
其实经过上面的设置,改用户从ssh是无法登录的。
但是为了安全,通过sshd的配置文件限制用myUser从ssh登录
修改 /etc/ssh/sshd_config
添加:
DenyUsers myUser
版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.