如何在 Linux 上查看 sudo 命令用法
已发表: 2022-08-24 sudo
命令赋予用户超级用户或 root 权限。 毫无疑问,你给了他们“权力越大,责任越大”的演讲。 这是检查他们是否听过的方法。
sudo 命令
sudo
命令代表“替代用户执行”。 它允许授权人员执行命令,就好像他们是另一个用户一样。 它可以采用命令行参数,其中之一是您希望执行命令的用户的名称。 sudo
最常见的使用方式是省略命令行选项并使用默认操作。 这有效地以 root 用户身份执行命令。
以这种方式使用sudo
需要特殊权限。 只有特权才能使用sudo
。 当您安装现代 Linux 发行版时,系统会提示您设置可以与sudo
一起使用的 root 密码。 这样做的权限授予您在安装期间创建的普通用户。 这是处理对 root 用户功能的访问的首选方式。 旧的方法是创建一个 root 用户并以他们的身份登录以管理您的系统。
这是一个危险的场景。 当您不再需要 root 权限时,很容易忘记或懒得注销并以普通用户身份重新登录。 您在终端窗口中以 root 身份犯下的任何错误都会被执行,无论多么严重。 如果普通用户尝试执行这些操作,则会被 shell 阻止的东西在 root 请求它们时会毫无疑问地运行。 使用 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。
少 /var/log/auth.log
日志文件已打开,您可以滚动浏览文件或使用 less 内置的搜索工具搜索“sudo”。
即使使用less
的搜索功能,也可能需要一些时间才能找到您感兴趣的sudo
条目。
假设我们想看看一个叫mary
的用户使用sudo
做什么。 我们可以使用grep
搜索日志文件中包含“sudo”的行,然后再次通过grep
管道输出并查找其中包含“mary”的行。
请注意 grep 之前和日志文件名之前的sudo
。
sudo grep sudo /var/log/auth.log | grep “玛丽”
这为我们提供了其中包含“sudo”和“mary”的行。
我们可以看到用户mary
在 15:25 获得了sudo
权限,并且在 15:27 她正在编辑器中打开fstab
文件。 从与用户聊天开始,这种活动绝对值得深入探讨。
使用 journalctl
基于systmd
的 Linux 发行版的首选方法是使用journalctl
命令查看系统日志。
如果我们将程序的名称传递给journalctl
,它将在日志文件中搜索包含对该程序的引用的条目。 因为sudo
是位于“/usr/bin/sudo”的二进制文件,我们可以将其传递给journactl
。 -e
(寻呼机结束)选项告诉journalctl
打开默认文件寻呼机。 通常这会less
。 显示屏会自动滚动到底部以显示最近的条目。
sudo journalctl -e /usr/bin/sudo
具有sudo
功能的日志条目在 less 中列出。
使用“RightArrow”键向右滚动以查看每次调用sudo
时使用的命令。 (或拉伸您的终端窗口,使其更宽。)
并且由于输出显示在less
中,您可以搜索命令名称、用户名和时间戳等文本。
相关:如何使用 journalctl 读取 Linux 系统日志
使用 GNOME 日志实用程序
图形桌面环境通常包括查看日志的方法。 我们将看看 GNOME 日志实用程序。 要访问日志实用程序,请按“空格键”左侧的“超级”键。
在搜索字段中输入“日志”。 出现“日志”图标。
单击图标以启动“日志”应用程序。
单击侧栏中的类别将按消息类型过滤日志消息。 要进行更精细的选择,请单击边栏中的“全部”类别,然后单击工具栏上的放大镜图标。 输入一些搜索文本。 我们将搜索“sudo”。
过滤事件列表以仅显示与sudo
命令相关的事件。 每行末尾的小灰色块包含该事件会话中的条目数。 单击一条线将其展开。
我们单击顶行以查看该会话中 24 个条目的详细信息。
稍微滚动一下,我们可以看到我们在使用journalctl
命令时看到的相同事件。 很快就找到了用户mary
对fstab
文件的不明原因的编辑会话。 我们本可以搜索“mary”,但这将包括除了她使用sudo
之外的条目。
不是每个人都需要 root 访问权限
如果有真正合理的要求,将sudo
权限授予其他用户可能是有意义的。 同样,只有检查他们对这些权力的使用或滥用情况才有意义,尤其是在他们被赋予这些权力之后。