su
功能说明
su命令用于切换当前用户身份到其他用户身份,变更时须输入所要变更的用户帐号与密码。
su在不加任何参数,默认为切换到root用户,但没有转到root用户家目录下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境;用户默认的登录环境,可以在/etc/passwd 中查得到,包括家目录,SHELL定义等;
常用选项
语法
su(选项)(参数)
选项
参数
用户:指定要切换身份的目标用户。
使用实例
1.切换当前用户到root用户,并重新读取用户环境相关配置文件。
scarlett@scarlett-X550VXK:/root$ sudo su -l root
root@scarlett-X550VXK:~# pwd
/root
sudo
功能说明
sudo命令用来以其他身份来执行命令,预设的身份为root。在/etc/sudoers中设置了可执行sudo指令的用户。若其未经授权的用户企图使用sudo,则会发出警告的邮件给管理员。用户使用sudo时,必须先输入密码,之后有5分钟的有效期限,超过期限则必须重新输入密码。
常用选项
语法
sudo (选项)(参数)
选项
参数
指令:需要运行的指令和对应的参数。
1.配置sudo,使当前用户可以执行root可以执行的所有命令。
配置sudo必须通过编辑/etc/sudoers文件,而且只有超级用户才可以修改它,还必须使用visudo编辑。之所以使用visudo有两个原因,一是它能够防止两个用户同时修改它;二是它也能进行有限的语法检查。所以,即使只有你一个超级用户,你也最好用visudo来检查一下语法。
切换用户到root,利用visudo修改sudoers
# /etc/sudoers
#
# This file MUST be edited with the 'visudo' command as root.
#
# See the man page for details on how to write a sudoers file.
#
Defaults env_reset
# Host alias specification
# User alias specification
# Cmnd alias specification
# User privilege specification
root ALL=(ALL) ALL
scarlett ALL=(ALL) ALL
# Allow members of group sudo to execute any command after they have
# provided their password
# (Note that later entries override this, so you might need to move
# it further down)
%sudo ALL=(ALL) ALL
#
#includedir /etc/sudoers.d
# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL
2.允许users用户组中的用户像root用户一样使用shutdown命令
%users localhost=/sbin/shutdown -h now
su与sudo的区别
su方式切换是需要输入目标用户的密码,而sudo只需要输入自己的密码,所以sudo可以保护目标用户的密码不外流的。当帮root管理系统的时候,su是直接将root所有权利交给用户,而sudo可以更好分工,只要配置好/etc/sudoers,这样sudo可以保护系统更安全,而且分工明确,有条不紊。