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

匆匆过客 提交于 2020-01-07 17:48:44

【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>>

su命令

  • 作用用于切换用户
  • - user: 彻底切换用户
[root@centos001 ~]# su - user1  //彻底切换到另一个用户
上一次登录:三 11月  1 20:21:13 CST 2017pts/1 上
[user1@centos001 ~]$ id 
uid=1000(user1) gid=1000(user1) 组=1000(user1) 环境=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
[user1@centos001 ~]$ 登出
[root@centos001 ~]# su user1   //不加-的时候,切换了后其实还是在root目录之下
[user1@centos001 root]$ pwd
/root
  • - -c "命令“ user :在切换用户的同时执行一条命令

示例:

[root@centos001 ~]# su - -c "touch /tmp/aming001" user1 //切换用户同时执行一个命令,创建一个文件aming001
[root@centos001 ~]# ls -lt /tmp/ |head
总用量 124     
-rw-rw-r--. 1 user1 user1      0 11月  1 21:24 aming001         //刚刚创建的新文件
[root@centos001 ~]# id user1                                 //用id命令查看用户属性
uid=1000(user1) gid=1000(user1) 组=1000(user1)
[root@centos001 ~]# date
2017年 11月 01日 星期三 21:28:45 CST
  • 登录时报错:
[user1@centos001 ~]$ su - aming         //在普通用户下切换至另一个普通用户
密码:
su: 鉴定故障            //报错
[user1@centos001 ~]$ passwd aming
passwd:只有根用户才能指定用户名。
[root@centos001 ~]# passwd aming
更改用户 aming 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
 [root@centos001 ~]# su - aming               //切换至普通用户aming
上一次登录:三 11月  1 21:52:11 CST 2017pts/1 上
最后一次失败的登录:三 11月  1 21:54:38 CST 2017pts/1 上
最有一次成功登录后有 1 次失败的登录尝试。
[aming@centos001 ~]$ su - user5          //尝试从aming切换到 另一个普通用户
密码:
上一次登录:三 11月  1 21:55:48 CST 2017pts/1 上
su: 警告:无法更改到 /home/user5 目录: 没有那个文件或目录         //继续报错
-bash-4.2$ pwd
/home/aming               //这里能看到user5没有在,家目录下
-bash-4.2$ 登出                 //所以接下来我们要给它添加目录
[aming@centos001 ~]$ 登出
[root@centos001 ~]# id user5   //查看用户属性
uid=1007(user5) gid=1007(user5) 组=1007(user5)
[root@centos001 ~]# mkdir /home/user5/                                   //创建一个文件
[root@centos001 ~]# chown user5:user5 /home/user5/             //更改所有者和所属组
[root@centos001 ~]# su - user5                                                     //切换用户
上一次登录:三 11月  1 21:57:31 CST 2017pts/1 上
-bash-4.2$ pwd                                           //显示又报错了 ,是因为我们创建的目录里面是空的,所以要给它配置一个文件
/home/user5                    
-bash-4.2$ ls -la
总用量 0
drwxr-xr-x. 2 user5 user5  6 11月  1 22:02 .
drwxr-xr-x. 9 root  root  96 11月  1 22:02 ..
-bash-4.2$ 登出
[root@centos001 ~]# ls /etc/skel/                      // 通配文件所在目录
[root@centos001 ~]# ls -la /etc/skel/
总用量 24 
drwxr-xr-x.  2 root root   62 8月  29 18:54 .                //  通配文件
drwxr-xr-x. 78 root root 8192 11月  1 21:55 ..
-rw-r--r--.  1 root root   18 8月   3 2016 .bash_logout
-rw-r--r--.  1 root root  193 8月   3 2016 .bash_profile
-rw-r--r--.  1 root root  231 8月   3 2016 .bashrc
[root@centos001 ~]# cp /etc/skel/.bash* /home/user5/            //拷贝至刚才我们创建的文件夹
[root@centos001 ~]# chown -R user5:user5 !$                          //改变文件所有者和所属组
chown -R user5:user5 /home/user5/
[root@centos001 ~]# su - user5
上一次登录:三 11月  1 22:03:45 CST 2017pts/1 上
[user5@centos001 ~]$ 

sudo 命令

  • 用法:执行一个只有root才能执行的命令,但是需要输入密码(root用户的密码)
  • 预设让一个普通用户使用sudo命令 :set nu 可以查看文件的行数
[root@centos001 ~]# visudo                     //编辑文件,让普通用户有能使用sudo命令
[root@centos001 ~]# su - aming
上一次登录:三 11月  1 22:41:15 CST 2017pts/0 上
[aming@centos001 ~]$ ls /root/                           //这里是因为前面做实验的时候,我们给ls命令加了特殊权限
111     234    aling              dir3           yum.log
123     2.txt  aminglinux         linux计划.txt
22.txt  3.txt  anaconda-ks.cfg.1  ls2
[aming@centos001 ~]$ ls /root/
111     234    aling              dir3           yum.log
123     2.txt  aminglinux         linux计划.txt
22.txt  3.txt  anaconda-ks.cfg.1  ls2
[aming@centos001 ~]$ 登出                                  
[root@centos001 ~]# ls -l /usr/bin/ls
-rwxr-sr-x. 1 root root 117656 11月  6 2016 /usr/bin/ls   //能看到ls有set_gid权限
[root@centos001 ~]# chmod g-s /usr/bin/ls                         //用chmod 去掉
[root@centos001 ~]# su - aming                       
上一次登录:三 11月  1 22:44:31 CST 2017pts/0 上
[aming@centos001 ~]$ ls /root/                            //这里切换到aming就显示没有权限了
ls: 无法打开目录/root/: 权限不够
[aming@centos001 ~]$ sudo /usr/bin/ls /root/                              //使用sudo命令后就可以使用了
We trust you have received the usual lecture from the local System
Administrator. 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 aming:                                                 //需输入密码
111	234    aling		  dir3		 yum.log
123	2.txt  aminglinux	  linux计划.txt
22.txt	3.txt  anaconda-ks.cfg.1  ls2
[aming@centos001 ~]$ cat /root/3.txt
cat: /root/3.txt: 权限不够
[aming@centos001 ~]$ sudo /usr/bin/cat /root/3.txt
  • 在visudo里编辑配置文件

在编辑的时候加NOPASSWD : 那个用户使用sudo命令的时候就不需要输入密码了

禁止root用户远程登录

  • 作用: 为了防止歹人知道roo密码的情况下 被人远程登录root
  • 步骤

1.打开文件并配置

[root@centos001 ~]# vi /etc/ssh/sshd_config   

2.修改文件

3.重启sshd服务

[root@centos001 ~]# systemctl restart sshd.service

扩展

  • su与sudo的比较

http://www.apelearn.com/bbs/thread-7467-1-1.html

  • sudo -i 也可以登录到root吗?xxx

http://www.apelearn.com/bbs/thread-6899-1-1.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!