首页 > 编程知识 正文

Linux visudo 命令,linux查看进程命令

时间:2023-05-05 10:28:59 阅读:236090 作者:3072

在类 Unix操作系统上,visudo命令编辑sudo命令使用的sudoers文件。要更改允许哪些用户和组运行sudo,请运行visudo

如果运行sudo的用户不符合sudoers 中的身份验证配置,他们将被拒绝以升级的权限运行命令。

您不应通过在文本编辑器中打开来直接编辑sudoers。相反,使用visudo对其进行编辑,这将在将更改保存到磁盘之前验证其有效性。

描述

visudo编辑sudoers文件,该文件定义了具有管理员权限的用户和组。

Visudo 以安全的方式编辑 sudoers 文件,类似于vipw安全地编辑passwd文件的方式。Visudo 针对多个同时编辑锁定 sudoers 文件,提供基本的完整性检查,并检查解析错误。如果 sudoers 文件当前正在由其他人编辑,或者由您在另一个会话中编辑,您将收到一条消息,稍后再试。

有一个visudo使用的一个或多个编辑器的硬编码列表,在编译时设置。默认值为vi。

笔记

默认情况下, visudo 不支持VISUALEDITOR 环境变量,许多程序使用它们来确定默认文本编辑器。但是,如果使用--with-env-editor选项配置 visudo或在 sudoers 文件中设置了env_editor 默认变量,则visudo使用VISUALEDITOR定义的任何编辑。但是,这样做会使您的系统容易受到安全漏洞的攻击,因为它允许用户通过设置VISUALEDITOR来执行他们想要的任何程序。

Visudo 会在编辑后解析 sudoers 文件,如果出现语法错误,将不会保存更改。发现错误后,visudo 会打印一条消息,说明发生错误的行号,用户将收到“现在怎么办?” 提示。在提示符下,输入e重新编辑 sudoers 文件,输入x退出而不保存更改,或输入Q退出并保存更改。“Q”选项应该非常小心地使用,因为如果 visudo 发现解析错误,那么sudo也会如此,并且没有人可以运行sudo再次,直到错误被修复。如果在检测到解析错误后键入“e”来编辑 sudoers 文件,则光标将放置在发生错误的行上,如果编辑器支持此功能。

句法 visudo [-c] [-h] [-q] [-s] [-V] [-f sudoers] 选项 -C启用仅检查模式。将检查现有的sudoers文件是否存在语法错误、owner和mode。除非指定了-q选项,否则将在标准输出中打印一条消息,描述sudoers的状态。如果检查成功完成,visudo将退出,值为0。如果遇到错误,visudo将退出,值为1-f sudoers指定备用sudoers文件位置。使用此选项,visudo将编辑(或检查)您选择的sudoers文件,而不是默认的/etc/sudoers。使用的锁定文件是指定的sudoers文件,其中附加了“.tmp”。仅在仅检查模式下,-f的参数可能是-,表示将从标准输入读取sudoers-H-h(帮助)选项导致visudo命令打印一个简短的帮助信息到标准输出并退出。-q启用安静模式。在此模式下,不会打印有关语法错误的详细信息。此选项仅在与-c选项结合使用时才有用。-s启用对sudoers文件的严格检查。如果在定义之前使用别名,visudo会认为这是一个解析错误。请注意,无法区分别名和仅由大写字母、数字和下划线 (' _ ') 字符组成的主机名或用户名。-V-V(版本)选项导致visudo命令打印其版本号并退出。sudoers 文件

典型的 sudoers 文件如下所示:

## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults env_resetDefaults mail_badpassDefaults secure_path="/usr/local/s轻松的奇异果:/usr/local/轻松的奇异果:/usr/s轻松的奇异果:/usr/轻松的奇异果:/s轻松的奇异果:/轻松的奇异果:/snap/轻松的奇异果"# Host alias specification# User alias specification# Cmnd alias specification# User privilege specificationroot ALL=(ALL:ALL) ALL# Members of the admin group may gain root privileges%admin ALL=(ALL) ALL# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL# See sudoers(5) for more information on "#include" directives:#includedir /etc/sudoers.d

此处,“ root ALL=(ALL:ALL) ALL ”表示登录到任何主机名的用户root可以以任何用户或组的身份运行任何命令。该指令的一般形式是:

user hostname=(runas-user:runas-group) command

特殊词ALL可用于这些值中的任何一个,表示允许任何值。

如果user以%开头,则将其解释为组的名称,并且该指令适用于该组中的所有用户。因此,“ %admin ALL=(ALL) ALL ”这一行允许属于admin组的任何用户以任何用户或组的身份运行任何命令。三行之后,为组sudo 的成员定义了相同的权限。

所以,通过这个配置,如果你想让一个用户拥有sudo权限,你可以将他们添加到adminsudo组中,完全不需要编辑sudoers。在这种情况下,命令:

usermod -aG sudo hope

将授予用户希望下次登录时的sudo 权限。有关如何使用usermod更改用户组成员身份的更多信息,请参阅usermod命令。

如果您不想拥有专用的sudo组,则可以通过在文件中的任意位置添加一行,直接在 sudoers 中为用户定义 sudo 权限。例如,为了让用户hope获得完整的 sudo 访问权限,请添加:

hope ALL=(ALL:ALL) ALL

然后保存文件并退出 visudo 启动的文本编辑器。

重要文件 /etc/sudoerssudo命令的权限配置。/etc/sudoers.tmp锁定文件,可防止对sudoers 进行多次同时编辑。例子

要编辑sudoers文件,请以 root 身份运行visudo。使用su 将用户切换到 root (需要root密码,与您的用户密码不同):

su Password:

然后运行visudo

visudo

或者,如果您已经拥有 sudo 权限,请使用sudo运行visudo

sudo visudo [sudo] password for user: Sudoer 指令

以下是运行visudo时添加到sudoers的行示例:

hope ALL=(ALL:ALL) ALL

用户hope可以以任何用户或组的身份运行所有命令,登录到此配置适用的任何主机。

%hope ALL=(ALL:ALL) ALL

同上,除了权限适用于hope组的任何成员(可能包括也可能不包括用户hope)。

hope myhost=(mysqluser:mysqlusers) mysqldump

用户hope,当登录到主机myhost 时,可以以用户mysqluser或组mysqlusers的成员身份运行命令mysqldump。例如,此指令将允许用户hope运行此命令:

sudo -u mysqluser -g mysqlusers mysqldump 相关命令

su — 成为超级用户或其他用户。
sudo — 以超级用户身份执行命令。
vi — 基于ex视觉模式的文本编辑器。
vipw — 安全地编辑密码文件。

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。