su命令、sudo命令、限制root远程登录 使用介绍

第3周第3次课(4月4日)

课程内容:
3.7 su命令
3.8 sudo命令
3.9 限制root远程登录

 

3.7 su命令

[root@jimmylinux-002 ~]# su - jimmy    su命令是切换用户使用的,在这里加一个“-”表示彻底切换到jimmy用户下包括自己的配置和环境变量,就在自己的家目录。

[root@jimmylinux-002 ~]# su - -c "touch /tmp/jimmy.111" jimmy    以指定用户的身份执行一条命令

[root@jimmylinux-002 ~]# ls -lt /tmp/ |head    使用此命令可以查看是否有执行成功

在普通用户下在切换到其他用户,按理说应该在user5家目录中,因为没有相应的配置文件,所以显示不正常。

既然缺少user5家目录,那么就重新创建一个user5的家目录出来。

[root@jimmylinux-002 ~]# mkdir /home/user5
[root@jimmylinux-002 ~]# chown user5:user5 /home/user5/

拷贝.bash文件到user5的家目录,这样就可以显示正常了。

普通用户显示为$符号,root用户显示为#符号。

 

3.8 sudo命令

让普通用户临时拥有指定用户去执行一条命令获得权限

[root@jimmylinux-002 ~]# visudo    直接添加如下内容,让jimmy用户拥有root权限,同时可以执行ls、mv、cat命令。 

使用方法同vi命令,按i进入编辑内容,ESC取消编辑,然后:wq保存修改并退出编辑状态。

提示刚才的操作有问题,第93行语法错误,按e键回车进入重新修改,可以输入:set nu显示行数信息。

/usr/bin/ls, /usr/bin/mv, /usr/bin/cat    需要修改成绝对路径才能够正常使用

修改完成后切换成jimmy用户,在运行ls /root/就会提示无法打开目录,权限不够。

 sudo /usr/bin/ls /root/    检验sudo的作用,可以将普通用户临时授予root权限,可以操作指定的一些命令。

同样可以给user5授予相同的权限,但是切换用户时还需要输入密码比较麻烦,添加这个参数就可以免密登录。

user5   ALL=(ALL)      NOPASSWD: /usr/bin/ls, /usr/bin/mv, /usr/bin/cat

[root@jimmylinux-002 ~]# su - suer5    切换user5

[user5@jimmylinux-002 ~]$ ls /root/    直接输入ls /root/ 提示权限不够
ls: 无法打开目录/root/: 权限不够
[user5@jimmylinux-002 ~]$ sudo /usr/bin/ls /root/    sudo命令即可顺利执行
11 1.txt 33.txt anaconda-ks.cfg a.txt

在visudo里面也可以设置命令别名

Cmnd_Alias JIMMY_CMD = /usr/bin/ls, /usr/bin/mv, /usr/bin/cat

在visudo里面还可以设置用户组,比如把多个用户放到wheel一个组里面,相同组里面的用户名都可以执行授予的命令。

 

3.9 限制root远程登录

如果密码过于简单,容易被别人猜到,过于复杂自己也可能会忘记,为了安全起见,防止别人拿到密码通过root远程登录。

创建一个user alias,同时设置一个规则免密执行su命令登录root

如果要限制root远程登录,输入vi /etc/ssh/sshd_config 修改成PermitRootLogin no 保存退出,重启systemctl restart sshd.service 服务。

[root@jimmylinux-002 ~]# vi /etc/ssh/sshd_config
[root@jimmylinux-002 ~]# systemctl restart sshd.service

这个时候再重新连接,已经无法登录root用户,包括输入root密码也一样。(说明已经限制root远程登录)

打开putty终端以普通用户登录,然后执行sudo su - root可以直接免密登录到root用户。

重新输入vi /etc/ssh/sshd_config 还原配置文件并重启服务即可恢复root远程登录

 

posted @ 2018-04-02 17:32  吉米乐享驿站  阅读(837)  评论(0编辑  收藏  举报