visudo

visudoは、sudo用の設定ファイル (sudoers) を編集するコマンドである。

構文

visudo [options] [[-f] sudoers]

オプション

visudo コマンドには、以下に示すオプションを指定することができる。

-c
チェックオンリーモードを有効にする。チェックオンリーモードでは、sudoers ファイルに構文エラーがないかチェックされる。-q オプションが指定されていない限り、sudoers の状態を記述したメッセージが標準出力に出力される。チェックが正常に完了すると visudo は値 0 で終了し、エラーが発生すると visudo は値 1 で終了する。 (POSIX style)
--check
チェックオンリーモードを有効にする。チェックオンリーモードでは、sudoers ファイルに構文エラーがないかチェックされる。-q オプションが指定されていない限り、sudoers の状態を記述したメッセージが標準出力に出力される。チェックが正常に完了すると visudo は値 0 で終了し、エラーが発生すると visudo は値 1 で終了する。 (GNU style)
-f sudoers
デフォルトの sudoers ファイル (/etc/sudoers) の代わりに、指定したファイルをチェック又は編集する。 (POSIX style)
--file=sudoers
デフォルトの sudoers ファイル (/etc/sudoers) の代わりに、指定したファイルをチェック又は編集する。 (GNU style)
-h
短いヘルプメッセージを標準出力に表示して、コマンドを終了する。 (POSIX style)
--help
短いヘルプメッセージを標準出力に表示して、コマンドを終了する。 (GNU style)
-q
構文エラーに関する詳細を表示しない。このオプションは -c オプションと組み合わせた場合のみ有効である。 (POSIX style)
--quiet
構文エラーに関する詳細を表示しない。このオプションは -c オプションと組み合わせた場合のみ有効である。 (GNU style)
-s
sudoersファイルを厳密にチェックする。 (POSIX style)
--strict
sudoersファイルを厳密にチェックする。 (GNU style)
-V
visudo と sudoers の文法バージョンを表示して、コマンドを終了する。 (POSIX style)
--version
visudo と sudoers の文法バージョンを表示して、コマンドを終了する。 (GNU style)

コマンド

visudo エディタでは、以下に示すコマンドを使用できる。

^G
Get Help
^O
Write OUt
^W
Where Is
^K
Cut Text
^J
Justify
^C
Current Position
M-U
Undo
M-A
Mark Text
^X
Exit
^R
Read File
^\
Replace
^U
Paste Text
^T
To Spell
^_
Go To Line
M-E
Redo
M-6
Copy Text

sudoersファイル

sudoの設定ファイルはsudoersファイルと呼ばれ、デフォルトのパスは /etc/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_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    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

sudo用の設定ファイルの書式を示す。

user machine=(privilege) command
user
sudo権限を与えるユーザ名
machine
ホスト名
privilege
誰の権限でコマンドを実行するかを指定する。
command
はsudoで使えるコマンドを絶対パスで指定する。コマンドを複数指定する場合は、カンマ(,)で区切る。
root        ALL=(ALL)    ALL
horiuchi    ALL=(ALL)    ALL

関連記事

sudo
引数に指定したコマンドをスーパーユーザまたは他のユーザとして実行する。