一、su命令
su aming 切换用户(这种方法切换用户,切换的不彻底,还会在/root下)
su - aming (加- 会直接切换到该用户家目录下,并加载配置文件)
whoami 可以查看当前用户
[root@glinux-01 ~]# whoami
root
su - -c "touch /tmp/test.txt" aming
-c切换到该用户执行此命令
/etc/skel/ 这个目录时家目录文件的模板,如果家目录没有这些文件,直接拷贝过去。
[root@linux-128 ~]# cp /etc/skel/.bash* /home/user5/
二、sudo命令
- sudo可以使一个普通用户临时去执行root的一个命令或者脚本,通常情况下都是给普通用户授权root用户的身份;不使用su的原因是,su切换的root用户下,需要root的密码,告知密码很不安全;默认情况下只有root用户才能使用sudo命令,普通用户要想使用sudo命令,必须要root预先设定;
- 使用visudo命令编辑配置文件/etc/sudoers,如果没有这个命令,需要用yum install -y sudo 找到下面内容,这个命令可以检测是否有错误,直接编辑无法检测错误。找到如下这行,可以给指定用户添加一些命令,这样该用户就可以使用root权限执行这些命令。
## Allow root to run any commands anywhere //允许root用户去运行所有的命令,在任何地方
root ALL=(ALL) ALL 最后一个all是所有命令(all)代表用户
user7 ALL=(ALL) /usr/bin/ls, /usr/bin/cat //指定user7可以用哪些命令
user5 ALL=(ALL) NOPASSWD: /usr/bin/ls, /usr/bin/cat //不需要密码验证,不加nopasswd,第一试用会要密码验证
在编辑下输入:set nu 可以显示行号
普通用户可以这样使用sudu命令
sudo /user/bin/ls /root/
visudo编辑配置文件时,也可以使用别名,Cmnd_Alias
## Allow root to run any commands anywhere //允许root用户去运行所有的命令,在任何地方
root ALL=(ALL) ALL 最后一个all是所有命令
user7 ALL=(ALL) AMIN_CMD//指定user7可以用哪些命令,使用别名
三、限制用户远程登录
1想要root无法远程登陆需要编辑配置文件vi /etc/ssh/sshd_config,修改permitrootlogin yes改成no
修改后,重启服务systemctl restart sshd.service
2远程登录被禁后,我们可以登录普通用户,然后使用sudo命令切换到root用户下
visudo编辑配置文件,使用用户别名,可以给别名添加用户,别名相当于一个用户数组。
使用用户别名给该用户组 添加使用su命令不需要使用密码的权限。
[user5@linux-128 ~]$ sudo su - root