一、su

切换用户

普通用户直接su 可以切换到root用户
root用户也可以用su + username 切换到普通用户
su - username
带用户环境切换用户
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
Linux学习笔记(十三) su  、sudo 、限制root远程登陆

Linux学习笔记(十三) su  、sudo 、限制root远程登陆

su - -c "touch /tmp/123.txt" user1

以user1用户创建/tmp/123.txt 文件

如果需要切换到一个没有家目录的用户,会像图中一样报错

这时候首先需要创建家目录,然后将文件夹用户与组修改为目标用户与组
,再将bash配置信息复制到家目录下,

mkdir -p /home/user4
chown  user4:user4  /home/user4
cp /etc/skel/.bash*  /home/user4

即可登陆

这里最好将家目录下配置文件属性也修改为目标用户的
chown -R user4:user4 /home/user4/

/etc/skel/ 文件夹下存放的是用户配置模板,遇到上面这种情况时,就可以将模板复制到家目录,从而使用户可以正常使用
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
Linux学习笔记(十三) su  、sudo 、限制root远程登陆

二、sudo

普通用户临时授权root用户权限去执行一条命令
visudo可以查看sudo配置文件

visudo

Linux学习笔记(十三) su  、sudo 、限制root远程登陆
一定要用visudo去打开文件,不要用vi
因为此文件特别重要,vi无法显示语法错误,visudo可以显示语法错误

用法基本与vi相同,从上图可以看到打开的文件是/etc/sudoers

Linux学习笔记(十三) su  、sudo 、限制root远程登陆
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
如图,一般我们只需要将用户名改为自己需要的用户名,中间两个all看情况修改,(括号 中的all是指以什么用户运行命令),后面命令也是看需要。
Linux学习笔记(十三) su  、sudo 、限制root远程登陆

可以看到用户chen1 并无权限ls /root/
但是sudo ls /root/就可以

Linux学习笔记(十三) su  、sudo 、限制root远程登陆
在命令前加入NOPASSWD: 执行sudo时就不需要再输入用户的密码
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
下面这个地方可以为命令设置别名,例如我将之前三个命令的绝对路径别名设置为CHINA_A(要大写),然后将用户配置那里命令路径改为别名
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
在需要用到的命令比较多时或者重复建立多个用户的sudo时,别名就非常方便了

下图所示,我们之前修改的是用户的sudo,也可以在下面一行修改组的sudo,这样就可以使一个组的用户可以运行相同的sudo命令
Linux学习笔记(十三) su  、sudo 、限制root远程登陆

三、禁止root用户远程登陆

由于root用户权限比较大,为了安全,有时候我们需要限制root用户远程登陆;
但是有时候我们又需要用root权限去做一些事情,那么我们就可以用sudo的方法,将su命令给与一个普通用户以sudo执行的权限,
具体如下
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
这里User_Alias就相当于在sudo中为chen1和chen2两个用户建立了一个sudo专用的组
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
赋予CHEN1两位用户可以sudu su 的权限
,现在去关闭root远程登陆的许可

vi /etc/ssh/sshd_config

Linux学习笔记(十三) su  、sudo 、限制root远程登陆
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
如图,将

#PermitRootLogin yes

改为

PermitRootLogin no

保存后重启sshd服务
systemctl restart sshd.service

这时候再用root用户登陆就无法登陆了,但是可以用刚才设置的两个普通用户,以sudo su - 方式进入root用户
Linux学习笔记(十三) su  、sudo 、限制root远程登陆
最后,为方便日后继续学习测试,将root用户远程登陆权限恢复。