visudo

编辑sudoers文件


语法格式

visudo [-c] [-q] [-s] [-V] [-f sudoers]

命令简介

利用visudo命令,能够以安全的方式编辑/etc/sudoers文件。为避免多个用户同时编辑sudoers文件,visudo将会临时锁住sudoers文件。visudo提供基本的逻辑检测,以及语法错误检测。如果其他用户也尝试编辑sudoers文件,将会收到一条信息,表示应在之后再编辑。

在编译visudo时已经预定义了visudo选用的一系列编辑器,但是,通过修改sudoers文件中的Default变量,可以使用自己熟悉的编辑器。预定义的默认编辑器是vi。通常,visudo并不承认VISUAL或EDITOR环境变量,除非其变量值包含前述编辑器列表中定义的编辑器。但是,如果编译visudo时采用了“--with-enveditor”,或sudoers文件中的“Default env_editor”变量已经设置,visudo也可以使用VISUAL或EDITOR变量定义的任何编辑器。注意,这种做法可能存在安全隐患,因为这允许用户执行VISUAL或EDITOR变量定义的任何程序,而不仅仅是编辑器。

在完成编辑之后,visudo将会解析sudoers文件的语法。如果存在语法错误,visudo将拒绝保存对sudoers文件的修改。当发现错误时,visudo将会输出一条含有行号的信息,说明哪一行出现了语法错误,最后输出一个“What now?”提示信息。此时,用户可以输入字符“e”表示重新编辑sudoers文件,输入“x”表示放弃修改,直接退出,或输入“Q”表示在保存文件后退出visudo命令。选择“Q”时应极其小心,这是因为,如果visudo相信文件中存在语法错误,sudo命令也是如此。在修正错误之前,没有人能够再次使用sudo命令。在出现语法错误时输入字符“e”紧接着按下Enter键之后,可以重新编辑sudoers文件,此时光标将会自动出现在发现语法错误的行上。

命令选项

-c  启用检测模式。检测现有sudoers文件的语法,最后在标准输出显示一条信息,详细说明文件的完好状态。如果语法检测成功地完成,visudo退出后返回0。如果遇到语法错误,visudo退出后返回1。

-f sudoers  指定一个备用的sudoers文件。利用这个选项,visudo将会编辑或检测指定的sudoers文件而非默认的/etc/sudoers文件。编辑期间使用的锁文件是指定的sudoers文件名附加一个“.tmp”后缀。

-q  启用安静模式。在安静模式下,不会输出详细的语法错误。仅当与“-c”选项一起使用时,这个选项才有用。

-s  启用sudoers文件的严格检测模式。如果在定义之前用到未定义的别名,visudo将会认为这是一个语法错误。注意,visudo无法区分完全由大写字母、数字和下画线字符组成的别名与主机名或用户名之间的差异。

-V  显示命令的版本信息,然后退出。

应用实例

1. 使用默认的编辑器,编辑/etc/sudoers文件。

# visudo

2. 采用严格的语法检测模式检测sudoers文件。

# visudo -sc

索引:A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z