3.7 su命令
用户切换命令:su
"!$":表示上一条命令的最后一个参数
查看当前用户命令
#whoami
#su - 【减号的作用,加上后会初始化当前用户的各种环境变量】
#su - aming
返回之后的路径,PATH环境变量均是aming用户下的
#su aming
切换之后,PATH环境变量,pwd的当前目录,均为root
如果不加-切换至 [用户名] 账户下,当前目录没有变化。
加上“-”切换到 [用户名] 账户后,当前目录为 [用户名] 账户的家目录,
su -c "命令" [用户名]
#su - -c "mkdir /tmp/121212" aming 【以阿铭普通用户的身份创建121212mulu 】
#su - -c "echo $PATH" aming 【在aming用户环境下,执行 echo $PATH命令】
3.8 sudo命令
普通用户使用sudo命令可以执行某些只有root才可以执行的命令,前提是需要知道普通用户自己的密码。默认只有root可以使用sudo命令,普通用户想要使用sudo,需要root提前设定。 可以使用visudo命令去编辑相关配置文件/etc/sudoers。如果没有visudo,使用安装命令 yum install -y sudo。
用法:
在visudo中查看行数的命令:
test ALL=(root) ALL 【test用户有了sudo权限】
#test ALL=(root) ALL 【加上#表示这条命令取消,暂不执行】【此段新增】
test用户可以从rootIP登陆切换至任何用户,并可以执行所有命令
#useradd user1 【创建用户user1】
#su user1
$ls 【在user1用户下,ls命令可以执行】
$ls /root 【但是不可以打开root目录,因为root只有root用户可以打开,此时需要visudo】
提示权限不够
- 用户名root
指定哪个用户拥有sudo的权利。
左边的ALL,指定主机或者主机IP地址,即,用户从哪个IP登陆来的,ALL就是所有IP都可。 小括号里面是一个用户名,即,用户可以切换到哪个用户的身份,如果是root,就只可以执行root的权限。如果是ALL表示所有用户。
指定test用户可以使用的命令有哪些,ALL就是全部命令。如果是多个命令,可以使用英文逗号隔开。
test ALL=(root) /bin/ls, /user/bin/passwd
test ALL=(root) NOPASSWD: /bin/ls, /user/bin/passwd 【执行以下命令的时候不需要输入密码就可执行】
%aming ALL=(root) NOPASSWD: /bin/,/usr/bin/ 【aming用户组的用户,在不需要密码的情况下,可以执行/bin和/usr/bin目录下的所有命令】
aming ALL=(root) /usr/sbin/,/sbin/,!/usr/sbin/fdisk 【aming用户可以执行bin下面的所有命令,除了/usr/sbin/fdisk】
#sudo -l 【列出当前用户可以执行的sudo权限】
#sudo ls /root
3.9 限制root远程登录
要想不允许ROOT用户登录,具体操作方法:
修改配置文件:/etc/ssh/sshd_config,在该文件中查找#PermitRootLogin yes并修改为PermitRootLogin no。保存配置文件后,需要重启sshd服务
注意:该方法只适用于通过ssh远程登陆Linux的情况。