被问su 和sudo的区别?当场吓尿了
Posted RockyPeng3
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了被问su 和sudo的区别?当场吓尿了相关的知识,希望对你有一定的参考价值。
先直接揭晓答案
- su 全称 switch user ,用来切换用户的,并不是super user
- sudo 全称 super user do,表示用超级用户的身份执行,超级用户就是指root用户
su用法
su - user_name
- 不输入用户名时,表示切换到root用户
- 带-参数,表示已login-shell方式登录目标用户,这样就会加载目标用户的各种环境变量设置。
- 不带-参数,也已non-login-shell方式登录目标用户,也就是说切换用户后不会加载目标用户的环境变量,也就是说切换用户后的环境变量设置还是之前用户的环境变量设置
- 执行su命令时候回要求输入root用户的密码
su - -c "命令串"
- -c参数,可以理解为先切换到目标用户,然后执行命令,然后自动退出目标用户
sudo用法
当执行某个命令的时候提示 Permission denied,这个时候可以通过su命令切换用户后执行。除了这个方式还有另外一种,就是sudo
sudo 想要执行的命令
- sudo命令的执行,需要输入当前用户的密码(当然可以设置不要密码)
- 需要当前用户在/etc/sudoers文件中
- 编辑sudoers文件,需要使用visudo命令,而visudo命令需要root用户执行
- sudoers文件还可以定义用户的权限
思考
- sudo su - 这个命令要求输入谁的密码?执行效果是怎样的?和su -的区别是什么?
- 要求输入当前用户的密码而非root用户密码
- 成功执行后可以切换到root用户
- su -也可以切换到root用户,但要求输入root用户的密码
- sudo -i和sudo su -等同
- sudo危害
我们已经看到了,如果一个用户在 /etc/sudoers 文件中,那么它就具有 sudo 权限,就能通过 sudo su - 或者 sudo -i 等命令切换到 root 用户了,那这时这个用户就变成 root 用户了,那这不对系统造成很大的威胁吗?
实际上的确是这样的。所以如果在编辑 /etc/sudoers 文件赋予某种用户 sudo 权限时,必须要确定该用户是「可信任」的,不会对系统造成恶意破坏,否则将所有 root 权限都赋予该用户将会有非常大的危险。
扩展阅读:
以上是关于被问su 和sudo的区别?当场吓尿了的主要内容,如果未能解决你的问题,请参考以下文章