su命令、sudo命令、限制root远程登录

一、su命令
1. su -     切换用户
1. [root@localhost ~]# su - lx01
    上一次登录:二 12月 26 13:29:04 CST 2017pts/0 上
2. [lx01@localhost ~]$ whoami
    lx01
3. [lx01@localhost ~]$ pwd         #加上”-“,用户切换到自己的家目录下,这样可以加载自己的配置文件
    /home/lx01
     切换用户的时候要加上“-”,这样切换得更彻底,不加“-”仍然在root目录下
1. [root@localhost ~]# su lx01
2. [lx01@localhost root]$ whoami
    lx01
3. [lx01@localhost root]$ pwd            #可以看到切换用户时没加"-"  ,用户的家目录仍然在root下
    /root
2. su - -c   不切换用户,以另外一个用户的身份执行一条命令
[root@localhost ~]# su - -c "mkdir /tmp/zx123" lx03             以lx03用户的身份,在/tmp下/创建一个目录/zx123/
[root@localhost ~]# ls -ld /tmp/zx123
drwxrwxr-x. 2 lx03 lx03 6 12月 26 17:57 /tmp/zx123              可以看到这个目录的所有者、所属组都是zx123
3. 当用户的没有家目录如何创建家目录,/etc/skel/下存放着用户配置文件的模板。
1. [root@localhost ~]# su - lx01                                            # 在root下切换到另外一个用户lx01下
    上一次登录:二 12月 26 18:05:25 CST 2017pts/1 上
2. [lx01@localhost ~]$ su - mk100                                       #在从lx01切换到用户mk100下
    密码:
    su: 警告:无法更改到 /home/mk100 目录: 没有那个文件或目录   
3. -bash-4.2$ pwd            #切换到mk100用户下,但是出现提示用户mk100家目录不存在
    /home/lx01                   #仍然在lx01用户的家目录下,因为zx123没有家目录导致配置文件不能加载
4. [root@localhost ~]# id mk100                                              
    uid=1007(mk100) gid=1007(mk100) 组=1007(mk100)               #查看mk100用户的uid为1007,gid为1007
5. [root@localhost ~]#  mkdir /home/mk100                                    #在home下创建一个目录mk100
6. [root@localhost ~]# chown 1007:1007 /home/mk100                 #更改mk100目录的所有者和所属组为1007
7. [root@localhost ~]# cp /etc/skel/.bash* /home/mk100               #/etc/skel/这个目录存放用户配置文件的模板,将里面的".bash"开头的配置文件拷贝到zx100里面
8. [root@localhost ~]# chown -R 1007:1007 /home/mk100            #更改所有文件的所有者和所属组为1007
9. [root@localhost ~]# su - mk100                                                      # 切换到mk100目录下
   上一次登录:二 12月 26 18:19:32 CST 2017pts/1 上 
    [mk100@localhost ~]$                                                                     #成功切换到目录下


二、sudo命令
 1. sudo命令允许普通用户临时拥有root用户的身份执行一些命令
     visudo     sudo命令的配置文件,

    找到"Allow root to run any commands anywhere"这一行,在root这一行下面添加一行
    第一段:zx100表示用户,
    第二段:第一个ALL为允许使用sudo的主机,写ALL即可。第二个括号里的ALL为用户(在这里为zx100)使用sudo后将会被授予哪个身份;
    第三段:允许执行的命令,ALL表示全部,在这里写了:ls、mv、cat这三个命令,需要使用绝对路径,以","分隔,并且加上空格
2. sudo      进行测试,zx100用户是否可以使用ls命令:
1. [root@localhost ~]# su - zx100                                     #切换到mk100用户下
    上一次登录:二 12月 26 19:00:06 CST 2017pts/1 上
2. [zx100@localhost ~]$ ls /root/                                     #直接使用ls提示权限不够
    ls: 无法打开目录/root/: 权限不够
3. [zx100@localhost ~]$ sudo /usr/bin/ls /root/              #执行sudo命令
    [sudo] zx100 的密码:                                                      #密码只用输入一次,之后就不用输入
    11_hard.txt  11.txt  22.txt  anaconda-ks.cfg  qw  zx      #成功执行ls
3. 使用sudo时不需要密码,在第三段前面添加NOPASSWD即可

1. [root@localhost ~]# su - lx02                     #切换到lx02用户下
2. [lx02@localhost ~]$ ls /root/                      #使用ls查看root目录
    ls: 无法打开目录/root/: 权限不够                   #提示权限不够
3. [lx02@localhost ~]$ sudo ls /root/             #使用sudo命令,可以正常查看,且不需要输入密码
    11_hard.txt  11.txt  22.txt  anaconda-ks.cfg  qw  zx
4. 设置命令组,将几个命令放在一起做一个别名




[root@localhost ~]# su - mk100                                      # 切换到mk100用户下
上一次登录:三 12月 27 06:59:10 CST 2017pts/2 上   
[mk100@localhost ~]$ ls /root/                                        #直接ls不行
ls: 无法打开目录/root/: 权限不够
[mk100@localhost ~]$ sudo ls /root/                              #使用sudo可以查看
11_hard.txt  11.txt  22.txt  anaconda-ks.cfg  qw  zx


三、限制root远程登录
1. 设定用户的Alias,设定一个用户组:WQ

2. 给用户组WQ添加su的权限

3. 使用sudo从普通用户登陆到root用户
1. [mk100@localhost ~]$ sudo su - root                
   上一次登录:三 12月 27 16:31:22 CST 2017从 192.168.177.1pts/0 上
2. [root@localhost ~]# whoami                    #不用root的密码直接登陆到root上
    root
4. 限制root远程登陆
vi /etc/ssh/sshd_config            # 编辑sshd服务的配置文件限制root远程登陆

systemctl restart sshd.service                #更改配置文件后重启sshd服务
5. 尝试使用putty远程登陆root用户,发现登陆不了
    可以使用普通用户登陆系统
    普通用户再使用sudo命令切换到root

展开阅读全文

没有更多推荐了,返回首页