Linux基础——su&&sudo 切换用户

版权声明:本文为 Cityzen Wang 原创文章,欢迎转载!转载请注明出处:http://blog.csdn.net/cityzenoldwang https://blog.csdn.net/CityzenOldwang/article/details/60572531
查看当前用户命令
#id
#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命令】




复习:使用普通用户user6,在不输入密码的情况下删除普通用户user5

sudoers中的Defaults选项requiretty要求只有拥有tty的用户才能使用sudo。

普通用户使用sudo命令可以执行某些只有root才可以执行的命令,前提是需要知道普通用户自己的密码。默认只有root可以使用sudo命令,普通用户想要使用sudo,需要root提前设定。
可以使用visudo命令去编辑相关配置文件/etc/sudoers。如果没有visudo,使用安装命令 yum install -y sudo。

用户名   命令
root ALL=(ALL) ALL
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】
提示权限不够
$exit
#visudo
user1 ALL=(root) ALL
#su - user1
$sudo ls /root


一、用户名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




没有更多推荐了,返回首页