linux创建一个不可以登录但是可以su的用户

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

 

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示