您的位置:首页 > 其它

su命令,sudo命令,限制root用户的远程登录

2017-10-31 21:36 1176 查看

su命令

命令:su

命令格式:su [-] username

用来切换用户登录

“-”,切换时,完整切换到用户家目录下

无“-”,还在切换时候的目录

[root@shuai-01 ~]# su shuai
[shuai@shuai-01 root]$ pwd
/root


有“-”,切换到用户的家目录

[root@shuai-01 ~]# su - shuai
上一次登录:二 10月 31 21:29:58 CST 2017pts/0 上
[shuai@shuai-01 ~]$ pwd
/home/shuai


在当前用户下,想要用其他用户名创建一个文件

[root@shuai-01 ~]# su - -c "touch /tmp/shuai.111" shuai
[root@shuai-01 ~]# ls -lt /tmp/ |head
总用量 0
-rw-rw-r--. 1 shuai shuai  0 10月 31 20:47 shuai.111


sudo

生产环境中,我们不直接取使用root账户来操作,但是有些操作又一定用到root权限执行一些命令,

这时,sudo可以使普通用户临时拥有其他用户(可以使root用户)的某些(也可以是所有)命令的权限,就显得很重要了。

配置文件

一想到设置,就应该了解配置文件,sudo命令的配置文件/etc/sudoers.tmp 。不过通常情况下,都不直接用vi /etc/sudoers.tmp 打开,用这个命令打开更好visudo,这个命令,如果改配置文件出错,保存退出时会有提示。

[root@shuai-01 ~]# visudo


为普通用户添加几个能带root权限使用的命令

用visudo打开配置文件

 [root@shuai-01 ~]# visudo


找到这一行

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL




在下面添加

shuai   ALL=(root)      /usr/bin/ls,/usr/bin/cat


使shuai用户,在ls ,cat 两条命令上有root的身份

这个时候在在shuai用户在使用ls 命令,只是第一次使用时要输入shuai用户密码。

[shuai@shuai-01 ~]$ sudo ls /root/
[sudo] password for shuai:
1.txt  1.txt.bak  2.txt.bak  anaconda-ks.cfg  deng  shuai


当然,也可以指定不输入密码

user2   ALL=(ALL)       NOPASSWD: /usr/bin/ls


同样的方式给user2用户在配置文件中加这一条,那么,使用就可以不输入密码了

[user2@shuai-01 ~]$ sudo ls /root/
1.txt  1.txt.bak  2.txt.bak  anaconda-ks.cfg  deng  shuai


当然,配置文件中还有很多。

如:两个普通用户,要使用相同的带有root权限的命令,可以将这两个用户设置一个别名。

# User_Alias ADMINS = jsmith, mikem
User_Alias AD = shuai,user2
## Allow root to run any commands anywhere root ALL=(ALL) ALLAD ALL=(ALL) /usr/bin/ls,/usr/bin/mv


而且还可以给命令设置一个别名。Cmnd_Alias

还可以直接添加一个用户组(自己在linux上设置的,有gid的哪种)这里wheel就是组名。

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL


禁止root的远程登录

生产环境中,我们为了安全起见,是应该禁止root用户远程登录的。要想使用root用户的一些权限,可以用sudo设置。

先配置sudo的配置文件

让shuai用户拥有能以root身份使用su命令的权限

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALLAD   ALL=(ALL)  /usr/bin/ls,/usr/bin/mv
shuai ALL=(ALL) NOPASSWD: /usr/bin/su


更改sshd配置文件(/etc/ssh/sshd_config)

[root@shuai-01 ~]# vi /etc/ssh/sshd_config


找到这一行(#PermitRootLogin yes)将其改为

PermitRootLogin no


保存退出后重启sshd服务

[root@shuai-01 ~]# systemctl restart sshd.service


这时,就不能用root远程登录了,要想使用root,必须在shuai用户下,sudo

[shuai@shuai-01 ~]$ sudo su -
上一次登录:三 11月  1 21:45:05 CST 2017pts/1 上
[root@shuai-01 ~]# 登出
[shuai@shuai-01 ~]$
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息