如何查看 Linux 上的 sudo 命令用法

sudo
命令赋予用户超级用户或根权限。毫无疑问,您给了他们“能力越大,责任越大”的演讲。这是检查他们是否听过的方法。
须藤命令
sudo
命令代表“替代用户执行”。它允许授权人员执行命令,就好像他们是另一个用户一样。它可以采用命令行参数,其中之一是您希望执行命令的用户的名称。 sudo
最常用的方法是省略命令行选项并使用默认操作。这有效地以 root 用户身份执行命令。
以这种方式使用 sudo
需要特殊许可。只有特权才能使用 sudo
。当您安装现代 Linux 发行版时,系统会提示您设置一个可以与 sudo
一起使用的根密码。这样做的权限授予您在安装期间创建的普通用户。这是处理对 root 用户功能的访问的首选方法。旧的方法是创建一个 root 用户并以他们的身份登录以管理您的系统。
这是一个危险的场景。当您不再需要 root 权限时,很容易忘记(或懒得)注销并以普通用户身份重新登录。以 root 用户身份在终端窗口中犯的任何错误都将被执行,无论多么严重。如果普通用户尝试执行这些操作会被 shell 阻止,那么当 root 用户请求它们时,它们会毫无疑问地运行。使用根帐户而不是常规帐户也存在安全风险。
使用 sudo
集中注意力。你正在进入同样危险的水域,但你是有意识地选择这样做,并希望能非常小心。只有当你需要做一些需要它们的事情时,你才会调用你的超级用户状态。
如果您向其他用户开放 root 访问权限,您想知道他们和您一样关心他们。您不希望他们鲁莽或推测性地运行命令。 Linux 安装的健康和福祉取决于特权用户的行为举止受到尊重和负责任。
以下是监控其根使用情况的几种方法。
auth.log 文件
一些发行版在名为“auth.log”的文件中维护身份验证日志。随着 systemd
的出现和快速普及,不再需要“auth.log”文件。 systemd-journal
守护程序将系统日志整合为当时新的二进制格式,journalctl
为您提供了一种检查或查询日志的方法。
如果您的 Linux 计算机上确实有一个“auth.log”文件,它可能位于“/var/log/”目录中,尽管在某些发行版中文件名和路径是“/var/log/audit/audit” 。日志。”
您可以像这样在 less
中打开文件。请记住调整路径和文件名以适合您的发行版,并做好准备以防您的 Linux 甚至不创建身份验证文件。
此命令适用于 Ubuntu 22.04。
less /var/log/auth.log

日志文件已打开,您可以滚动文件或使用 less 内置的搜索工具搜索“sudo”。

即使使用 less
的搜索工具,也可能需要一些时间才能找到您感兴趣的 sudo
条目。
假设我们想查看名为 mary
的用户使用 sudo
做什么。我们可以使用 grep
在日志文件中搜索包含“sudo”的行,然后再次通过 grep
管道输出并查找其中包含“mary”的行。
请注意 grep 之前的 sudo
和 日志文件名之前。
sudo grep sudo /var/log/auth.log | grep "mary"

这为我们提供了包含“sudo”和“mary”的行。
我们可以看到用户 mary
在 15:25 获得了 sudo
权限,并且在 15:27 她正在编辑器中打开 fstab
文件.从与用户聊天开始,这种活动绝对值得深入研究。
使用 journalctl
基于 sysmd
的 Linux 发行版的首选方法是使用 journalctl
命令查看系统日志。
如果我们将一个程序的名称传递给 journalctl
,它将在日志文件中搜索包含对该程序的引用的条目。因为 sudo
是位于“/usr/bin/sudo”的二进制文件,我们可以将其传递给 journactl
。 -e
(寻呼机结束)选项告诉 journalctl
打开默认的文件寻呼机。通常这将是 less
。显示屏会自动滚动到底部以显示最新的条目。
sudo journalctl -e /usr/bin/sudo

具有 sudo
功能的日志条目在 less 中列出。

使用“右箭头”键向右滚动以查看每次调用 sudo
时使用的命令。 (或拉伸您的终端窗口,使其更宽。)

而且由于输出显示在 less
中,您可以搜索命令名称、用户名和时间戳等文本。
使用 GNOME 日志实用程序
图形桌面环境通常包括一种查看日志的方法。我们将查看 GNOME 日志实用程序。要访问日志实用程序,请按“空格键”左侧的“超级”键。
在搜索字段中键入“日志”。出现“日志”图标。

单击图标启动“日志”应用程序。

单击边栏中的类别将按消息类型过滤日志消息。要进行更精细的选择,请单击边栏中的“全部”类别,然后单击工具栏上的放大镜图标。输入一些搜索文本。我们要搜索“sudo”。

事件列表经过过滤,仅显示与 sudo
命令相关的事件。每行末尾的灰色小块包含该事件会话中的条目数。单击一行以将其展开。

我们单击顶行以查看该会话中 24 个条目的详细信息。

稍微滚动一下,我们可以看到与使用 journalctl
命令时相同的事件。用户 mary
对 fstab
文件的不明编辑会话很快就被发现了。我们本可以搜索“mary”,但这将包括她使用 sudo
以外的条目。
不是每个人都需要 root 权限
如果有真正合理的要求,将 sudo
权限授予其他用户是有意义的。同样,只有检查他们对这些权力的使用或滥用才有意义,尤其是在他们刚刚获得这些权力之后。