3.7 su命令
3.8 sudo命令
3.9 限制root远程登录
命令su
语法 : su [-] username
su命令用于变更为其他使用者的身份。
常用语法:su – 用户名 ;加‘-’表示切换用户的同时切换到该用户的环境变量下。如:
[root@node79 ~]# su aaa[aaa@node79 root]$ pwd/root[aaa@node79 root]$ exitexit[root@node79 ~]# su - aaaLast login: Thu Nov 2 08:28:16 CST 2017 on pts/0[aaa@node79 ~]$ pwd/home/aaa[aaa@node79 ~]$
如果不加 ‘-‘ 切换到root账户下时,当前目录没有变化,而加上 ‘-‘ 切换到root账户后,当前目录为root账户的家目录,这跟直接登陆root账户是一样的。当用root切换普通用户时,是不需要输入密码的。这也体现了root用户至高无上的权利。
命令 : sudo
sudo 表示获取临时的root权限命令
由于sudo的真正配置文件/etc/sudoers比较重要,不建议直接用vi来编辑内容,如果有语法错误则无法检测。具体使用命令visudo来操作:如果没有visudo这个命令,请使用 yum install -y sudo 安装。
默认root能够sudo是因为这个文件中有一行 “root ALL=(ALL) ALL” 使用 “visudo” 命令编辑/etc/sudoers配置文件,
配置文件中最核心的配置语句为:
## Allow root to run any commands anywhereroot ALL=(ALL) ALL
表示允许root用户在任何时候都可以使用所有的命令。默认root能够sudo是因为这个文件中有一行 “root ALL=(ALL) ALL” 在该行下面加入 “aa ALL=(ALL) ALL” 就可以让test用户拥有了sudo的权利。
## Allow root to run any commands anywhereroot ALL=(ALL) ALLaaa ALL=(ALL) ALL
测试:
[root@node79 ~]# su - aaaLast login: Thu Nov 2 08:28:28 CST 2017 on pts/0[aaa@node79 ~]$ sudo /usr/bin/ls /root/We trust you have received the usual lecture from the local SystemAdministrator. It usually boils down to these three things: #1) Respect the privacy of others. #2) Think before you type. #3) With great power comes great responsibility.[sudo] password for aaa:
#第一次使用时需要输入aaa的密码如果不想普通用户在使用sudo时输入密码,则可以在配置文件中加入NOPASSWD,
root ALL=(ALL) ALLaaa ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/mv, /usr/bin/cat
[root@node79 ~]# su - aaaLast login: Thu Nov 2 08:45:16 CST 2017 on pts/0[aaa@node79 ~]$ ls /root/ls: 无法打开目录/root/: 权限不够[aaa@node79 ~]$ sudo ls /root/1.txt 22.txt 234 2.txt anaconda-ks.cfg1 test[aaa@node79 ~]$ sudo /usr/bin/ls /root/1.txt 22.txt 234 2.txt anaconda-ks.cfg1 test
限制root远程登录
禁止root用户远程登录的方法是修改ssh的配置文件/etc/ssh/sshd_config
[root@node79 ~]# vi /etc/ssh/sshd_config
#PermitRootLogin yesPermitRootLogin no
[root@node79 ~]# systemctl restart sshd.service