1,su 的适用条件和威力
su 命令就是切换用户的工具, 怎么理解呢? 比如我们以普通用户 beinan 登录的, 但要添加用户任务, 执行 useradd ,beinan 用户没有这个权限, 而这个权限恰恰由 root 所拥有. 解决办法无法有两个, 一是退出 beinan 用户, 重新以 root 用户登录, 但这种办法并不是最好的; 二是我们没有必要退出 beinan 用户, 可以用 su 来切换到 root 下进行添加用户的工作, 等任务完成后再退出 root. 我们可以看到当然通过 su 切换是一种比较好的办法;
通过 su 可以在用户之间切换, 如果超级权限用户 root 向普通或虚拟用户切换不需要密码, 什么是权力? 这就是! 而普通用户切换到其它任何用户都需要密码验证;
2,su 的用法:
su [OPTION 选项参数] [用户]
-, -l, --login 登录并改变到所切换的用户环境;
-c, --commmand=COMMAND 执行一个命令, 然后退出所切换到的用户环境;
至于更详细的, 请参看 man su ;
3,su 的范例:
su 在不加任何参数, 默认为切换到 root 用户, 但没有转到 root 用户家目录下, 也就是说这时虽然是切换为 root 用户了, 但并没有改变 root 登录环境; 用户默认的登录环境, 可以在 / etc/passwd 中查得到, 包括家目录, SHELL 定义等;
- [[email protected] ~]$ su
- Password:
- [[email protected] beinan]# pwd
- /home/beinan
su 加参数 - , 表示默认切换到 root 用户, 并且改变到 root 用户的环境;
- [[email protected] ~]$ pwd
- /home/beinan
- [[email protected] ~]$ su -
- Password:
- [[email protected] ~]# pwd
- /root
su 参数 - 用户名
[[email protected] ~]$ su - root 注: 这个和 su - 是一样的功能;
- Password:
- [[email protected] ~]# pwd
- /root
[[email protected] ~]$ su - linuxsir 注: 这是切换到 linuxsir 用户
Password: 注: 在这里输入密码;
[[email protected] ~]$ pwd 注: 查看用户当前所处的位置;
/home/linuxsir
[[email protected] ~]$ id 注: 查看用户的 UID 和 GID 信息, 主要是看是否切换过来了;
- uid=505(linuxsir) gid=502(linuxsir) groups=0(root),500(beinan),502(linuxsir)
- [[email protected] ~]$
[[email protected] ~]$ su - -c ls 注: 这是 su 的参数组合, 表示切换到 root 用户, 并且改变到 root 环境, 然后列出 root 家目录的文件, 然后退出 root 用户;
Password: 注: 在这里输入 root 的密码;
anaconda-ks.cfg Desktop install.log install.log.syslog testgroup testgroupbeinan testgrouproot
[[email protected] ~]$ pwd 注: 查看当前用户所处的位置;
/home/beinan
[[email protected] ~]$ id 注: 查看当前用户信息;
uid=500(beinan) gid=500(beinan) groups=500(beinan)
4,su 的优缺点;
su 的确为管理带来方便, 通过切换到 root 下, 能完成所有系统管理工具, 只要把 root 的密码交给任何一个普通用户, 他都能切换到 root 来完成所有的系统管理工作;
但通过 su 切换到 root 后, 也有不安全因素; 比如系统有 10 个用户, 而且都参与管理. 如果这 10 个用户都涉及到超级权限的运用, 做为管理员如果想让其它用户通过 su 来切换到超级权限的 root, 必须把 root 权限密码都告诉这 10 个用户; 如果这 10 个用户都有 root 权限, 通过 root 权限可以做任何事, 这在一定程度上就对系统的安全造成了威协; 想想 Windows 吧, 简直就是恶梦;
"没有不安全的系统, 只有不安全的人", 我们绝对不能保证这 10 个用户都能按正常操作流程来管理系统, 其中任何一人对系统操作的重大失误, 都可能导致系统崩溃或数据损失;
所以 su 工具在多人参与的系统管理中, 并不是最好的选择, su 只适用于一两个人参与管理的系统, 毕竟 su 并不能让普通用户受限的使用;
超级用户 root 密码应该掌握在少数用户手中, 这绝对是真理! 所以集权而治的存在还是有一定道理的;
来源: http://www.bubuko.com/infodetail-3108679.html