Linux中su命令与sudo命令的区别是什么?

  su命令与sudo命令是Linux中比较常用的命令,sudo是以root用户方式执行命令,su是用来变更其他使用者的身份来执行命令。那么Linux中su命令与sudo命令的区别是什么?我们通过这篇文章详细讲解一下。

  1、关于密码

  两个命令的最大区别是:sudo命令需要输入当前用户的密码,su命令需要输入root用户的密码。很明显,就安全而言,sudo命令更好。例如,考虑到需要root访问权限的多用户使用的主机,使用su命令意味着需要与其他用户共享root用户密码,这显然会降低安全性。

  此外,如果要撤销特定用户的超级用户/root用户的访问权限,唯一的办法就是更改root密码,然后再告知所有其他用户新的root密码。

  而使用sudo命令就可以很好地处理以上的两种情况。鉴于sudo命令要求输入的是其他用户自己的密码,所以,不需要共享root密码。同时,想要阻止特定用户访问root权限,只需要调整sudoers文件的相应配置即可。

  2、默认行为

  两个命令之间的另外一个区别是其默认行为。sudo命令只允许使用提升的权限运行单个命令。而su命令会启动一个新的shell,同时允许使用root权限运行尽可能多的命令,直到明确退出登录。

  因此,su命令的默认行为是有风险的,因为用户有可能会忘记他们正在以root用户身份进行工作,于是,无意中做出了一些不可恢复的更改。

  3、日志记录

  尽管sudo命令是以目标用户的身份执行命令,但是它们会使用sudoer所配置的用户名来记录是谁执行命令。而su命令是无法直接跟踪记录用户切换到root用户之后执行了什么操作。

  4、灵活性

  sudo命令比su命令灵活很多,可以限制sudo用户可以访问哪些命令,用户通过sudo命令只能访问他们工作需要的命令,而su命令让用户有权限做任何事情。

  5、sudo su

  大概是因为使用su命令或直接以root用户身份登录有风险,所以一些Linux发行版默认禁用root用户账户。然而还是可以成功执行su命令,而不用输入root用户的密码,运行以下命令:sudo su

  由于使用sudo运行命令,只需要输入当前用户的密码。所以,一旦完成操作,su命令将会以root用户身份运行,这意味着它不会再要求输入任何密码。

  如果想在系统中启用root用户账户,必须手动设置root用户密码,可以使用以下命令:sudo passwd root。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值