sudo 的替代方案

sudo 的替代方案

我知道我们可以使用命令以超级用户/其他用户身份执行命令/脚本。但是否存在实用程序本身不可用/被用户删除的sudo可能性。如果是这样,除了 之外还有什么替代方案?此外, do和具有相同的用途?sudosudosusudosu

答案1

“sudo” 允许您以任何用户身份启动任何程序。它是“setuid root”,因为程序本身需要 root 权限才能执行此操作。sudo 的强大之处在于您可以轻松配置谁可以做什么。您可以允许用户使用 sudo 执行 nmap(并且只能执行 nmap)。

'su' 允许您以任何用户身份启动 shell。启动 shell 时,您显然可以启动任何其他程序。因此,这更危险;在管理良好的系统上,su访问权限通常被禁用,但sudo可能对不同的程序可用。

使用上述两个程序的原因是为了问责。Sudo 会记录所有发出的请求。因此,管理员可以非常轻松地跟踪用户使用 root 权限执行的操作。如果您授予对 shell 的访问权限,则用户可以为所欲为(这是一个“黑洞”)。(当然,内核级的高级日志记录会阻止这种情况)。

当然,这些程序也可以标记为setuid。这会在执行二进制文件时将权限更改为其所有者。如果您设法激活setuid上的位,例如,将/bin/bash的所有者设置/bin/bashroot,则每次执行 时,您都将是 root /bin/bash

最后,物理访问机器将允许您做任何您想做的事情。您可以从闪存驱动器启动并访问本地文件系统。您甚至可以将引导加载程序配置为使用不同的进程,init该进程会立即以单用户模式启动 shell(无需输入密码)。

答案2

似乎没有人回答过除了 su 之外是否存在 sudo 替代品的问题,因此您可能有兴趣知道 sudo 网站实际上维护着一个 sudo 替代品列表:

http://www.sudo.ws/other.html

该列表包括开源和商业软件。以下是目前列出的开源 sudo 替代方案:

话虽如此,我从未使用过这些替代方案,也从未在任何其他情况下见过或听说过它们。而且似乎至少其中一些是实验性的、已失效的或不受支持的。我得到的印象是,sudosu是镇上唯一真正的游戏。

答案3

以 root 身份登录(如果您的 tty 允许)或重新启动计算机并在命令行上使用 init=/bin/bash 登录以恢复所需的功能。

我指出只有 root 可以删除 sudo。

sudo 和 su 的用途相似但不同。“sudo”允许您使用其他人的权限执行某些操作,而“su”允许您“成为”该用户并让您像他们一样行事。

答案4

如果机器已经openssh-server安装,那么替代方案sudo可能是:

ssh root@localhost ..command.. ..goes.. ..here..

如果它还没有被禁用那么就有su你提到的:

su - root -c "..command.. ..goes.. ..here.."

相关内容