且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

3.7 su命令;3.8 sudo命令;3.9 限制root远程登录

更新时间:2022-09-15 17:32:28

扩展:
sudo与su比较 http://www.apelearn.com/bbs/thread-7467-1-1.html
sudo配置文件样例  www.opensource.apple.com/source/sudo/sudo-16/sudo/sample.sudoers
sudo不错的教程 http://www.jianshu.com/p/51338e41abb7
sudo -i 也可以登录到root吗? http://www.apelearn.com/bbs/thread-6899-1-1.html
3.7 su命令
1. 切换普通用户:su - 普通用户
[root@hao-01 ~]# su - haojiabin
2. 查看当前登录用户:
[haojiabin@hao-01 ~]$ whoami
3. 创建普通用户,但不创建用户夹目录:useradd -M 普通用户名
[root@hao-01 ~]# useradd -M hao
4. 查看home目录下(home目录下是 存放普通用户夹目录):
[root@hao-01 hao]# ls /home
普通用户在home下没有对应的夹目录,不能正常用su - 切换到普通用户下
5. 切换没有夹目录的普通用户下:
[root@hao-01 hao]# su - hao
有夹目录,夹目录没有配置文件也不能正常访问!
6. home目录下,创建普通用户夹目录 :
[root@hao-01 hao]# mkdir /home/hao
7. 拷贝.bash开头的配置文件到用户夹目录下:
      命令使用:   cp /etc/skel/.bash* 普通用户夹目录
[root@hao-01 ~]# cp /etc/skel/.bash* /home/hao
8. 指定:用户夹目录的所有者和所属组:
     命令使用:   chown -R 所有者:所属组  夹目录
[root@hao-01 ~]# chown -R hao:hao /home/hao/
9. 切换普通用户命令: su - 普通用户名
[root@hao-01 ~]# su - hao
3.8 sudo命令
1. 给普通用户添加root权限命令:visudo
[root@hao1 ~]# visudo
root用户下,用visudo给普通用户添加root的权限命令,格式如下图:
内容行数显示:一般模式下输入 :set nu
写入格式:此目的是:给普通用户授权root用户才可以使用的一些相应命令!
普通用户    ALL=(root)    ALL或root下命令的绝对路径
clipboard.png
2. 切换至普通用户下:
[root@hao-01 ~]# su - hao
3. 在普通用户下,运行 ls 查看/root/目录,是没有权限的!!!
[hao@hao-01 ~]$ ls /root/
clipboard.png
4. 在普通用户下,运行:
sudo命令执行ls绝对路径命令文件,查看/root/目录:
提示:执行的ls命令,可以绝对路径,也可不用绝对路径!!!
[hao@hao-01 ~]$ sudo /usr/bin/ls /root/
clipboard.png
5. 在普通用户下,运行:
sudo命令执行cat绝对路径命令文件,查看/root/下文件内容:
提示:执行的cat命令,可以绝对路径,也可不用绝对路径!!!
[hao@hao-01 ~]$ sudo /usr/bin/cat  /root/1.txt
clipboard.png
运行sudo命令,免输入普通用户密码:
1. 给普通用户添加root权限命令,同时设定不用输入普通用户密码,即可运行sudo命令:
[root@hao1 ~]# visudo
写入格式:此目的是:普通用户运行sudo命令,不用输入普通用户密码!ALL=root全部
普通用户   ALL=(root)      NOPASSWD:  ALL
clipboard.png
2. 切换至普通用户下:
[root@hao-01 ~]# su - hao1
3. 在普通用户下,运行:sudo命令执行ls命令,查看/root/目录:
[hao@hao-01 ~]$ sudo ls /root/
clipboard.png
1. 设定别名命令:可包含多个root权限才可执行的命令:
[root@hao1 ~]# visudo
写入格式:此目的是:设定,别名命令,可包含多个root权限命令
Cmnd_Alias HAO_CMD = /usr/bin/ls,  /usr/bin/mv, /usr/bin/cat
clipboard.png
2. 给普通用户添加root权限命令,同时设定不用输入普通用户密码,即可运行sudo命令:
[root@hao1 ~]# visudo
写入格式:此目的是:给普通用户授权别名命令中,包含的所有命令!
普通用户   ALL=(root)      NOPASSWD: HAO_CMD
clipboard.png
3. 切换至普通用户下:
[root@hao-01 ~]# su - hao1
4. 因别名命令(HAO_CMD)包含:ls,mv,cat 命令,
在设定的普通用户下,可以用sudo 执行这些(ls,mv,cat)命令!
[root@hao-01 ~]# sudo ls   /root/
[root@hao-01 ~]# sudo mv  /root/1.txt  2.txt
[root@hao-01 ~]# sudo cat /root/2.txt
3.9 限制root远程登录
多个普通用户设定为一个Alias,相当于用户组的作用:
1. 设定普通用户的Alias(别名,可包含多个用户)
[root@hao-01 ~]# visudo
写入格式: User_Alias 定义别名S = 普通用户,普通用户1,普通用户2
                  User_Alias HAOS = hao,hao1,hao2
clipboard.png
2. 给包含普通用户的别名,设定root用户才可执行的超级管理权限命令:
[root@hao-01 ~]# visudo
写入格式: 包含多个用户的别名S   ALL=(root)      NOPASSWD: HAO_CMD
                   HAOS   ALL=(root)      NOPASSWD: HAO_CMD
作用:用户别名包含多个普通用户,所设置的root命令使用权限是统一 一样的!
clipboard.png
3. 切换至普通用户(hao hao1 hao2):
[root@hao-01 ~]# su - hao
[root@hao-01 ~]# su - hao1
[root@hao-01 ~]# su - hao2
4. 用户别名:包含的普通用户,设置定的权限是一样的!
限制root远程登录
1. 修改sshd.service配置文件,设定限制root远程登录:
[root@hao-01 ~]# vi /etc/ssh/sshd_config
#PermitRootLogin yes 改成: PermitRootLogin no
clipboard.png
2. 重启sshd.service服务:
[root@hao-01 ~]# systemctl restart sshd.service
3. 再用远程软件,登录root用户,已经不许登录了!!!
clipboard.png








本文转自 主内安详 51CTO博客,原文链接:http://blog.51cto.com/zhuneianxiang/2055191,如需转载请自行联系原作者