一、su命令
su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
命令su的格式为:
su [-] username
1、后面可以跟 ‘-‘ 也可以不跟,普通用户su不加username时就是切换到root用户,当然root用户同样可以su到普通用户。 ‘-‘ 这个字符的作用是,加上后会初始化当前用户的各种环境变量。
下面看下加‘-’和不加‘-’的区别:
root用户切换到普通用户无需输入密码,普通用户切换到root用户需要密码。
2、在切换用户的过程可能会遇到这样的情况,提示普通用户家目录不存在:
那么如果我们创建这个用户的家目录,并且更改家目录所属用户和所属组呢,看下情况如何:
还是不行,这是因为/home/usertest04目录下去缺少配置文件,下图为正常用户家目录和testuser04家目录:
那么我们怎么解决这个问题呢,这些配置文件我们能不能复制进testuser04家目录呢?肯定可以的,在/etc/skel下有配置模板,我们这个这个目录下的'.bash'开头的文件复制到testuser04加目录下就可以了,之后级联更改家目录所属用户和所属组,然后在切换用户:
3、指定身份为test
user04用户(不登录该用户)并执行“touch /tmp/1.txt"命令:
二、sudo命令
用su是可以切换用户身份,如果每个普通用户都能切换到root身份,如果某个用户不小心泄漏了root的密码,那岂不是系统非常的不安全?没有错,为了改进这个问题,产生了sudo这个命令。使用sudo执行一个root才能执行的命令是可以办到的,但是需要输入密码,这个密码并不是root的密码而是用户自己的密码。默认只有root用户能使用sudo命令,普通用户想要使用sudo,是需要root预先设定的,即使用 visudo 命令去编辑相关的配置文件/etc/sudoers. 如果没有visudo这个命令,请使用 yum install -y sudo 安装。
默认root能够sudo是因为这个文件中有一行 “root ALL=(ALL) ALL” 在该行下面加入 “testuser04 ALL=(ALL) ALL” 就可以让testuser04用户拥有了sudo的权利。使用 “visudo” 命令编辑/etc/sudoers配置文件,其实它的操作方法和前面阿铭介绍的 “vi” 命令使用方法是一样的,按 ‘i’ 进入编辑模式,编辑完成后,按 “Esc” ,再输入 ”:wq” 完成保存。
在没有sudo权限之前,普通用户无法用ls命令查看/root/目录:
在/etc/sudoers配置文件中赋予testuser04用户sudo权限:
visudo //编辑sudoers配置文件
1、在配置文件中添加一行,可以使用所有命令:
然后保存退出,再用testuser04用户查看/root/目录:
2、如果不想testuser04用户能使用所有root才能执行的命令,只能执行某个root才能执行的命令,比如ls命令,那么我们就需要:
保存退出之后,我们只能使用sudo执行ls命令:
3、在使用过程用过程中,比如:如果很多普通用户只能有ls和cat权限,但是每次输入这么多路径麻烦,可以为命令设置一个组:
然后修改:
4、如果不需要执行sudo时输入密码:
三、不允许root远程登录linux
如果没使用密钥登录服务器,使用密码登录,为了加强安全,禁止root用户远程登陆服务器,只允许普通用户登录。
禁止root远程登陆
vi /etc/ssh/sshd_config
将其中的PermitRootLogin改成no:
然后重新启动ssh服务就 可以了
systemctl restart sshd.service
但是无法远程登录root用户,如果我们需要使用root权限的话,怎么办呢?把su命令放置sudo配置文件里,授权普通用户使用su命令,普通用户再切换至root(无需root密码),即root用户 su 到root用户,所以无需密码。比如testuser02用户无需密码即可切换至root用户:
切换root,无需密码(这个权限有点大,一般不用):
转载于:https://blog.51cto.com/3069201/2055158