一、su
切换用户
普通用户直接su 可以切换到root用户 root用户也可以用su + username 切换到普通用户 su - username 带用户环境切换用户
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/ 文件夹下存放的是用户配置模板,遇到上面这种情况时,就可以将模板复制到家目录,从而使用户可以正常使用
二、sudo
普通用户临时授权root用户权限去执行一条命令 visudo可以查看sudo配置文件
visudo
一定要用visudo去打开文件,不要用vi 因为此文件特别重要,vi无法显示语法错误,visudo可以显示语法错误 用法基本与vi相同,从上图可以看到打开的文件是/etc/sudoers
如图,一般我们只需要将用户名改为自己需要的用户名,中间两个all看情况修改,(括号 中的all是指以什么用户运行命令),后面命令也是看需要。
可以看到用户chen1 并无权限ls /root/ 但是sudo ls /root/就可以
在命令前加入NOPASSWD: 执行sudo时就不需要再输入用户的密码 下面这个地方可以为命令设置别名,例如我将之前三个命令的绝对路径别名设置为CHINA_A(要大写),然后将用户配置那里命令路径改为别名 在需要用到的命令比较多时或者重复建立多个用户的sudo时,别名就非常方便了 ;
下图所示,我们之前修改的是用户的sudo,也可以在下面一行修改组的sudo,这样就可以使一个组的用户可以运行相同的sudo命令
三、禁止root用户远程登陆
由于root用户权限比较大,为了安全,有时候我们需要限制root用户远程登陆; 但是有时候我们又需要用root权限去做一些事情,那么我们就可以用sudo的方法,将su命令给与一个普通用户以sudo执行的权限, 具体如下 这里User_Alias就相当于在sudo中为chen1和chen2两个用户建立了一个sudo专用的组 赋予CHEN1两位用户可以sudu su 的权限 ,现在去关闭root远程登陆的许可
vi /etc/ssh/sshd_config
如图,将
#PermitRootLogin yes
改为
PermitRootLogin no
保存后重启sshd服务
systemctl restart sshd.service
这时候再用root用户登陆就无法登陆了,但是可以用刚才设置的两个普通用户,以sudo su - 方式进入root用户 最后,为方便日后继续学习测试,将root用户远程登陆权限恢复。