超级用户在操作系统管理中的作用
1. 可以对任何文件、目录或进程进行操作
超级用户的操作是在系统最高许可范围内的操作,有些操作就是具有超级权限的root也无法完成。比如/proc目录,/proc是用来反应系统运行的实时状态信息的,因此即便是root也无法对其进行写操作。
2. 对涉及系统全局的系统管理
硬件管理、文件系统管理、用户管理以及涉及的系统全局配置等,如果执行某个指令或工具时,提示无权限,大多是需要超级权限来完成。比如用adduser来添加用户,这跟只能使用通过超级权限的用户来完成。
普通用户授予root权限
1. su指令
su是英文“switch user”的缩写,即切换用户。使用su指令切换到其他用户模式,提示输入密码时,该密码为切换后账户的密码,用法为:su 账户名称
如果后面不加账户时默认为root账户,密码也为超级账户的密码。没有时间限制。
2. su指令使用条件
su指令就是切换用户的工具,当前系统登录为普通用户handuoduo,但要完成添加用户任务,执行useradd指令后,提示普通用户handuoduo没有权限,而这跟权限恰恰由root所拥有。解决的办法有两个:
1)退出handuoduo用户,重新以root用户登录,但这种办法并不是最好的。
2)不退出handuoduo用户,可以用su来切换到root下进行添加用户的工作,等任务完成后再退出root。
我们可以看到当然通过su切换是一种比较好的办法。
通过su可以在用户之间切换,超级权限用户root向普通或虚拟用户切换不需要密码,而普通用户切换到其他任何用户都需要密码验证。
3. su指令用法
su指令常用的选项如下所示:
-
-c, -command 执行相关指令,然后退出所切换到的用户环境
-
-l, -login 登录并改变到所切换的用户环境。
关于su指令更详细的使用,可以参考man su
4. su指令实例
su指令在不加任何参数,默认为切换到root用户,但没有转到root用户主目录的情况下,也就是说这时虽然是切换为root用户了,但并没有改变root登录环境,即用户默认登录环境。可以在/etc/passwd中查到,包括主目录、shell定义等。
普通用户切换到root用户
whoami
handuoduo
su
Password:
whoami
root
在上述代码中,普通用户模式下,直接输入su指令即可切换到root用户,su加参数“-”表示默认切换到root用户,并且改变到root用户的环境。
普通用户切换到root用户并改变环境变量
whoami
handuoduo
su
Password:
whoami
root
echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/handuoduo/bin
exit
exit
su -
Password:
whoami
root
echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
su 指令加上 “-” 参数,目标用户的环境变量一起被切换,“su 参数 - 用户名”,下面代码和上述实例中的作用相同。
whoami
handuoduo
su
Password:
whoami
root
echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/handuoduo/bin
exit
exit
su - root
Password:
whoami
root
echo $PATH
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
“su - root”指令和“su -”功能相同。
5. su 的优缺点
su的确为管理带来方便,通过切换到root下,能完成所有系统管理工具。只要把root的密码交给任何一个普通用户,它都能切换到root来完成所有的系统管理工作。但通过su切换到root后,也有不安全因素,比如系统有10个用户,而且都参与管理。如果这10个用户都涉及超级权限的运用,作为管理员如果让其他用户通过su来切换到超级权限的root,必须把root权限密码都告诉这10个用户;如果这10个用户都有root权限,通过root权限可以做任何事,这在一定程度上就对系统的安全造成了威胁。