su
作用:用户之间切换命令
优点:不需要退出系统切换用户,方便快捷。
缺点:需要知道用户密码才可以进行切换,不安全,但是root身份切换任务用户不需要密码。
使用区别:su - username 切换到username用户(环境变量,家目录)
su username 不是完全切换到username用户,还是当前用户的环境变量
以普通用户执行su - root和 su - 默认切换root用户,但停留在当前位置
su -c 以命令使用者身份执行后再退出所切换到的用户环境,如su -c "ls -l /root" root 以root身份查看root家目录
sudo
作用:临时调用root权限使用命令,但是要root预先授权在/etc/sudoers配置文件中设置
优点:更合理的分配管理权限,相关su更安全,不需要告诉普通用户root密码就可以授权普通用户特定命令
sudo -l 查看哪些命令可以执行或禁止
使用在/etc/sudoers的写法
练习用户组在/etc/sudoers中写法:
如果用户组出现在/etc/sudoers 中,前面要加%号,比如%beinan ,中间不能有空格;%beinan ALL=/usr/sbin/*,/sbin/*
如果我们在 /etc/sudoers 中加上如上一行,表示beinan用户组下的所有成员,在所有可能的出现的主机名下,都能切换到root用户下运行 /usr/sbin和/sbin目录下的所有命令;
练习取消某类程序的执行:
取消程序某类程序的执行,要在命令动作前面加上!号; 在本例中也出现了通配符的*的用法;
beinan ALL=/usr/sbin/*,/sbin/*,!/usr/sbin/fdisk 注:把这行规则加入到/etc/sudoers中;但您得有beinan这个用户组,并且beinan也是这个组中的才行;
本规则表示beinan用户在所有可能存在的主机名的主机上运行/usr/sbin和/sbin下所有的程序,但fdisk 程序除外;
[beinan@localhost ~]?$ sudo -l
Password: 注:在这里输入beinan用户的密码;
User beinan may run the following commands on this host:(root) /usr/sbin/*(root) /sbin/*(root) !/sbin/fdisk[beinan@localhost ~]?$ sudo /sbin/fdisk -lSorry, user beinan is not allowed to execute '/sbin/fdisk -l' as root on localhost.
注:不能切换到root用户下运行fdisk 程序;
如果有sudo 的权限而没有su的权限: sudo su;
阅读(383) | 评论(0) | 转发(0) |