被问su 和sudo的区别?当场吓尿了

Posted RockyPeng3

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了被问su 和sudo的区别?当场吓尿了相关的知识,希望对你有一定的参考价值。

先直接揭晓答案

  1. su 全称 switch user ,用来切换用户的,并不是super user
  2. sudo 全称 super user do,表示用超级用户的身份执行,超级用户就是指root用户

su用法

su - user_name 
  1. 不输入用户名时,表示切换到root用户
  2. 带-参数,表示已login-shell方式登录目标用户,这样就会加载目标用户的各种环境变量设置。
  3. 不带-参数,也已non-login-shell方式登录目标用户,也就是说切换用户后不会加载目标用户的环境变量,也就是说切换用户后的环境变量设置还是之前用户的环境变量设置
  4. 执行su命令时候回要求输入root用户的密码
su - -c "命令串"
  1. -c参数,可以理解为先切换到目标用户,然后执行命令,然后自动退出目标用户

sudo用法

当执行某个命令的时候提示 Permission denied,这个时候可以通过su命令切换用户后执行。除了这个方式还有另外一种,就是sudo

sudo 想要执行的命令
  1. sudo命令的执行,需要输入当前用户的密码(当然可以设置不要密码)
  2. 需要当前用户在/etc/sudoers文件中
  3. 编辑sudoers文件,需要使用visudo命令,而visudo命令需要root用户执行
  4. sudoers文件还可以定义用户的权限

思考

  1. sudo su - 这个命令要求输入谁的密码?执行效果是怎样的?和su -的区别是什么?
    1. 要求输入当前用户的密码而非root用户密码
    2. 成功执行后可以切换到root用户
    3. su -也可以切换到root用户,但要求输入root用户的密码
    4. sudo -i和sudo su -等同
  2. sudo危害

我们已经看到了,如果一个用户在 /etc/sudoers 文件中,那么它就具有 sudo 权限,就能通过 sudo su - 或者 sudo -i 等命令切换到 root 用户了,那这时这个用户就变成 root 用户了,那这不对系统造成很大的威胁吗?

实际上的确是这样的。所以如果在编辑 /etc/sudoers 文件赋予某种用户 sudo 权限时,必须要确定该用户是「可信任」的,不会对系统造成恶意破坏,否则将所有 root 权限都赋予该用户将会有非常大的危险。

扩展阅读:

https://mp.weixin.qq.com/s/ovjqSewSE83oUcYom5pb7g

以上是关于被问su 和sudo的区别?当场吓尿了的主要内容,如果未能解决你的问题,请参考以下文章

被问su 和sudo的区别?当场吓尿了

敖丙我把线上CPU打到100%,三歪吓尿了

吓尿了!手机充完电不拔充电器后果这么严重

Steam上97%好评的国产悬疑恐怖游戏,玩家吓尿了,也爆哭了?

几个吓尿了的公众号,前几个你不可能没听过

linux su(switch user)和sudo(superuser do)的区别?(sudo su与su的区别)