Manpages

名 前

visudo − sudoers フ ァ イ ル を 編 集 す る

書 式

visudo [−chqsV] [−f sudoers] [−x output_file]

説 明

visudovipw(8) に よ く 似 た 安 全 な や り 方 で sudoers フ ァ イ ル を 編 集 す る 。 visudosudoers フ ァ イ ル を ロ ッ ク し て 、 重 複 し た 編 集 が 同 時 に 行 わ れ な い よ う に す る と と も に 、 整 合 性 を ざ っ と 調 べ 、 文 法 エ ラ ー の チ ェ ッ ク を 行 う 。 sudoers フ ァ イ ル が 現 在 編 集 中 だ っ た 場 合 は 、 「 try again later」 と い う メ ッ セ ー ジ を 端 末 に 表 示 す る 。

visudo が 使 用 す る エ デ ィ タ に つ い て は 、 コ ン パ イ ル 時 に 設 定 さ れ た 一 つ 以 上 の エ デ ィ タ か ら な る リ ス ト が プ ロ グ ラ ム に 埋 め 込 ま れ て い る が 、 sudoers フ ァ イ ル の Defaults 行 で editor オ プ シ ョ ン を 使 え ば 、 そ れ を 変 更 す る こ と が で き る 。 こ の リ ス ト は 、 デ フ ォ ル ト で は vi に な っ て い る 。 通 常 visudo は 、 環 境 変 数 VISUAL や EDITOR の 値 が 上 述 の エ デ ィ タ ・ リ ス ト に 含 ま れ る エ デ ィ タ で な い か ぎ り 、 そ う し た 環 境 変 数 を 使 用 し な い 。 と は 言 え 、 visudo が −−with−env−editor オ プ シ ョ ン を 付 け て configure さ れ て い る 場 合 や 、 sudoeres フ ァ イ ル の Defaults 行 で env_editor オ プ シ ョ ン が セ ッ ト さ れ て い る 場 合 は 、 visudo は VISUAL や EDITOR に よ っ て 指 定 さ れ た ど ん な エ デ ィ タ で も 使 用 す る こ と に な る 。 こ れ が セ キ ュ リ テ ィ ホ ー ル に な り か ね な い こ と に 注 意 し て い た だ き た い 。 単 に VISUAL や EDITOR を 設 定 す る だ け で 、 ユ ー ザ が 任 意 の プ ロ グ ラ ム を 実 行 で き る よ う に な っ て し ま う か ら だ 。

visudo は 編 集 が 終 わ る と 、 sudoers フ ァ イ ル の 文 法 解 析 を 行 い 、 文 法 エ ラ ー が あ れ ば 、 変 更 を 保 存 し な い 。 visudo は エ ラ ー を 発 見 す る と 、 エ ラ ー が 起 き た 行 番 号 を 知 ら せ る メ ッ セ ー ジ を 表 示 し 、 "What now?" と い う プ ロ ン プ ト を 出 す 。 こ の と き 、 ’e’ を 押 せ ば 、 sudoers フ ァ イ ル を 再 編 集 で き る 。 ’x’ を 押 せ ば 、 変 更 を 保 存 せ ず に 終 了 し 、 ’Q’ を 押 せ ば 、 変 更 を 保 存 し て 終 了 す る 。 ’Q’ の 選 択 は 、 く れ ぐ れ も 慎 重 に な さ っ て い た だ き た い 。 な ぜ な ら 、 visudo が 文 法 エ ラ ー が あ る と 考 え る の な ら 、 sudo も 同 様 に 考 え る は ず で あ り 、 エ ラ ー が 訂 正 さ れ る ま で 、 も う 誰 に も sudo を 実 行 で き な く な っ て し ま う か ら だ 。 文 法 エ ラ ー が 発 見 さ れ た と き 、 ’e’ を 押 し て sudoers フ ァ イ ル を 編 集 し よ う と す る と 、 カ ー ソ ル が フ ァ イ ル の エ ラ ー が 起 き た 行 に 飛 ぶ (エ デ ィ タ に そ の 機 能 が あ れ ば だ が )。 オ プ シ ョ ン と し て 以 下 の も の が 使 用 で き る 。

−c, −−check

check−only モ ー ド を 有 効 に す る 。 現 在 の sudoers フ ァ イ ル の 文 法 エ ラ ー 、 所 有 者 、 ア ク セ ス 権 を チ ェ ッ ク す る 。 −q オ プ シ ョ ン が 指 定 さ れ て い な い 場 合 は 、 メ ッ セ ー ジ を 標 準 出 力 に 表 示 し て 、 sudoers の 状 態 を 報 告 す る 。 チ ェ ッ ク が 成 功 裡 に 終 わ っ た 場 合 、 visudo は 返 り 値 0 で 終 了 す る 。 エ ラ ー に 出 会 っ た 場 合 の 返 り 値 は 1 で あ る 。

−f sudoers, −−file=sudoers デ フ ォ ル ト 以 外 の sudoers フ ァ イ ル の 位 置 を 指 定 す る 。 こ の オ プ シ ョ ン を 付 け る と 、 visudo は デ フ ォ ル ト の /etc/sudoers で は な く 、 ユ ー ザ が 選 ん だ sudoers フ ァ イ ル を 編 集 (あ る い は 、 チ ェ ッ ク ) す る こ と に な る 。 ロ ッ ク フ ァ イ ル と し て は 、 指 定 さ れ た sudoers フ ァ イ ル の 名 前 の 末 尾 に ".tmp" を 付 け た も の が 使 わ れ る 。 な お 、 check−only モ ー ド の 場 合 だ け は 、 −f の 引 数 に ’−’ を 指 定 す る こ と が で き る 。 こ れ は 、 標 準 入 力 か ら sudoers を 読 み 込 む と い う こ と で あ る 。

−h, −−help 標 準 出 力 に 簡 単 な ヘ ル プ メ ッ セ ー ジ を 表 示 し て 終 了 す る 。

−q, −−quiet

quiet モ ー ド を 有 効 に す る 。 こ の モ ー ド で は 、 文 法 エ ラ ー の 詳 細 は 表 示 さ れ な い 。 こ の オ プ シ ョ ン が 役 に 立 つ の は 、 −c オ プ シ ョ ン と 組 み 合 わ せ た と き だ け で あ る 。

−s, −−strict

sudoers フ ァ イ ル の 厳 密 (strict) チ ェ ッ ク を 有 効 に す る 。 エ イ リ ア ス を 定 義 す る 前 に 使 用 す る と 、 visudo が そ れ を 文 法 エ ラ ー と 見 な す よ う に な る 。 ホ ス ト 名 や ユ ー ザ 名 が ア ル フ ァ ベ ッ ト の 大 文 字 、 数 字 、 ア ン ダ ー ス コ ア (’_’) だ け か ら 構 成 さ れ て い る 場 合 に は 、 そ う し た も の と エ イ リ ア ス と の 区 別 が 付 か な い こ と に 注 意 し て い た だ き た い 。

−V, −−version

visudo の バ ー ジ ョ ン と sudoers の 文 法 バ ー ジ ョ ン を 表 示 し て 終 了 す る 。

−x output_file, −−export=output_file

sudoers を JSON フ ォ ー マ ッ ト に 変 換 (export) し て 、 output_file に 書 き 出 す 。 output_file が ’−’ の 場 合 は 、 変 換 さ れ た sudoers ポ リ シ ー が 標 準 出 力 に 書 き 出 さ れ る こ と に な る 。 デ フ ォ ル ト で は 、 /etc/sudoers (及 び 、 そ れ に イ ン ク ル ー ド さ れ て い る す べ て の フ ァ イ ル ) が 変 換 の 対 象 に な る 。 −f を 使 用 す れ ば 、 そ れ 以 外 の sudoers フ ァ イ ル を 変 換 対 象 と し て 指 定 す る こ と が で き る 。 フ ォ ー マ ッ ト を 変 換 す る の は 、 サ ー ド パ ー テ ィ の ア プ リ ケ ー シ ョ ン に と っ て 、 従 来 の sudoers の フ ォ ー マ ッ ト よ り も 解 析 し や す く す る た め で あ る 。 様 々 な 値 は 明 示 的 な タ イ プ を 持 ち 、 そ う す る こ と で 従 来 の sudoers フ ォ ー マ ッ ト の 持 つ 曖 昧 さ の 多 く を 排 除 し て い る 。 デ バ ッ グ と sudoers プ ラ グ イ ン へ の 引 き 数 に つ い て バ ー ジ ョ ン 1.8.4 以 上 の visudo は 、 柔 軟 な デ バ ッ グ 用 の 枠 組 み を サ ポ ー ト し て お り 、 sudo.conf(5) フ ァ イ ル の Debug 行 で 設 定 す る よ う に な っ て い る 。

sudo 1.8.12 以 降 の visudo は 、 (訳 注 : /etc/sudo.conf で 指 定 さ れ た ) sudoers プ ラ グ イ ン に 対 す る 引 き 数 も 理 解 す る 。 そ う し た 引 き 数 は 、 sudoers フ ァ イ ル の パ ス 名 、 UID、 GID、 フ ァ イ ル の モ ー ド を 、 デ フ ォ ル ト の も の か ら 変 更 し て い る の で あ る 。 そ う し た 引 き 数 が 存 在 す る 場 合 は 、 プ ラ グ イ ン の パ ス の 後 ろ に (す な わ ち 、 sudoers.so の 後 ろ に ) 列 挙 す る こ と に な っ て い る 。 複 数 の 引 き 数 が あ る と き は 、 ホ ワ イ ト ス ペ ー ス で 区 切 っ て 指 定 す れ ば よ い 。 一 例 を 挙 げ る 。

Plugin sudoers_policy sudoers.so sudoers_mode=0400 以 下 の 引 き 数 が 使 用 で き る 。

sudoers_file=pathname

sudoers_file 引 き 数 を 使 用 す る と 、 sudoers フ ァ イ ル の パ ス を デ フ ォ ル ト の も の か ら 変 更 す る こ と が で き る 。

sudoers_uid=uid

sudoers_uid 引 き 数 を 使 用 す る と 、 sudoers フ ァ イ ル の 所 有 者 を デ フ ォ ル ト の も の か ら 変 更 す る こ と が で き る 。 指 定 に は 、 ユ ー ザ ID 番 号 を 使 う べ き で あ る 。

sudoers_gid=gid

sudoers_gid 引 き 数 を 使 用 す る と 、 sudoers フ ァ イ ル の グ ル ー プ を デ フ ォ ル ト の も の か ら 変 更 す る こ と が で き る 。 指 定 に は 、 グ ル ー プ ID 番 号 を 使 用 し な け れ ば な ら な い (グ ル ー プ 名 で は な い )。

sudoers_mode=mode

sudoers_mode 引 き 数 を 使 用 す る と 、 sudoers フ ァ イ ル の フ ァ イ ル ・ モ ー ド を デ フ ォ ル ト の も の か ら 変 更 す る こ と が で き る 。 指 定 に は 、 8 進 数 の 値 を 使 う べ き で あ る 。

sudo.conf(5) の 設 定 に つ い て さ ら に 詳 し い こ と を お 知 り に な り た か っ た ら 、 sudo.conf(5) の マ ニ ュ ア ル を ご 覧 に な っ て い た だ き た い 。

環 境 変 数

以 下 の 環 境 変 数 が 参 照 さ れ る か ど う か は 、 sudoers に お け る editorenv_editor の 値 次 第 で あ る 。

VISUAL

visudo が 起 動 す る エ デ ィ タ

EDITOR

VISUAL が 設 定 さ れ て い な い と き visudo が 使 用 す る エ デ ィ タ

フ ァ イ ル

/etc/sudo.conf

sudo の フ ロ ン ト エ ン ド の 設 定

/etc/sudoers

誰 が 何 を 実 行 で き る か の リ ス ト

/etc/sudoers.tmp

visudo が 使 う ロ ッ ク フ ァ イ ル

エ ラ ー (警 告 ) メ ッ セ ー ジ

sudoers file busy, try again later. 現 在 、 ほ か の 誰 か が sudoers フ ァ イ ル を 編 集 中 で あ る 。
/etc/sudoers.tmp: Permission denied

visudo を root と し て 実 行 し な か っ た 。

Can’t find you in the passwd database あ な た の ユ ー ザ ID は シ ス テ ム の passwd フ ァ イ ル に 存 在 し な い 。
Warning: {User,Runas,Host,Cmnd}_Alias referenced but not defined

User_Alias (あ る い は 、 Runas_Alias, Host_Alias, Cmnd_Alias) を 、 定 義 し な い ま ま 使 用 し よ う と し て い る 。 あ る い は 、 記 載 し た ユ ー ザ 名 か ホ ス ト 名 の 中 に 、 ア ル フ ァ ベ ッ ト の 大 文 字 、 数 字 、 ア ン ダ ー ス コ ア (’_’) の み か ら な る も の が あ る 。 後 者 の 場 合 は 、 こ の warning を 無 視 し て 構 わ な い (sudo は 文 句 を 言 わ な い だ ろ う )。 −s (strict) モ ー ド で は 、 warning で は な く 、 error に な る 。

Warning: unused {User,Runas,Host,Cmnd}_Alias 指 摘 さ れ た User_Alias (あ る い は 、 Runas_Alias, Host_Alias, Cmnd_Alias) は 、 定 義 さ れ て い る が 、 一 度 も 使 用 さ れ て い な い 。 そ う し た 使 用 し な い エ イ リ ア ス は 、 コ メ ン ト ア ウ ト す る な り 、 消 去 す る な り し て も よ い 。
Warning: cycle in {User,Runas,Host,Cmnd}_Alias 指 摘 さ れ た User_Alias (あ る い は 、 Runas_Alias, Host_Alias, Cmnd_Alias) は 、 直 接 自 分 自 身 を 参 照 し て い る か 、 構 成 要 素 の エ イ リ ア ス を 通 し て 自 分 自 身 を 参 照 し て い る 。 sudosudoers フ ァ イ ル を 解 析 す る と き 、 循 環 を 無 視 す る の で 、 デ フ ォ ル ト で は 単 な る 警 告 に な っ て い る 。
visudo: /etc/sudoers: input and output files must be different

−x オ プ シ ョ ン を 使 用 す る 際 に 引 数 と し て 指 定 し た output_file フ ァ イ ル の パ ス 名 が 、 変 換 対 象 で あ る sudoers フ ァ イ ル の パ ス 名 と 同 じ で あ る 。

関 連 項 目

vi(1), sudo.conf(5), sudoers(5), sudo(8), vipw(8)

作 者

多 数 の 人 々 が 長 年 に 渡 っ て sudo の 開 発 に 取 り 組 ん で き た 。 こ の バ ー ジ ョ ン は 、 主 と し て 次 の 者 が 書 い た コ ー ド か ら な っ て い る 。

Todd C. Miller

sudo の 開 発 に 貢 献 し て く だ さ っ た 方 々 の 詳 細 な リ ス ト に つ い て は 、 配 布 物 中 の CONTRIBUTORS フ ァ イ ル を ご 覧 に な っ て い た だ き た い (https://www.sudo.ws/contributors.html)。

警 告

visudo が 使 用 す る エ デ ィ タ で シ ェ ル ・ エ ス ケ ー プ が 可 能 な か ぎ り 、 ユ ー ザ が ル ー ト ・ シ ェ ル を 獲 得 す る の を 防 止 す る 簡 単 な 方 法 は な い 。

バ グ

visudo に バ グ を 発 見 し た と 思 っ た ら 、 https://bugzilla.sudo.ws/ に ア ク セ ス し て 、 バ グ レ ポ ー ト を 提 出 し て い た だ き た い 。

サ ポ ー ト

あ る 程 度 の 無 料 サ ポ ー ト が sudo−users メ ー リ ン グ リ ス ト を 通 し て 利 用 で き る 。 購 読 や ア ー カ イ ブ の 検 索 に は 、 次 の URL を 御 覧 に な る と よ い 。 https://www.sudo.ws/mailman/listinfo/sudo−users

免 責

visudo は 「 現 状 の ま ま 」 提 供 さ れ る 。 明 示 的 な 、 あ る い は 黙 示 的 な い か な る 保 証 も 、 商 品 性 や 特 定 目 的 へ の 適 合 性 に つ い て の 黙 示 的 な 保 証 を 含 め 、 ま た そ れ の み に 止 ま ら ず 、 こ れ を 否 認 す る 。 詳 細 な 全 文 に つ い て は 、 sudo と 一 緒 に 配 布 さ れ て い る LICENSE フ ァ イ ル や 、 次 の Web ペ ー ジ を ご 覧 い た だ き た い 。 https://www.sudo.ws/license.html