sudo和su有什么区别?

几天前,我收到了来自博客定期阅读者和强迫评论者Miguel的询问,内容涉及 两者之间到底有什么区别 须藤 y su。 特别是,Miguel担心一种方法是否比另一种更为安全。 碰巧我在那里读过 须藤不够安全 并想了解更多。这是另一篇帖子,专门针对那些希望获得更多关于 末期之谜.

Su

该计划 su 允许您使用其他用户的外壳程序而无需注销当前会话。 它通常用于获取管理操作的root权限,而不必注销并重新进入系统。 某些桌面环境,包括GNOME和KDE,具有允许用户执行通常需要这种访问权限的命令之前以图形方式要求输入密码的程序。

su这个名字来自英语 s优品 u是(替代用户)。 也有一些人使它源于 sUPERuser(超级用户,即根用户或管理员用户),因为它通常用于采用系统管理员的角色。

跑步的时候 su 它询问您要访问的帐户的密码,如果被接受,则可以访问该帐户。

[guy @ localhost] $您的密码:[root @ localhost]#退出注销[guy @ localhost] $

通过不放置用户,可以以管理员身份访问它。 但是,也可以传递另一个用户名作为参数。

[guy @ localhost] $ su mongo密码:[mongo @ localhost]#退出注销[guy @ localhost] $

输入密码后,我们就可以像执行其他用户一样执行命令。 书面 出口,我们返回给用户。

一种广泛使用的变体是使用 su 跟一个破折号。 因此,要以root用户身份登录,您必须输入 他的- 并以其他用户身份登录 您的-其他用户。 是否使用脚本之间的区别? 建议使用该脚本,因为它会模拟您将以该用户身份登录。 因此,它将执行该用户的所有启动文件,将当前目录更改为该用户的HOME,更改一些使它们适应新用户的系统变量的值(HOME,SHELL,TERM,USER,LOGNAME等),和别的 更多的东西.

为根/管理员帐户选择密码时,系统管理员必须非常小心,以免受到运行中的非特权用户的攻击 su。 一些类Unix系统有一个名为 ,这是唯一可以执行的人 su。 这可能会或可能不会减少安全性问题,因为入侵者可以简单地接管其中一个帐户。 他 su 但是,GNU不支持使用该组。 这样做是出于哲学原因。

须藤

一个相关的命令,称为 须藤,以其他用户身份执行命令,但要遵守一系列限制,即用户可以代表其他用户执行哪些命令(通常在文件中指定) / etc / sudoers).

另一方面,与 su, 须藤 提示用户输入自己的密码,而不是所需的用户; 这允许将命令委派给其他计算机上的用户,而不必共享密码,从而降低了使终端无人值守的风险。

须藤问题:宽限期

的优点 须藤 关于 su 是它仅执行假装为其他用户的请求命令,而没有实际更改当前用户。 这意味着一个人可以以管理员身份执行命令,下一秒钟,他们将拥有...或几乎之前使用过的用户的特权。

有些人认为安全漏洞是 须藤 授予“宽限期”,该宽限期允许用户以其他用户身份执行命令,而无需在执行命令后在命令和密码前重复输入sudo。 在“宽限期”之后, 须藤 会再次询问我们密码。

这是“不好的”,主要是因为有人在输入sudo密码后可以接管我们的计算机,并且在“宽限期”处于活动状态时进行灾难检查。

幸运的是,可以禁用“宽限期”,这将提高系统的安全性。 只需在文件中添加一行 / etc / sudoers:

sudo nano /等/ sudoers

并将以下行添加到文件末尾:

默认值:ALL timestamp_timeout = 0

更改将立即生效,而无需重新启动系统。


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   赫尔克

    实际上,如果您可以使用sudo以管理员权限输入并像使用su-一样呆在那里,则必须编写:sudo -s从而改变了当前用户,并把宽限时间作为一个玩笑(因为您可以像只要您想要,与您一样)

  2.   米克尔·马约尔·图尔

    感谢您的提及,但真正的荣誉归功于Sabayon聊天-我不再使用它,因为我的硬盘坏了,我更喜欢回到Ubuntu-。

    他们给我的原因是,有时在执行sudo某些配置时,它们不会获得绝对权限,并且配置仍然不正确。 通过以su作为根用户“登录”更新和维护任务,可以防止这种情况的发生。

    然后我给您发了电子邮件,因为我答应分享这个发现对我而言并不重要。

    由于默认情况下Ubuntu是在没有root用户的情况下安装的,因此只需运行即可

    “ Sudo passwd根”

    输入密码,确认,然后
    “苏根”
    用于维护操作,除了避免在每个命令中都加上sudo。

    原则上,在Ubuntu中,root帐户已删除,因此您不必总是使用该帐户登录,但是由于我得到的建议几乎是关于使用sudo牺牲的语气,以防万一我遵循它。

  3.   指甲指针

    您可以访问/ etc / shadow文件,并将root密码哈希更改为普通用户密码哈希,然后为root更改密码? 在另一时间,我尝试同样的方法。

  4.   让我们使用Linux

    明确。 它不是Fedora独有的。

  5.   MFCOLF77

    那两个可以安装吗?我以为《 SU》只在FEDORA中。

  6.   迭戈·基塞伊·阿尔巴·加勒特

    非常好的信息,这无疑会消除许多人的疑问,因为我知道有几个人对此表示怀疑。

  7.   Alex

    在ubunto中,我想我记得您不能使用su命令(以root用户身份输入)

  8.   哈赞·佩雷斯(Hazan Perez)

    好吧,要“恢复”根密码(实际上是任何其他密码),您可以使用John The Ripper对系统密码文件进行“攻击”。 我不会再对此多说了。

    也许还有其他方法...也许通过输入“ sudo su”然后输入命令“ passwd”来更改密码。 看看其他人的回应会很有趣...

  9.   让我们使用Linux

    没错!

  10.   让我们使用Linux

    是的...我要感谢Miguel Mayol i Tur ...他就是那个主意。 🙂
    干杯! 保罗

  11.   老板

    一直以来,谢谢您的巨大贡献,我们对此表示赞赏。

  12.   让我们使用Linux

    谢谢老板! 一个拥抱! 保罗

  13.   杰罗尼莫·纳瓦罗(JerónimoNavarro)

    “ su”和“ sudo”之间的区别是“ do”

  14.   埃里克

    我忘记了root密码,幸运的是我可以使用sudo,并且要使用su,我使用'sudo su'并且它不需要通过(?)
    有谁知道如何找出root密码(我可以通过sudo访问root)?

    1.    Marvergarab

      须藤密码

  15.   让我们使用Linux

    哈! 非常聪明!

  16.   法比安·佩斯(Fabian Pais)

    想要恢复root密码的人将是“ sudo passwd root”,然后它将要求您输入一个新密码。

  17.   alex-piloku@htmail.com

    你好,你过得怎么样

  18.   同步标记

    抱歉,使用su命令,如下所示:

    su -c“ command”,与使用不带宽限期的sudo相同。 我认为不需要sudo。

    真正使用sudo是为了使某些用户可以使用此命令或该命令,该命令在公司中更多使用,从而不必chroot,而su则无法完成。

  19.   雅卡迪斯

    亲爱的,我必须做一个Linux TP,并且我必须回答一些简单的问题。 也许他们可以帮助我。 从现在开始感谢:

    允许我们安装/删除/修改debian软件包的命令是什么?
    什么命令可以使我们更轻松地管理安装
    Debian中的软件包?
    能够安装rpm软件包的命令是什么?
    我们使用什么选项来卸载软件包?
    yum存储库所在的目录是什么?
    百胜的目的是什么?
    我们使用什么选项来搜索带有yum的软件包?
    我们使用什么选项来删除包裹?
    我们可以使用什么选项来更新系统?
    哪些字母标识许可证?
    他们每个人是什么意思?
    哪些命令列出了文件的权限?
    权限分为三个组?
    有两种实现权限的方法?
    许可证使用什么数字系统?
    这些字母的重量是多少?
    什么是特殊许可证?
    现有的特殊权限是什么?用户是什么?
    我可以使用哪些命令来更改权限?
    我使用什么参数来赋予文件执行权限?
    哪些参数仅用于授予组读取权限?
    哪些参数用于向其他用户组授予读/写权限,并从拥有该文件的用户中删除写操作?
    默认情况下为文件和目录创建什么权限?
    我们使用什么命令来验证它?
    我们如何更改默认掩码?
    我们如何使使用的面膜与众不同? (使用仅使所有者拥有所有权限的默认掩码。)
    什么命令列出了进程? 提及不同的参数及其用法。
    启动一切的过程是什么?
    列出与登录用户相对应的进程。
    列出系统的所有进程。
    我可以使用哪些选项来获取更多信息?
    列出终端中正在使用的所有进程
    哪个选项列出了流程及其依赖性?
    说明什么是父子过程以及如何识别它
    哪个命令以树的形式列出进程?
    哪个命令可以实时监控过程?
    仅监视一个过程
    什么命令显示内存使用情况?
    哪个参数显示内存(以兆字节为单位)?
    间隔是什么参数?
    哪个命令显示有关团队准备时间的信息?
    我用什么命令杀死进程?
    这些过程将如何处理才能最终确定?
    哪种信号最常见?
    列出支持的信号类型。
    在一个终端中,进行vi测试,然后转到另一个终端,寻找该进程并用15信号杀死它,同上但用9信号杀死它。
    信号9和15有什么区别?
    默认情况下,哪一个有效?
    为什么流程在后台运行? 在前台?
    运行vi测试,然后按Ctrl + Z,发生了什么?
    重复vi测试,按ctr + z,四次,如何完成失败的测试?
    将过程之一传递到前景并关闭vi。
    我们执行命令的哪个参数以使其不占用外壳程序?
    哪个命令可以修改已经运行的进程的优先级? 您将如何更改正在运行的终端的优先级?
    那里有什么级别的值,它们的层次是什么?
    打开/ etc / passwd文件,查看其优先级。
    将优先级更改为4,然后更改为25。您能同时分配两者吗? 为什么?
    列出进程及其优先级值。
    什么命令监视所有正在运行的进程?

  20.   ECC

    嗨,我想像我一样禁用sudo,我得到了:
    xxx的[sudo]密码:
    xxx不在sudoers文件中。 将报告此事件。

    因为我禁用了它,因为我在debian中使用su

    1.    让我们使用linux

      您好,ECC!

      我认为如果您在我们的问答服务中提出这个问题会更好 询问供应商 DesdeLinux 这样整个社区都可以帮助您解决问题。

      拥抱,巴勃罗。

  21.   贝托尔多

    你好我在Linux Mint中使用了硬盘温度命令:“ sudo hddtemp / dev / sda”,它要求输入密码,并且可以给我预期的结果。
    但是,然后在同一终端“ hddtemp / dev / sda”中执行时,它告诉我权限被拒绝。
    那么,宽限期对我不起作用,为什么呢?

  22.   贝托尔多

    您好博客。
    我还发现,在安装发行版(例如:ubuntu,linux mint)时,它会要求输入管理员密码。
    在控制中心图形界面中,我使用了该选项来更改用户密码。
    因此,现在使用«su-»会要求输入密码,该密码不是我当前的用户,而是安装发行版时使用的密码,仍然是root用户或管理员用户。
    这将导致许多用户忘记真正的管理员密码。

  23.   肯德尔·达维拉(Kendall Davila)

    您好,您的解释很好,非常清楚,简短而简洁。 感谢您的输入