名 前
sudoers − sudo の デ フ ォ ル ト の セ キ ュ リ テ ィ ポ リ シ ー ・ プ ラ グ イ ン
説 明
sudoers ポ リ シ ー ・ プ ラ グ イ ン は 、 ユ ー ザ に ど ん な sudo 権 限 が あ る か を 決 定 す る 。 こ の プ ラ グ イ ン が sudo の デ フ ォ ル ト の ポ リ シ ー ・ プ ラ グ イ ン で あ る 。 ポ リ シ ー の 運 用 は /etc/sudoers フ ァ イ ル に よ っ て 行 わ れ る が 、 LDAP を 使 用 す る こ と も 可 能 で あ る 。 ポ リ シ ー を 設 定 す る と き の 書 式 は 、 「 SUDOERS フ ァ イ ル の 書 式 」 セ ク シ ョ ン で 詳 し く 説 明 し て い る 。 sudoers ポ リ シ ー の 情 報 を LDAP に 格 納 す る こ と に つ い て は 、 sudoers.ldap(5) を ご 覧 い た だ き た い 。
sudoers
ポ リ シ ー ・ プ
ラ グ イ ン を 使
う た め の sudo.conf の
設 定
sudo は sudo.conf(5) フ ァ イ
ル を 参 照 し て
、 ど の ポ リ シ
ー ・ プ ラ グ イ
ン と 入 出 力 ロ
ギ ン グ ・ プ ラ
グ イ ン を ロ ー
ド す る か を 決
め る 。 sudo.conf(5) フ ァ
イ ル が 存 在 し
な い 場 合 や 、
存 在 し て も Plugin 行
を 含 ま な い 場
合 は 、 sudoers プ ラ
グ イ ン が ポ リ
シ ー の 決 定 や
入 出 力 ロ ギ ン
グ に 使 用 さ れ
る こ と に な る
。 sudoers プ ラ グ イ
ン を 使 用 す る
よ う に 明 示 的
に 設 定 す る に
は 、 sudo.conf(5) に 次 の
よ う 書 き 込 め
ば よ い 。
Plugin
sudoers_policy sudoers.so
Plugin sudoers_io sudoers.so
sudo 1.8.5 以 来 、 sudoers プ ラ グ イ ン に 対 す る 任 意 の 引 き 数 を sudo.conf(5) で 指 定 す る こ と が 可 能 に な っ て い る 。 そ う し た 引 き 数 が 存 在 す る 場 合 は 、 プ ラ グ イ ン の パ ス の 後 ろ に 続 け る こ と に な る (す な わ ち 、 sudoers.so の 後 ろ だ )。 引 き 数 が い く つ も あ る と き は 、 ホ ワ イ ト ス ペ ー ス で 区 切 っ て 指 定 す れ ば よ い 。 一 例 を 挙 げ る 。
Plugin sudoers_policy sudoers.so sudoers_mode=0400 以 下 の プ ラ グ イ ン に 対 す る 引 き 数 が 使 用 で き る 。
ldap_conf=pathname
ldap_conf 引 き 数 を 使 用 す る と 、 ldap_conf フ ァ イ ル の パ ス を デ フ ォ ル ト の も の か ら 変 更 す る こ と が で き る 。
ldap_secret=pathname
ldap_secret 引 き 数 を 使 用 す る と 、 ldap_secret フ ァ イ ル の パ ス を デ フ ォ ル ト の も の か ら 変 更 す る こ と が で き る 。
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 セ キ ュ リ テ
ィ ポ リ シ ー で
は 、 ユ ー ザ は
た い て い の 場
合 、 本 人 で あ
る こ と を 証 明
し て か ら で な
け れ ば 。 sudo を
使 用 で き な い
。 た だ し 、 sudo
の 実 行 者 が root だ
っ た り 、 変 身
対 象 ユ ー ザ が
sudo の 実 行 者 と
同 一 で あ っ た
り 、 ポ リ シ ー
が そ の 実 行 者
や コ マ ン ド に
対 し て 認 証 を
免 除 し て い る
場 合 は 、 パ ス
ワ ー ド が 要 求
さ れ る こ と は
な い 。 su(1) と は 違
っ て 、 sudoers ポ リ
シ ー が 認 証 に
当 た っ て チ ェ
ッ ク す る の は
、 sudo を 実 行 す
る ユ ー ザ の 認
証 情 報 (訳 注 : 通
常 は パ ス ワ ー
ド ) で あ っ て 、
変 身 対 象 ユ ー
ザ の (あ る い は
、 root の ) 認 証 情 報
で は な い 。 こ
の 動 作 は 、 後
述 す る rootpw, targetpw,
runaspw フ ラ グ に よ
っ て 変 更 す る
こ と が で き る
。 ポ リ シ ー に
登 録 さ れ て い
な い ユ ー ザ が
sudo を 使 っ て 、
コ マ ン ド を 実
行 し よ う と す
る と 、 し か る
べ き 権 威 者 に
メ ー ル が 送 付
さ れ る 。 そ う
し た メ ー ル の
宛 先 は 、 後 述
す る 「 デ フ ォ
ル ト 設 定 」 の
mailto 行 に よ っ て
設 定 で き る が
、 デ フ ォ ル ト
で は root に な っ て
い る 。
sudo を 使 用 す る 権 限 の な い ユ ー ザ が 、 −l や −v オ プ シ ョ ン を 付 け て sudo の 実 行 を 試 み て も 、 認 証 に 失 敗 し 、 し か も mail_always ま た は mail_badpass フ ラ グ が 有 効 に な っ て い る 場 合 を 除 い て 、 メ ー ル は 送 付 さ れ な い こ と に 注 意 し て い た だ き た い 。 そ う し た 動 作 に な っ て い る こ と で 、 ユ ー ザ と し て は 、 自 分 が sudo を 使 用 で き る か ど う か 、 自 分 で 判 断 で き る わ け で あ る 。 sudo 実 行 の 試 み は (成 功 、 失 敗 に か か わ ら ず )、 す べ て ロ グ に 記 録 さ れ る 。 メ ー ル が 送 ら れ る か ど う か に は 関 係 が な い 。
sudo が root に よ っ て 実 行 さ れ た と き 、 環 境 変 数 SUDO_USER が 設 定 さ れ て い る と 、 sudoers ポ リ シ ー は 、 実 際 の ユ ー ザ が 誰 か を 判 断 す る の に 、 そ の 値 を 使 用 す る こ と に な る 。 ユ ー ザ と し て は 、 こ の 動 作 を 利 用 す る こ と で 、 す で に ル ー ト シ ェ ル を 起 動 し て い る 場 合 で も 、 自 分 が sudo を 介 し て 実 行 し た コ マ ン ド の ロ グ を 取 る こ と が で き る 。 ま た 、 こ の 動 作 の お か げ で 、 sudo で 実 行 す る ス ク リ プ ト や プ ロ グ ラ ム か ら 呼 び 出 さ れ る 場 合 で さ え 、 −e オ プ シ ョ ン が 役 に 立 つ も の に な っ て い る 。 た だ し 、 そ う し た 場 合 で も 、 sudoers フ ァ イ ル の 参 照 は や は り root に 対 し て な さ れ る の で あ っ て 、 SUDO_USER が 指 定 し て い る ユ ー ザ に 対 し て で は な い こ と に 注 意 し て い た だ き た い 。
sudoers
は 、 認 証 情 報
の 一 時 保 存 (credential
caching) に ユ ー ザ ご
と の タ イ ム ス
タ ン プ ・ フ ァ
イ ル を 使 用 す
る 。 ユ ー ザ の
認 証 が 済 む と
、 記 録 が 書 き
込 ま れ る が 、
そ れ に は 、 認
証 に 使 用 さ れ
た uid、 端 末 セ ッ
シ ョ ン ID、 タ イ
ム ス タ ン プ (利
用 で き る な ら
ば 、 単 調 増 加
時 計 (monotonic clock) を 使
用 す る ) が 含 ま
れ て い る 。 ユ
ー ザ は 、 そ の
後 し ば ら く の
間 (timestamp_timeout オ プ
シ ョ ン に よ っ
て 変 更 さ れ て
い な け れ ば 、 5
分 間 )、 パ ス ワ
ー ド な し で sudo
を 使 う こ と が
で き る 。 sudoers は
デ フ ォ ル ト で
は 、 各 tty ご と に
別 の 記 録 を 使
用 す る 。 そ こ
で 、 認 証 は 、
ユ ー ザ の ロ グ
イ ン ・ セ ッ シ
ョ ン ご と に 独
立 し て 行 わ れ
る こ と に な る
。 tty_tickets オ プ シ
ョ ン を 無 効 に
す れ ば 、 あ る
ユ ー ザ の す べ
て の セ ッ シ ョ
ン に 対 し て 、
単 一 の タ イ ム
ス タ ン プ の 使
用 を 強 制 す る
こ と が で き る
。 ロ ギ ン グ
sudoers は sudo の 実 行
が 成 功 し た と
き も 失 敗 し た
と き も 、 そ の
旨 を (エ ラ ー の
内 容 と と も に )
syslog(3) や 独 自 の フ
ァ イ ル 、 あ る
い は そ の 両 方
に 記 録 す る こ
と が で き る 。
sudoers は デ フ ォ ル
ト で は 、 syslog(3) 経
由 で ロ グ を 記
録 す る こ と に
な っ て い る が
、 こ の 動 作 は
デ フ ォ ル ト 設
定 の syslog と logfile
を 使 っ て 変 更
す る こ と が で
き る 。 ロ グ フ
ァ イ ル の 書 式
に つ い て は 、
「 ロ グ の 書 式
」 セ ク シ ョ ン
の 説 明 を ご 覧
い た だ き た い
。 ま た sudoers は 、
擬 似 tty で コ マ ン
ド を 実 行 し て
、 す べ て の 入
力 や 出 力 を ロ
グ に 記 録 す る
こ と も で き る
。 標 準 入 力 、
標 準 出 力 、 標
準 エ ラ ー が 端
末 と 結 び つ い
て い な い 場 合
で さ え 、 そ れ
を ロ グ に 記 録
す る こ と が で
き る の だ 。 入
出 力 ロ ギ ン グ
は 、 デ フ ォ ル
ト で は ON に な っ
て い な い が 、
log_input や log_output オ
プ シ ョ ン を 使
っ て 有 効 に す
る こ と が で き
る 。 コ マ ン ド
・ タ グ の LOG_INPUT や
LOG_OUTPUT を 使 用 し て
有 効 に す る こ
と も 可 能 だ 。
入 出 力 ロ グ フ
ァ イ ル が ど ん
な ふ う に 格 納
さ れ る か に つ
い て は 、 「 入
出 力 ロ グ フ ァ
イ ル 」 セ ク シ
ョ ン に 詳 細 な
説 明 が あ る 。
コ マ ン ド 環 境
環 境 変 数 は プ
ロ グ ラ ム の 動
作 に 影 響 を 与
え る こ と が あ
る の で 、 sudoers は
、 実 行 さ れ る
コ マ ン ド が ユ
ー ザ の 環 境 か
ら ど ん な 変 数
を 引 き 継 ぐ か
に つ い て 、 制
御 す る 手 段 を
用 意 し て い る
。 す な わ ち 、
sudoers は 二 つ の 異
な っ た 方 法 で
、 環 境 変 数 を
処 理 す る こ と
が で き る 。 デ
フ ォ ル ト で は
env_reset オ プ シ ョ
ン が 有 効 に な
っ て い る 。 こ
の 場 合 、 コ マ
ン ド は 新 し い
、 最 小 の 環 境
で 実 行 さ れ る
こ と に な る 。 ATX
(及 び PAM を 使 用 し
て い な い Linux シ ス
テ ム ) で は 、
/etc/environment フ ァ イ ル
の 内 容 で 環 境
が 初 期 化 さ れ
る 。 新 し い 環
境 に は 、 TERM, PATH, HOME, MAIL,
SHELL, LOGNAME, USER, USERNAME, 及 び SUDO_*
と い う 変 数 、
そ れ に 、 呼 び
出 し 側 の プ ロ
セ ス か ら 来 た
変 数 で 、 env_check
や env_keep オ プ シ ョ
ン に よ っ て 許
可 さ れ た も の
が 含 ま れ て い
る 。 こ れ は 、
言 わ ば 、 環 境
変 数 の ホ ワ イ
ト リ ス ト で あ
る 。 値 が () で 始
ま る 環 境 変 数
は 、 変 数 名 と
値 の 両 方 が env_keep
や env_check の 指 定
に マ ッ チ し な
い か ぎ り 、 除
去 さ れ る が 、
そ れ は 、 bash シ
ェ ル の 古 い バ
ー ジ ョ ン で は
関 数 と 解 釈 さ
れ る こ と に な
る か ら で あ る
。 1.8.11 よ り 前 の バ
ー ジ ョ ン で は
、 そ う し た 変
数 は 無 条 件 で
除 去 さ れ て い
た 。 こ れ に 対
し て 、 env_reset オ
プ シ ョ ン が 無
効 に な っ て い
る 場 合 は 、
env_check や env_delete オ
プ シ ョ ン に よ
っ て 明 示 的 に
拒 否 さ れ て い
な い か ぎ り 、
い か な る 環 境
変 数 も 呼 び 出
し 側 の プ ロ セ
ス か ら 継 承 さ
れ る 。 こ の 場
合 、 env_check や
env_delete は 、 ブ ラ
ッ ク リ ス ト の
よ う に 振 る 舞
う わ け だ 。 値
が () で 始 ま る 環
境 変 数 は 、 ブ
ラ ッ ク リ ス ト
の 一 つ に マ ッ
チ し な い 場 合
で も 、 必 ず 除
去 さ れ る 。 危
険 性 の あ る 環
境 変 数 の す べ
て を ブ ラ ッ ク
リ ス ト に 載 せ
る こ と は 不 可
能 な の で 、
env_reset を 有 効 に
し て お く デ フ
ォ ル ト の 動 作
を 採 用 す る こ
と を お 勧 め す
る 。 デ フ ォ ル
ト で は 、 環 境
変 数 の マ ッ チ
は 変 数 名 に よ
っ て 行 わ れ る
。 し か し な が
ら 、 マ ッ チ に
使 わ れ る パ タ
ー ン に 等 号
(’=’) が 含 ま れ
る 場 合 は 、 変
数 名 と 値 の 両
方 が マ ッ チ し
な け れ ば な ら
な い 。 た と え
ば 、 旧 式 の (shellshock
問 題 以 前 の export 方
法 に よ る ) bash の
シ ェ ル 関 数 に
マ ッ チ さ せ る
な ら ば 、 次 の
よ う に 指 定 す
れ ば よ い だ ろ
う 。
env_keep += "my_func=()*" 旧 式 の bash の シ ェ ル 関 数 は 、 デ フ ォ ル ト で は 保 存 さ れ な い の で 、 "=()*" と い う 後 続 部 分 が な か っ た ら 、 こ う し た 環 境 変 数 は マ ッ チ し な い こ と に な る 。
[訳 注 ]:
shellshock 以 前 の bash で は 、 た と え ば "my_func=’() { ls −F; }’" と い っ た シ ェ ル 変 数 を export す る こ と で 、 my_func と い う 関 数 を サ ブ シ ェ ル に 渡 す こ と が で き た 。 shellshock 以 後 の bash で は 、 こ の 方 法 に よ る 関 数 の 継 承 は で き な く な り 、 値 が "() { ls −F; }" で あ る my_func と い う 変 数 が 、 渡 さ れ る だ け に な っ て い る 。 だ か ら 、 sudoers フ ァ イ ル の Defaults 行 に 上 の よ う に 書 い て も 、 shellshock 以 後 の bash を 使 っ て い る か ぎ り 、 my_func と い う 環 境 変 数 が 保 存 さ れ る だ け で 、 関 数 が 渡 さ れ る わ け で は な い 。
sudo が 許 可 、 ま た は 拒 否 す る 環 境 変 数 す べ て の リ ス ト は 、 "sudo −V" を root の 資 格 で 実 行 し た と き の 出 力 中 に 含 ま れ て い る 。 こ の リ ス ト は 、 sudo が 実 行 さ れ る オ ペ レ ー テ ィ ン グ シ ス テ ム に よ っ て 異 な る こ と に 気 を つ け て い た だ き た い 。
PAM を サ ポ ー ト し て い る シ ス テ ム で 、 pam_env モ ジ ュ ー ル が sudo に 対 し て 有 効 に な っ て い る と 、 PAM の 管 理 す る 環 境 に あ る 変 数 が 、 環 境 に マ ー ジ さ れ る こ と に な る だ ろ う 。 た だ し 、 PAM 環 境 に あ る 変 数 が ユ ー ザ の 環 境 に す で に 存 在 し て い る 場 合 に 、 そ の 値 が 上 書 き さ れ る こ と に な る の は 、 そ の 変 数 が sudoers に よ っ て 保 存 さ れ て い な い と き だ け で あ る 。 す な わ ち 、 env_reset が 有 効 に な っ て い る と き は 、 env_keep の リ ス ト に よ っ て sudo を 実 行 す る ユ ー ザ の 環 境 か ら 保 存 さ れ た 変 数 が 、 PAM 環 境 に あ る 変 数 よ り 優 先 さ れ る 。 ま た 、 env_reset が 無 効 に な っ て い る と き は 、 sudo を 実 行 す る ユ ー ザ の 環 境 に あ る 変 数 が 、 env_delete の リ ス ト の パ タ ー ン に マ ッ チ し て い な い か ぎ り 、 PAM 環 境 に あ る 変 数 よ り も 優 先 さ れ る の で あ る 。 た い て い の オ ペ レ ー テ ィ ン グ シ ス テ ム の ダ イ ナ ミ ッ ク ・ リ ン カ は 、 ダ イ ナ ミ ッ ク ・ リ ン キ ン グ を 制 御 す る 働 き が あ る 環 境 変 数 を 、 sudo も そ の 一 つ で あ る setuid 実 行 フ ァ イ ル の 環 境 か ら 除 去 す る よ う に な っ て い る こ と に 注 意 し て い た だ き た い 。 オ ペ レ ー テ ィ ン グ シ ス テ ム に よ っ て 名 前 は 様 々 だ が 、 _RLD*, DYLD_*, LD_*, LDR_*, LIBPATH, SHLIB_PATH な ど が 、 こ の 範 疇 に 含 ま れ る だ ろ う 。 そ う し た 変 数 は 、 sudo の 実 行 が 始 ま る よ り も 前 に 、 環 境 か ら 除 去 さ れ る の で 、 sudo が そ う し た 変 数 を 保 存 す る こ と は 不 可 能 で あ る 。 特 例 と し て 、 sudo に −i (initial login) オ プ シ ョ ン が 指 定 さ れ て い る 場 合 は 、 sudoers は env_reset の 有 効 ・ 無 効 に か か わ ら ず 、 環 境 を 初 期 化 す る 。 環 境 変 数 DISPLAY, PATH, TERM は 変 更 さ れ な い が 、 HOME, MAIL, SHELL, USER, LOGNAME は 、 変 身 対 象 ユ ー ザ の そ れ に セ ッ ト さ れ る 。 ATX (及 び PAM を 使 用 し て い な い Linux シ ス テ ム ) で は 、 /etc/environment の 内 容 も 取 り 込 ま れ る 。 そ れ 以 外 の 環 境 変 数 は す べ て 捨 て ら れ る 。 最 後 に 、 env_file オ プ シ ョ ン が 設 定 さ れ て い る 場 合 は 、 そ の フ ァ イ ル に 記 載 さ れ た い か な る 変 数 も 、 す で に 存 在 し て い る 環 境 変 数 と 衝 突 し な い か ぎ り 、 そ こ で 指 定 さ れ て い る 値 に セ ッ ト さ れ る こ と に な る 。
SUDOERS フ ァ イ ル の 書 式
sudoers フ ァ イ ル は 二 種 類 の エ ン ト リ か ら 構 成 さ れ て い る 。 (要 す る に 変 数 で あ る ) エ イ リ ア ス と (誰 が 何 を 実 行 で き る か を 指 定 し て い る ) ユ ー ザ 設 定 だ 。 (訳 注 : 訳 者 と し て は 、 「 エ イ リ ア ス 、 デ フ ォ ル ト 設 定 、 ユ ー ザ 設 定 の 三 種 類 の エ ン ト リ か ら 構 成 さ れ て い る 」 と 言 っ た 方 が 、 現 在 の 実 態 に 合 っ て い る の で は な い か と 思 う 。 ) 一 人 の ユ ー ザ に 複 数 の エ ン ト リ が マ ッ チ す る と き は 、 順 番 に 適 用 さ れ る 。 複 数 の 指 定 が マ ッ チ し て い る 箇 所 に つ い て は 、 最 後 に マ ッ チ し た も の が 使 用 さ れ る (そ れ が 一 番 明 示 的 な マ ッ チ だ と は か ぎ ら な い が )。 以 下 で は sudoers フ ァ イ ル の 文 法 を 拡 張 Backus−Naur 記 法 (EBNF) を 用 い て 記 述 す る 。 EBNF を 御 存 じ な い か ら と い っ て 、 あ き ら め な い で い た だ き た い 。 わ り と 簡 単 な も の だ し 、 以 下 に 出 て く る 定 義 に は 詳 し い 説 明 を つ け て お き ま す か ら 。
EBNF
の 基 礎 の 基 礎
EBNF は 言 語 の 文 法
を 記 述 す る 簡
潔 で 厳 密 な 方
法 で あ る 。 EBNF の
個 々 の 定 義 は
生 成 規 則 か ら
で き て い る 。
た と え ば 、 シ
ン ボ ル ::= 定 義 | 別
の 定 義 1 | 別 の 定
義 2 ... 個 々 の 生 成
規 則 は 、 ほ か
の 生 成 規 則 を
参 照 し 、 そ の
よ う に し て 言
語 の 文 法 を 作
り 上 げ て い る
。 ま た EBNF に は 以
下 の 演 算 子 が
含 ま れ る が 、
正 規 表 現 で 御
存 じ の 読 者 も
多 い だ ろ う 。
だ が 、 い わ ゆ
る 「 ワ イ ル ド
カ ー ド 」 文 字
と 混 同 し な い
で い た だ き た
い 。 あ れ は 別
の 意 味 を 持 っ
て い る 。
? 直 前 の シ ン ボ ル
(ま た は 、 シ ン ボ ル の グ ル ー プ ) が 、 あ っ て も な く て も
よ い こ と を 意 味 す る 。 す な わ ち そ の シ ン ボ ル は 、 1 回 現 れ て も よ い し 、 1 回 も 現 れ な い で も よ い 。
* 直 前 の シ ン ボ ル
(ま た は 、 シ ン ボ ル の グ ル ー プ ) が 0 回 以 上 現 れ る 。
+ 直 前 の シ ン ボ ル
(ま た は 、 シ ン ボ ル の グ ル ー プ ) が 1 回 以 上 現 れ る 。
丸 カ ッ コ を 使 う と 、 複 数 の シ ン ボ ル を グ ル ー プ に ま と め る こ と が で き る 。 な お 、 混 乱 を 避 け る た め 、 以 下 の 定 義 で は 、 そ れ が (シ ン ボ ル 名 で は な く ) 文 字 ど お り の 文 字 列 や 記 号 で あ る こ と を 示 す 場 合 に は 、 シ ン グ ル ク ォ ー ト (’ ’) で 囲 む こ と に す る 。 エ イ リ ア ス エ イ リ ア ス に は 四 種 類 あ る 。 User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias で あ る 。
Alias ::=
’User_Alias’ User_Alias (’:’
User_Alias)* |
’Runas_Alias’ Runas_Alias (’:’
Runas_Alias)* |
’Host_Alias’ Host_Alias (’:’
Host_Alias)* |
’Cmnd_Alias’ Cmnd_Alias (’:’
Cmnd_Alias)*
User_Alias ::= NAME ’=’ User_List
Runas_Alias ::= NAME ’=’ Runas_List
Host_Alias ::= NAME ’=’ Host_List
Cmnd_Alias ::= NAME ’=’ Cmnd_List
NAME ::= [A−Z]([A−Z][0−9]_)* 個 々 の エ イ リ ア ス の 定 義 は 、 次 の 形 を と る 。
Alias_Type NAME = item1, item2, ... 上 記 に お い て Alias_Type は 、 User_Alias, Runas_Alias, Host_Alias, Cmnd_Alias の う ち の 一 つ で あ る 。 NAME は 、 ア ル フ ァ ベ ッ ト の 大 文 字 、 数 字 、 ア ン ダ ー ス コ ア (’_’) か ら な る 文 字 列 で あ る が 、 先 頭 の 文 字 は ア ル フ ァ ベ ッ ト の 大 文 字 で な け れ ば な ら な い 。 同 じ タ イ プ の エ イ リ ア ス 定 義 を 、 コ ロ ン で (’:’) つ な い で 、 一 行 に 複 数 書 く こ と も で き る 。 た と え ば 、
Alias_Type NAME = item1, item2, item3 : NAME = item4, item5 既 存 の エ イ リ ア ス を 再 定 義 す る の は 、 文 法 エ ラ ー で あ る 。 異 な る タ イ プ の エ イ リ ア ス に 対 し て 同 じ 名 前 を 使 用 す る こ と は で き る が 、 お 薦 め で き る こ と で は な い 。 エ イ リ ア ス の 有 効 な 要 素 と な る も の の 定 義 は 、 以 下 の よ う に な る 。
User_List ::=
User |
User ’,’ User_List
User ::=
’!’* user name |
’!’* #uid |
’!’* %group |
’!’* %#gid |
’!’* +netgroup |
’!’* %:nonunix_group |
’!’* %:#nonunix_gid |
’!’* User_Alias
User_List を 構 成 す る の は 、 一 個 以 上 の 次 の も の で あ る 。 ユ ー ザ 名 、 ユ ー ザ ID (接 頭 辞 ’#’ が 付 く )、 シ ス テ ム グ ル ー プ 名 や そ の ID (そ れ ぞ れ 、 接 頭 辞 ’%’ と ’%#’ が 付 く )、 ネ ッ ト グ ル ー プ 名 (接 頭 辞 ’+’ が 付 く )、 non−Unix グ ル ー プ 名 や そ の ID (そ れ ぞ れ 、 接 頭 辞 ’%:’ と ’%:#’ が 付 く )、 そ れ に User_Alias。 リ ス ト の 各 項 目 の 前 に は 一 個 以 上 の ’!’ 演 算 子 を 付 け て も よ い 。 奇 数 個 の ’!’ は そ の 項 目 の 値 を 否 定 す る 。 偶 数 個 の 場 合 は 互 い 相 殺 さ れ る だ け だ 。 な お 、 ユ ー ザ の ネ ッ ト グ ル ー プ に つ い て は 、 ネ ッ ト グ ル ー プ の 成 員 中 の ユ ー ザ と ド メ イ ン の 要 素 の み を 使 っ て 、 マ ッ チ ン グ が 行 わ れ る 。 ホ ス ト の 要 素 は マ ッ チ ン グ に 使 用 さ れ な い 。 ユ ー ザ 名 、 uid、 グ ル ー プ 名 、 gid、 ネ ッ ト グ ル ー プ 名 、 non−Unix グ ル ー プ 名 、 non−Unix グ ル ー プ の gid は 、 ダ ブ ル ク ォ ー ト で 囲 め ば 、 特 殊 文 字 を エ ス ー プ し な い で す む 。 ダ ブ ル ク ォ ー ト で 囲 ま ず に 特 殊 文 字 を 使 い た い な ら 、 エ ス ケ ー プ し た 16 進 数 を 指 定 し て や れ ば よ い 。 た と え ば 、 ス ペ ー ス な ら \x20 と い う 具 合 だ 。 ダ ブ ル ク ォ ー ト を 使 用 す る 場 合 は 、 接 頭 辞 が あ れ ば 、 そ れ を ダ ブ ル ク ォ ー ト の 内 側 に 入 れ な け れ ば な ら な い 。
non−Unix グ ル ー プ や そ の gid を 指 定 す る と き の の 書 式 が 、 実 際 に ど ん な も の に な る か は 、 利 用 す る グ ル ー プ ・ プ ロ バ イ ダ ー ・ プ ラ グ イ ン (group provider plugin) 次 第 で あ る 。 た と え ば 、 QAS (Quest Authentication Services) の AD プ ラ グ イ ン は 、 以 下 の 書 式 を サ ポ ー ト し て い る 。
• 同 じ ド メ イ ン の グ ル ー プ :
"%:Group Name"
• 任 意 の ド メ イ ン の グ ル ー プ
: "%:Group
Name [AT] FULLY.DOMAIN"
• グ ル ー プ SID:
"%:S−1−2−34−5678901234−5678901234−5678901234−567"
詳 細 に つ い て は 、 「 グ ル ー プ ・ プ ロ バ イ ダ ー ・ プ ラ グ イ ン 」 セ ク シ ョ ン を ご 覧 い た だ き た い 。 グ ル ー プ 名 を 囲 む 引 用 符 は 任 意 で あ る こ と に 注 意 し て い た だ き た い 。 文 字 列 を 引 用 符 で 囲 ま な い 場 合 は 、 バ ッ ク ス ラ ッ シ ュ (’\’) を 使 っ て 、 ス ペ ー ス や 特 殊 文 字 を エ ス ケ ー プ し な け れ ば な ら な い 。 エ ス ケ ー プ す る 必 要 が あ る 文 字 の リ ス ト に つ い て は 、 「 ほ か の 特 殊 文 字 と 予 約 語 」 の セ ク シ ョ ン を 参 照 し て い た だ き た い 。
Runas_List ::=
Runas_Member |
Runas_Member ’,’ Runas_List
Runas_Member
::= ’!’* user name |
’!’* #uid |
’!’* %group |
’!’* %#gid |
’!’* %:nonunix_group |
’!’* %:#nonunix_gid |
’!’* +netgroup |
’!’* Runas_Alias
Runas_List は User_List に 似 て い る 。 違 う の は 、 User_Alias で は な く 、 Runas_Alias が 使 え る こ と だ 。 ユ ー ザ 名 や グ ル ー プ 名 の マ ッ チ は 、 文 字 列 と し て 行 わ れ る こ と に 気 を 付 け て い た だ き た い 。 言 い 換 え る と 、 二 つ の ユ ー ザ 名 (あ る い は 、 グ ル ー プ 名 ) は 、 仮 に 同 じ uid (gid) を 持 っ て い て も 、 別 個 の も の と 見 な さ れ る の で あ る 。 だ か ら 、 も し 同 じ uid を 持 っ た す べ て の ユ ー ザ 名 に マ ッ チ さ せ た か っ た ら (た と え ば 、 root と toor が そ う だ と し よ う )、 ユ ー ザ 名 の 代 わ り に uid を 使 え ば よ い (こ の 例 な ら 、 #0 で あ る )。
Host_List ::=
Host |
Host ’,’ Host_List
Host ::=
’!’* host name |
’!’* ip_addr |
’!’* network(/netmask)? |
’!’* +netgroup |
’!’* Host_Alias
Host_List を 構 成 す る の は 、 一 個 以 上 の 次 の も の で あ る 。 ホ ス ト 名 、 IP ア ド レ ス 、 ネ ッ ト ワ ー ク ア ド レ ス 、 ネ ッ ト グ ル ー プ 名 (接 頭 辞 ’+’ が 付 く )、 お よ び 他 の エ イ リ ア ス 。 こ こ で も ま た 、 項 目 の 値 は 、 ’!’ 演 算 子 に よ っ て 否 定 す る こ と が で き る 。 な お 、 ホ ス ト の ネ ッ ト グ ル ー プ に つ い て は 、 ネ ッ ト グ ル ー プ の 成 員 中 の ホ ス ト (完 全 修 飾 名 と そ う で な い も の の ど ち ら で も ) と ド メ イ ン の 要 素 の み を 使 っ て 、 マ ッ チ ン グ が 行 わ れ る 。 ユ ー ザ の 要 素 は マ ッ チ ン グ に 使 用 さ れ な い 。 ネ ッ ト ワ ー ク ア ド レ ス を ネ ッ ト マ ス ク な し で 指 定 し た 場 合 は 、 sudo は ロ ー カ ル ホ ス ト の ネ ッ ト ワ ー ク イ ン タ ー フ ェ ー ス を 一 つ 一 つ 参 照 し 、 指 定 さ れ た ネ ッ ト ワ ー ク ア ド レ ス と 同 じ ア ド レ ス を 持 つ イ ン タ ー フ ェ ー ス が あ れ ば 、 そ の ネ ッ ト マ ス ク を 使 用 す る こ と に な る 。 ネ ッ ト マ ス ク の 指 定 は 、 標 準 の IP ア ド レ ス 表 記 (た と え ば 255.255.255.0 や ffff:ffff:ffff:ffff::) で も よ く 、 CIDR 表 記 (ビ ッ ト 数 、 た と え ば 24 や 64) で も よ い 。 ホ ス ト 名 の 一 部 に シ ェ ル 風 の ワ イ ル ド カ ー ド を 使 用 す る こ と が で き る が (下 記 の 「 ワ イ ル ド カ ー ド 」 セ ク シ ョ ン を 参 照 )、 ご 使 用 の マ シ ン の hostname コ マ ン ド が 完 全 修 飾 ド メ イ ン 名 (FQDN) を 返 さ な い 場 合 、 ワ イ ル ド カ ー ド を 利 用 す る に は fqdn オ プ シ ョ ン を 使 う 必 要 が あ る 。 な お 、 sudo が チ ェ ッ ク す る の は 、 実 在 の ネ ッ ト ワ ー ク イ ン タ ー フ ェ ー ス だ け だ と い う こ と に 留 意 し て ほ し い 。 す な わ ち 、 IP ア ド レ ス 127.0.0.1 (localhost) が マ ッ チ す る こ と は 、 絶 対 に な い の で あ る 。 ま た 、 "localhost" と い う ホ ス ト 名 が マ ッ チ す る の は 、 そ れ が 実 際 の ホ ス ト 名 で あ る と き だ け で あ り 、 そ れ は 通 常 、 ネ ッ ト ワ ー ク に つ な が っ て い な い シ ス テ ム の 場 合 に し か 当 て は ま ら な い 。
digest ::= [A−Fa−f0−9]+ |
[[A−Za−z0−9+/=]+
Digest_Spec ::= "sha224" ’:’ digest |
"sha256" ’:’ digest |
"sha384" ’:’ digest |
"sha512" ’:’ digest
Cmnd_List ::=
Cmnd |
Cmnd ’,’ Cmnd_List
command name
::= file name |
file name args |
file name ’""’
Cmnd ::=
Digest_Spec? ’!’* command name |
’!’* directory |
’!’* "sudoedit" |
’!’* Cmnd_Alias
Cmnd_List は 一 個 以 上 の 、 コ マ ン ド 名 、 デ ィ レ ク ト リ 、 他 の エ イ リ ア ス か ら な る リ ス ト で あ る 。 コ マ ン ド 名 は 絶 対 パ ス の フ ァ イ ル 名 で あ り 、 シ ェ ル 風 の ワ イ ル ド カ ー ド を 含 ん で い て も 構 わ な い (下 記 の 「 ワ イ ル ド カ ー ド 」 セ ク シ ョ ン を 参 照 )。 単 に フ ァ イ ル 名 だ け 指 定 し た 場 合 、 ユ ー ザ は お 望 み の ど ん な 引 き 数 で も 付 け て そ の コ マ ン ド を 実 行 す る こ と が で き る 。 と は 言 え 、 コ マ ン ド ラ イ ン 引 き 数 を (ワ イ ル ド カ ー ド を 含 め て ) 指 定 し て も 構 わ な い し 、 ま た 、 引 き 数 に "" を 指 定 し て 、 そ の コ マ ン ド は 、 コ マ ン ド ラ イ ン 引 き 数 を 付 け ず に 実 行 す る こ と し か で き な い と 指 示 す る こ と も で き る 。 デ ィ レ ク ト リ は ’/’ で 終 わ る 絶 対 パ ス 名 で あ る 。 Cmnd_List に デ ィ レ ク ト リ を 指 定 す る と 、 ユ ー ザ ー は そ の デ ィ レ ク ト リ 内 の 任 意 の フ ァ イ ル を 実 行 で き る よ う に な る (だ が 、 そ の サ ブ デ ィ レ ク ト リ に あ る フ ァ イ ル は 実 行 で き な い )。
Cmnd が コ マ ン ド ラ イ ン 引 き 数 を 伴 っ て い る 場 合 は 、 Cmnd 中 の 引 き 数 は 、 ユ ー ザ が コ マ ン ド ラ イ ン で 打 ち 込 む 引 き 数 と 正 確 に 一 致 し な け れ ば な ら な い (Cmnd 中 の 引 き 数 に ワ イ ル ド カ ー ド が あ る な ら ば 、 そ れ が コ マ ン ド ラ イ ン の 引 き 数 と マ ッ チ し な け れ ば な ら な い )。 以 下 に 挙 げ る 文 字 を コ マ ン ド 引 き 数 の 中 で 用 い る と き は 、 ’\’ に よ っ て エ ス ケ ー プ し な け れ ば な ら な い こ と に 注 意 し て い た だ き た い 。 ’,’, ’:’, ’=’, ’\’ が そ れ で あ る 。 Cmnd に "sudoedit" と い う sudo の 組 み 込 み コ マ ン ド を 指 定 す る と 、 ユ ー ザ に sudo を −e オ プ シ ョ ン 付 き で (あ る い は 、 sudoedit と い う コ マ ン ド 名 で ) 実 行 す る こ と を 許 可 す る こ と に な る 。 こ の 場 合 、 コ マ ン ド ラ イ ン 引 き 数 も 指 定 す る こ と が で き る の は 、 普 通 の コ マ ン ド と ま っ た く 同 様 だ 。 "sudoedit" は 、 sudo そ の も の に 組 み 込 ま れ た コ マ ン ド な の で 、 sudoers フ ァ イ ル で は パ ス を 前 に 付 け ず に 指 定 し な け れ ば な ら な い こ と に 注 意 し て い た だ き た い 。 コ マ ン ド 名 の 前 に Digest_Spec が 付 い て い る 場 合 、 コ マ ン ド の マ ッ チ に 成 功 す る の は 、 指 定 さ れ た SHA−2 ダ イ ジ ェ ス ト を 使 っ て 照 合 で き た と き だ け で あ る 。 ダ イ ジ ェ ス ト の フ ォ ー マ ッ ト と し て は 、 sha224, sha256, sha384, sha512 を サ ポ ー ト し て い る 。 文 字 列 は 、 16 進 数 形 式 で も base64 形 式 で も 指 定 で き る (base64 の 方 が 短 く て 済 む )。 SHA−2 ダ イ ジ ェ ス ト を 16 進 数 形 式 で 生 成 で き る ユ ー テ ィ リ テ ィ は い く つ か あ る 。 openssl, shasum, sha224sum, sha256sum, sha384sum, sha512sum と い っ た も の が そ う だ 。 た と え ば 、 openssl を 使 う な ら 、
$ openssl dgst
−sha224 /bin/ls
SHA224(/bin/ls)=
118187da8364d490b4a7debbf483004e8f3e053ec954309de2c41a25
openssl を 使 っ て 、 base64 の 出 力 を 生 成 す る こ と も で き る 。
$ openssl dgst
−binary −sha224 /bin/ls | openssl base64
EYGH2oNk1JC0p9679IMATo8+BT7JVDCd4sQaJQ== 注 意 :
も し ユ ー ザ が
コ マ ン ド そ の
も の に 対 し て
(直 接 で あ れ 、
sudo コ マ ン ド を
通 し て で あ れ )
書 き 込 み 権 限
を 持 っ て い る
な ら ば 、 そ の
ユ ー ザ は 、 ダ
イ ジ ェ ス ト チ
ェ ッ ク が 済 み
、 コ マ ン ド が
実 行 さ れ る ま
で の 間 に 、 コ
マ ン ド を 別 の
も の に 置 き 換
え る こ と が で
き る か も し れ
な い 。 同 様 の
競 合 状 態 が 、
fexecve(2) シ ス テ ム コ
ー ル を 持 っ て
い な い シ ス テ
ム で は 、 コ マ
ン ド が 存 在 す
る デ ィ レ ク ト
リ が ユ ー ザ に
よ っ て 書 き 込
み 可 能 で あ る
と き に 起 こ り
え る 。 コ マ ン
ド ・ ダ イ ジ ェ
ス ト を サ ポ ー
ト し て い る の
は 、 バ ー ジ ョ
ン 1.8.7 以 上 だ け で
あ る 。 デ フ ォ
ル ト 設 定 (Defaults) か
な り の 設 定 オ
プ シ ョ ン が 、
一 行 以 上 の Default_Entry
行 を 指 定 す る
こ と で 実 行 時
に デ フ ォ ル ト
の 値 か ら 変 更
可 能 だ 。 そ の
効 果 の 及 ぶ 範
囲 は 、 あ ら ゆ
る ホ ス ト の す
べ て の ユ ー ザ
に す る こ と も
で き る し 、 あ
る 特 定 の ホ ス
ト の す べ て の
ユ ー ザ 、 あ る
特 定 の ユ ー ザ
、 あ る 特 定 の
コ マ ン ド 、 あ
る 特 定 の ユ ー
ザ と し て 実 行
す る コ マ ン ド
な ど に 限 定 す
る こ と も で き
る 。 気 を 付 け
て ほ し い の は
、 コ マ ン ド に
限 定 し た Defaults 行
に コ マ ン ド ラ
イ ン 引 き 数 ま
で 書 く こ と が
で き な い こ と
だ 。 引 き 数 を
指 定 す る 必 要
が あ る 場 合 は
、 Cmnd_Alias を 定 義 し
て 、 代 わ り に
そ れ を 参 照 す
れ ば よ い 。
Default_Type
::= ’Defaults’ |
’Defaults’ ’@’ Host_List |
’Defaults’ ’:’ User_List |
’Defaults’ ’!’ Cmnd_List |
’Defaults’ ’>’ Runas_List
Default_Entry ::= Default_Type Parameter_List
Parameter_List
::= Parameter |
Parameter ’,’ Parameter_List
Parameter ::=
Parameter ’=’ Value |
Parameter ’+=’ Value |
Parameter ’−=’ Value |
’!’* Parameter パ ラ メ
ー タ は フ ラ グ
、 整 数 値 、
文 字 列 、 リ
ス ト の ど れ で
あ っ て も よ い
。 フ ラ グ は 要
す る に ブ ー リ
ア ン (真 偽 値 ) で
あ り 、 ’!’ 演 算
子 で off に で き る
。 整 数 値 、 文
字 列 、 リ ス ト
の パ ラ メ ー タ
に も 、 真 偽 値
と し て 使 用 し
て 、 そ れ を 無
効 に で き る も
の が い く つ か
存 在 す る 。 パ
ラ メ ー タ の 値
が 複 数 の 単 語
を 含 む と き は
、 値 を ダ ブ ル
ク オ ー ト ("") で
囲 む と よ い 。
特 殊 文 字 は バ
ッ ク ス ラ ッ シ
ュ (’\’) で エ ス
ケ ー プ す る こ
と が で き る 。
リ ス ト に は 代
入 演 算 子 が = の
ほ か に も う 二
つ あ る 。 += と −=
で あ る 。 こ う
し た 演 算 子 は
、 そ れ ぞ れ 、
リ ス ト に 付 け
加 え た り 、 リ
ス ト か ら 削 除
し た り す る の
に 使 用 す る 。
−= 演 算 子 を 使
っ て 、 リ ス ト
に 存 在 し な い
要 素 を 消 去 し
よ う と し て も
、 エ ラ ー に は
な ら な い 。
Defaults 行 の 解 析 は 、 次 の 順 序 で 行 わ れ る 。 ま ず 、 汎 用 、 Host、 User の Defaults が 解 析 さ れ 、 そ れ か ら Runas の Defaults、 最 後 に コ マ ン ド の Defaults の 順 番 に な る 。
Defaults
行 で 使 用 で き
る パ ラ メ ー タ
の リ ス ト に つ
い て は 、 「 SUDOERS
の オ プ シ ョ ン
」 を 御 覧 い た
だ き た い 。 ユ
ー ザ 設 定 (User Specification)
User_Spec ::= User_List Host_List ’=’
Cmnd_Spec_List \
(’:’ Host_List ’=’
Cmnd_Spec_List)*
Cmnd_Spec_List
::= Cmnd_Spec |
Cmnd_Spec ’,’ Cmnd_Spec_List
Cmnd_Spec ::= Runas_Spec? SELinux_Spec? Tag_Spec* Cmnd
Runas_Spec ::= ’(’ Runas_List? (’:’ Runas_List)? ’)’
SELinux_Spec ::= (’ROLE=role’ | ’TYPE=type’)
Tag_Spec ::=
(’EXEC:’ | ’NOEXEC:’ |
’FOLLOW:’ | ’NOFOLLOW’ |
’LOG_INPUT:’ | ’NOLOG_INPUT:’ |
’LOG_OUTPUT:’ |
’NOLOG_OUTPUT:’ | ’MAIL:’ |
’NOMAIL:’ | ’PASSWD:’ |
’NOPASSWD:’ | ’SETENV:’ |
’NOSETENV:’) ユ ー ザ
設 定 は 、 あ る
ユ ー ザ が 、 指
定 さ れ た ホ ス
ト で (ど の ユ ー
ザ に 変 身 し て )
ど の コ マ ン ド
を 実 行 で き る
か を 決 定 す る
。 デ フ ォ ル ト
で は 、 コ マ ン
ド は root に 変 身
し て 実 行 さ れ
る が 、 こ れ は
コ マ ン ド ご と
に 変 更 す る こ
と が で き る 。
ユ ー ザ 設 定 の
基 本 構 造 は 、
"who where = (as_whom) what" で あ
る ("誰 が ど の ホ
ス ト で = (誰 に 変
身 し て ) 何 を
")。 構 成 部 分 に
分 け て 説 明 し
よ う 。
Runas_Spec
Runas_Spec は 変 身 の 対
象 と な る ユ ー
ザ や グ ル ー プ
を 規 定 し て い
る 。 完 全 な 形
の Runas_Spec は 、 (上 で
定 義 し て い る
よ う に ) コ ロ ン
(’:’) で 区 切 ら
れ 、 カ ッ コ で
囲 ま れ た 、 二
つ の Runas_List か ら な
っ て い る 。 一
つ 目 の Runas_List は 、
sudo で −u オ プ
シ ョ ン を 使 っ
た と き に 変 身
で き る ユ ー ザ
を 指 し て い る
。 二 番 目 の 方
が 規 定 し て い
る の は 、 sudo の
−g オ プ シ ョ ン
に よ っ て 指 定
で き る グ ル ー
プ の リ ス ト だ
。 両 方 の Runas_List が
指 定 さ れ て い
る 場 合 は 、 そ
れ ぞ れ の Runas_List に
リ ス ト さ れ て
い る ユ ー ザ と
グ ル ー プ の 任
意 の 組 み 合 わ
せ で 、 コ マ ン
ド を 実 行 す る
こ と が で き る
。 一 つ 目 の Runas_List
だ け が 指 定 さ
れ て い る 場 合
は 、 リ ス ト 中
の い か な る ユ
ー ザ に で も 変
身 し て コ マ ン
ド を 実 行 で き
る が 、 −g オ プ
シ ョ ン を 指 定
す る こ と は で
き な い 。 一 つ
目 の Runas_List が 空 で
、 二 番 目 だ け
指 定 さ れ て い
る 場 合 は 、 sudo
を 実 行 す る ユ
ー ザ の 資 格 で
、 グ ル ー プ を
Runas_List に リ ス ト さ
れ て い る 任 意
の グ ル ー プ に
設 定 し て 、 コ
マ ン ド を 実 行
す る こ と が で
き る 。 Runas_Lists が 両
方 と も 空 の 場
合 は 、 sudo を 実
行 す る ユ ー ザ
の 資 格 で し か
コ マ ン ド を 実
行 で き な い 。
Runas_Spec が ま っ た く
指 定 さ れ て い
な い 場 合 は 、
root と し て コ マ
ン ド を 実 行 で
き る が 、 グ ル
ー プ を 指 定 す
る こ と は で き
な い 。
Runas_Spec は 、 そ れ に 続 く コ マ ン ド に 対 し て デ フ ォ ル ト を 定 め る 。 そ れ は ど う い う こ と か と 言 う と 、 次 の よ う な エ ン ト リ が あ っ た と し よ う 。
dgb
boulder = (operator) /bin/ls, /bin/kill, /usr/bin/lprm ユ ー ザ dgb は /bin/ls, /bin/kill, /usr/bin/lprm を 実 行 す る こ と が で き る 。 た だ し 、 operator と し て 実 行 で き る だ け だ 。 た と え ば 、 次 の よ う に で あ る 。
$ sudo −u operator /bin/ls エ ン ト リ の 後 ろ の 方 の Runas_Spec を 変 更 す る こ と も 可 能 だ 。 上 の エ ン ト リ を こ ん な ふ う に 書 き 変 え た と し よ う 。
dgb
boulder = (operator) /bin/ls, (root) /bin/kill, /usr/bin/lprm す る と 、 ユ ー ザ dgb は 、 /bin/ls こ そ operator と し て だ が 、 /bin/kill や /usr/bin/lprm は root の 資 格 で 実 行 で き る よ う に な る 。
dgb が /bin/ls を 実 行 す る と き 、 変 身 対 象 ユ ー ザ と グ ル ー プ の ど ち ら で も operator に な れ る よ う に 、 こ の 記 述 を 拡 張 す る こ と も で き る 。
dgb
boulder = (operator : operator) /bin/ls, (root) /bin/kill,\
/usr/bin/lprm 注 意 し て ほ し い が 、 Runas_Spec の グ ル ー プ の 部 分 は 、 コ マ ン ド を そ の グ ル ー プ と し て 実 行 す る こ と を ユ ー ザ に 許 可 し て い る の で あ っ て 、 そ う す る こ と を ユ ー ザ に 強 制 し て い る の で は な い 。 コ マ ン ド ラ イ ン で グ ル ー プ を 指 定 し な い 場 合 は 、 コ マ ン ド は 、 パ ス ワ ー ド ・ デ ー タ ベ ー ス に あ る 変 身 対 象 ユ ー ザ の エ ン ト リ に 登 録 さ れ て い る グ ル ー プ と し て 実 行 さ れ る こ と に な る の だ 。 以 下 の コ マ ン ド は す べ て 、 上 記 の sudoers エ ン ト リ に よ っ て 許 可 さ れ る こ と に な る だ ろ う 。
$ sudo −u
operator /bin/ls
$ sudo −u operator −g operator /bin/ls
$ sudo −g operator /bin/ls 次 の 例
で は 、 ユ ー ザ
tcm が モ デ ム の
デ バ イ ス フ ァ
イ ル に ア ク セ
ス す る コ マ ン
ド を dialer グ ル ー プ
と し て 実 行 で
き る よ う に し
て い る 。
tcm
boulder = (:dialer) /usr/bin/tip, /usr/bin/cu,\
/usr/local/bin/minicom こ の 例 で は 、 グ ル ー プ し か 指 定 で き な い こ と に 注 意 し て ほ し い 。 コ マ ン ド は 、 ユ ー ザ tcm の 資 格 の ま ま 実 行 さ れ る の で あ る 。 た と え ば 、 次 の よ う に 。
$ sudo −g dialer /usr/bin/cu
Runas_Spec に は 複 数 の ユ ー ザ や グ ル ー プ が 存 在 し て も よ い 。 そ の 場 合 、 ユ ー ザ は −u や −g オ プ シ ョ ン を 使 っ て 、 ユ ー ザ と グ ル ー プ の ど ん な 組 み 合 わ せ で も 選 択 す る こ と が で き る 。
alan
ALL = (root, bin : operator, system) ALL こ の 例 で は 、 ユ ー ザ alan は root と bin の ど ち ら の ユ ー ザ に で も 変 身 し て 、 任 意 の コ マ ン ド を 実 行 す る こ と が で き る 。 ま た 、 グ ル ー プ を operator や system に 設 定 す る こ と も 自 由 で あ る 。
SELinux_Spec
SELinux を サ ポ ー ト
す る シ ス テ ム
で は 、 sudoers フ ァ
イ ル の エ ン ト
リ で SELinux の role や type
を コ マ ン ド に
関 連 付 け る こ
と も 可 能 で あ
る 。 role や type を 特
定 の コ マ ン ド
に つ い て 指 定
す る と 、 sudoers 中
で デ フ ォ ル ト
と し て 設 定 さ
れ て い る role や type
が あ っ て も 、
そ れ よ り も 優
先 さ れ る 。 も
っ と も 、 role や type
を コ マ ン ド ラ
イ ン で 指 定 す
れ ば 、 そ ち ら
が sudoers 中 の 値 よ
り さ ら に 優 先
さ れ る こ と に
な る 。
Tag_Spec
コ マ ン ド は 0 個
以 上 の タ グ を
伴 う こ と が で
き る 。 使 用 で
き る タ グ の 値
は 14 個 あ り 、 EXEC,
NOEXEC, FOLLOW, NOFOLLOW, LOG_INPUT, NOLOG_INPUT,
LOG_OUTPUT, NOLOG_OUTPUT, MAIL, NOMAIL, PASSWD, NOPASSWD,
SETENV, NOSETENV が 、 そ れ
で あ る 。 あ る Cmnd
に タ グ を セ ッ
ト す る と 、 Cmnd_Spec_List
中 の そ れ 以 後
の Cmnd は 、 反 対 の
意 味 を 持 つ タ
グ に よ っ て 変
更 さ れ な い か
ぎ り 、 そ の タ
グ を 継 承 す る
こ と に な る (す
な わ ち 、 PASSWD は NOPASSWD
を 無 効 に し 、 NOEXEC
は EXEC を 無 効 に す
る )。
EXEC と NOEXEC
sudo が noexec サ ポ ー ト つ き で コ ン パ イ ル さ れ 、 使 用 し て い る オ ペ レ ー テ ィ ン グ シ ス テ ム が そ れ に 対 応 し て い る 場 合 、 NOEXEC タ グ を 利 用 す れ ば 、 動 的 に リ ン ク さ れ た 実 行 フ ァ イ ル が 、 そ こ か ら さ ら に コ マ ン ド を 実 行 す る の を 防 ぐ こ と が で き る 。 次 の 例 で は 、 ユ ー ザ aaron は /usr/bin/more と /usr/bin/vi を 実 行 で き る が 、 シ ェ ル ・ エ ス ケ ー プ は 利 用 で き な い 。
aaron
shanty = NOEXEC: /usr/bin/more, /usr/bin/vi
NOEXEC が ど ん な ふ う に 働 く の か 、 お 使 い の シ ス テ ム で 利 用 で き る か ど う か 、 な ど に つ い て さ ら に 詳 し く 知 り た か っ た ら 、 後 述 の 「 シ ェ ル ・ エ ス ケ ー プ の 防 止 」 セ ク シ ョ ン を 御 覧 に な る と よ い 。
FOLLOW と
NOFOLLOW バ ー ジ ョ ン
1.8.15 以 来 、 sudoedit は
、 sudoedit_follow オ プ シ
ョ ン が 有 効 に
な っ て い な い
か ぎ り 、 フ ァ
イ ル が シ ン ボ
リ ッ ク リ ン ク
な ら ば 、 そ れ
を 開 か な い よ
う に な っ て い
る 。 FOLLOW と NOFOLLOW
タ グ は 、 sudoedit_follow
の 値 を 上 書 き
す る の で 、 こ
れ を 使 用 す れ
ば 、 シ ン ボ リ
ッ ク リ ン ク の
編 集 を コ マ ン
ド ご と に 許 可
し た り 、 禁 止
し た り す る こ
と が で き る 。
こ の 二 つ の タ
グ が 効 果 が あ
る の は 、 sudoedit コ
マ ン ド に 対 し
て の み で あ り
、 他 の ど ん な
コ マ ン ド に 対
し て も 無 視 さ
れ る 。
LOG_INPUT と NOLOG_INPUT こ の
二 つ の タ グ は
log_input オ プ シ ョ
ン の 値 を コ マ
ン ド ご と に 変
更 す る 。 詳 し
い 情 報 に つ い
て は 、 後 述 す
る 「 SUDOERS の オ プ
シ ョ ン 」 セ ク
シ ョ ン の log_input
の 説 明 を ご 覧
に な っ て い た
だ き た い 。
LOG_OUTPUT と NOLOG_OUTPUT こ
の 二 つ の タ グ
は log_output オ プ シ
ョ ン の 値 を コ
マ ン ド ご と に
変 更 す る 。 詳
し い 情 報 に つ
い て は 、 後 述
す る 「 SUDOERS の オ
プ シ ョ ン 」 セ
ク シ ョ ン の
log_output の 説 明 を
ご 覧 に な っ て
い た だ き た い
。
MAIL と NOMAIL こ の 二
つ の タ グ を 使
え ば 、 mail_all_cmnds オ
プ シ ョ ン の 値
を コ マ ン ド ご
と に 上 書 き す
る こ と に よ っ
て 、 ユ ー ザ が
コ マ ン ド を 実
行 し た と き に
メ ー ル を 送 付
す る か ど う か
に つ い て 、 き
め 細 か な 制 御
を 行 う こ と が
で き る 。 sudo が
−l や −v オ プ
シ ョ ン を 付 け
て 実 行 さ れ た
と き に は 、 効
果 が な い 。 NOMAIL
は 、 mail_always や
mail_no_perms オ プ シ ョ
ン も 上 書 き す
る 。 詳 細 に つ
い て は 、 後 述
の 「 SUDOERS の オ プ
シ ョ ン 」 セ ク
シ ョ ン に あ る
mail_all_cmnds, mail_always,
mail_no_perms の 説 明 を
ご 覧 い た だ き
た い 。
PASSWD と NOPASSWD デ フ
ォ ル ト で は 、
sudo は コ マ ン ド
を 実 行 す る 前
に 、 ユ ー ザ が
本 人 で あ る こ
と を 証 明 す る
よ う に 求 め る
。 こ の 振 舞 い
は NOPASSWD タ グ に よ
っ て 変 更 す る
こ と が で き る
。 Runas_Spec と 同 様 、
NOPASSWD タ グ も Cmnd_Spec_List 中
の そ れ に 続 く
コ マ ン ド に 対
し て デ フ ォ ル
ト を 定 め る 。 PASSWD
の 働 き は 反 対
で あ り 、 振 舞
い を 元 に 戻 し
た い と き に 使
え る 。 た と え
ば 、
ray
rushmore = NOPASSWD: /bin/kill, /bin/ls, /usr/bin/lprm と す れ ば 、 ユ ー ザ ray は マ シ ン rushmore 上 で 認 証 を し な い で も root と し て /bin/kill, /bin/ls, /usr/bin/lprm を 実 行 で き る よ う に な る 。 も し ray が パ ス ワ ー ド な し で 実 行 で き る コ マ ン ド を /bin/kill だ け に 絞 り た い の な ら 、 エ ン ト リ は こ う な る だ ろ う 。
ray
rushmore = NOPASSWD: /bin/kill, PASSWD: /bin/ls, /usr/bin/lprm た だ し 、 ユ ー ザ が exempt_group オ プ シ ョ ン で 指 定 さ れ て い る グ ル ー プ に 属 す る 場 合 は 、 PASSWD タ グ が 効 果 を 持 た な い こ と に 注 意 し て ほ し い 。 デ フ ォ ル ト で は 、 現 在 使 用 中 の ホ ス ト に 関 す る ユ ー ザ の エ ン ト リ の う ち に NOPASSWD タ グ が 指 定 さ れ て い る も の が 一 つ で も あ れ ば 、 そ の ユ ー ザ は パ ス ワ ー ド な し で "sudo −l" を 実 行 で き る 。 な お 、 ユ ー ザ が パ ス ワ ー ド な し で "sudo −v" を 実 行 で き る の は 、 現 在 使 用 中 の ホ ス ト に 関 す る そ の ユ ー ザ の エ ン ト リ の す べ て で NOPASSWD タ グ が 生 き て い る と き の み で あ る 。 こ の 動 作 は 、 verifypw や listpw オ プ シ ョ ン に よ っ て 変 更 で き る 。
SETENV と
NOSETENV 上 記 の タ グ
は setenv オ プ シ ョ
ン の 値 を コ マ
ン ド ご と に 変
更 す る 。 あ る
コ マ ン ド に 対
し て SETENV を 設 定 す
る と 、 ユ ー ザ
が コ マ ン ド ラ
イ ン か ら −E オ
プ シ ョ ン を 使
用 し て 、 env_reset
オ プ シ ョ ン を
無 効 に で き る
よ う に な る こ
と に 注 意 し て
ほ し い 。 そ れ
だ け で は な い
。 コ マ ン ド ラ
イ ン か ら 設 定
す る 環 境 変 数
が env_check, env_delete,
env_keep に よ る 規 制
を 受 け な い よ
う に も な る 。
そ れ 故 、 こ う
し た 形 で 環 境
変 数 を 設 定 す
る こ と を 許 可
す る の は 、 信
用 で き る ユ ー
ザ だ け に 限 る
べ き で あ る 。
な お 、 マ ッ チ
す る コ マ ン ド
が ALL だ っ た 場
合 は 、 暗 黙 の
う ち に SETENVタ グ が
そ の コ マ ン ド
に 付 け ら れ る
が 、 こ の デ フ
ォ ル ト の 動 作
は UNSETENV タ グ を 使
え ば 打 ち 消 す
こ と が で き る
。 ワ イ ル ド カ
ー ド
sudoers フ ァ イ ル で
は 、 ホ ス ト 名
、 コ マ ン ド の
パ ス 名 、 コ マ
ン ド ラ イ ン 引
き 数 に シ ェ ル
形 式 の ワ イ ル
ド カ ー ド (メ タ
文 字 と か glob キ ャ
ラ ク タ と も 言
う ) が 使 用 で き
る 。 ワ イ ル ド
カ ー ド の マ ッ
チ ン グ は 、 IEEE Std 1003.1
("POSIX.1") で 規 定 さ
れ て い る glob(3) や
fnmatch(3) 関 数 を 用 い
て 行 わ れ る 。
*
0 個 以 上 の 任 意 の 文 字 (ホ ワ イ ト ス ペ ー ス も 含 む ) に マ ッ チ す る 。
?
任 意 の 1 文 字 (ホ ワ イ ト ス ペ ー ス も 含 む ) に マ ッ チ す る 。
[...] 指 定 さ れ
た 範 囲 の 任 意 の 1 文 字 に マ ッ チ す る 。
[!...] 指 定 さ れ た 範 囲 以 外 の 任 意
の 1 文 字
に マ ッ チ す る
。
\x
’x’ が ど ん な 文 字 で あ っ て も 、 ’x’ そ の も の と し て 評 価 す る 。 こ の 表 記 法 は ’*’, ’?’, ’[’, ’]’ と い っ た 特 殊 文 字 を エ ス ケ ー プ す る た め に 使 用 さ れ る 。
上 記 の も の は 正 規 表 現 で は な い こ と に 注 意 し て い た だ き た い 。 正 規 表 現 と は 違 っ て 、 範 囲 内 の 文 字 一 つ 以 上 に マ ッ チ さ せ る 方 法 は 存 在 し な い 。 使 用 し て い る シ ス テ ム の glob(3) や fnmatch(3) 関 数 が 文 字 ク ラ ス に 対 応 し て い る な ら 、 文 字 ク ラ ス が 使 用 で き る 。 た だ し 、 ’:’ 文 字 は 、 sudoers で 特 別 な 意 味 を 持 っ て い る の で 、 エ ス ケ ー プ し な け れ ば な ら な い 。 一 例 を 上 げ る 。
/bin/ls [[\:alpha\:]]*
sudoers 中 で 上 の よ う に 書 け ば 、 ア ル フ ァ ベ ッ ト の 文 字 で 始 ま る ど ん な フ ァ イ ル 名 に も マ ッ チ す る だ ろ う 。 コ マ ン ド の フ ァ イ ル 名 の 部 分 で 使 わ れ た ワ イ ル ド カ ー ド は フ ォ ワ ー ド ス ラ ッ シ ュ (’/’) に マ ッ チ し な い こ と に 注 意 し て い た だ き た い 。 そ こ で 、 次 の よ う な パ ス は 、
/usr/bin/*
/usr/bin/who に マ ッ チ す る が 、 /usr/bin/X11/xterm に は マ ッ チ し な い 。 だ が 、 コ マ ン ド ラ イ ン 引 き 数 の 部 分 の マ ッ チ ン グ で は 、 ワ イ ル ド カ ー ド は ス ラ ッ シ ュ に し っ か り マ ッ チ す る 。 コ マ ン ド ラ イ ン 引 き 数 に は 、 任 意 の 文 字 列 を 含 む こ と が 認 め ら れ て お り 、 パ ス 名 し か 許 さ れ て い な い わ け で は な い か ら だ 。
sudoers 中 で コ マ ン ド ラ イ ン 引 き 数 に ワ イ ル ド カ ー ド を 使 用 す る と き は 、 注 意 し な け れ ば な ら な い 。 コ マ ン ド ラ イ ン 引 き 数 は 、 結 合 し て 一 つ の 文 字 列 に し た 上 で 、 マ ッ チ ン グ を 行 う 。 そ の た め 、 ’?’ や ’*’ と い っ た ワ イ ル ド カ ー ド 文 字 が 、 ユ ー ザ が 指 定 し た コ マ ン ド ラ イ ン 引 き 数 と 、 単 語 の 境 界 を ま た い で マ ッ チ し て し ま う こ と に な る の だ 。 こ れ は 想 定 外 の こ と か も し れ な い 。 た と え ば 、 sudoers に 次 の よ う な 行 が あ る と 、
%operator ALL = /bin/cat /var/log/messages* 以 下 の コ マ ン ド が 実 行 で き る こ と に な る が 、
$ sudo cat /var/log/messages.1 ま た 、 以 下 の コ マ ン ド の 実 行 も 可 能 に な っ て し ま う 。
$ sudo cat /var/log/messages /etc/shadow 後 者 は 、 お そ ら く 意 図 に 反 し て い る だ ろ う 。 た い て い の 場 合 、 コ マ ン ド ラ イ ン の 処 理 は 、 sudoers フ ァ イ ル の 中 で は な く 、 ス ク リ プ ト 言 語 中 で 行 っ た 方 が 間 違 い が な い 。 ワ イ ル ド カ ー ド ・ ル ー ル の 例 外 上 記 ル ー ル に は 以 下 の 例 外 が あ る 。
""
sudoers フ ァ イ ル の エ ン ト リ に お い て 、 空 文 字 列 "" が 唯 一 の コ マ ン ド ラ イ ン 引 き 数 だ っ た 場 合 は 、 そ の コ マ ン ド は 引 き 数 を 付 け ず に 実 行 し な け れ ば な ら な い こ と を 意 味 し て い る 。
sudoedit
組 み 込 み コ マ ン ド sudoedit に コ マ ン ド ラ イ ン で 渡 す 引 き 数 は 、 常 に パ ス 名 で あ る は ず だ 。 そ こ で 、 ワ イ ル ド カ ー ド は フ ォ ワ ー ド ス ラ ッ シ ュ (’/’) に マ ッ チ し な い よ う に な っ て い る (訳 注 : sudoers 中 で sudoedit に 対 し て 引 き 数 を 指 定 す る 場 合 、 そ れ は 一 般 の コ マ ン ド ラ イ ン 引 き 数 と 同 じ 扱 い で は な く 、 パ ス 名 扱 い に な る と い う こ と )。
sudoers
に 他 の フ ァ イ
ル を イ ン ク ル
ー ド す る
#include 命 令 や #includedir 命
令 を 使 え ば 、
現 在 解 析 中 の
sudoers フ ァ イ ル に
、 外 部 に あ る
ほ か の sudoers フ ァ
イ ル を イ ン ク
ル ー ド す る こ
と が で き る 。
こ の 方 法 を 使
え ば 、 た と え
ば 、 サ イ ト 全
体 で 使 用 す る
sudoers フ ァ イ ル の
ほ か に 、 マ シ
ン ご と の ロ ー
カ ル な sudoers フ ァ
イ ル を 持 つ こ
と が で き る 。
こ こ で は 、 サ
イ ト 全 体 の sudoers
フ ァ イ ル を
/etc/sudoers と し 、 マ
シ ン ご と の 方
は /etc/sudoers.local と す
る こ と に し よ
う 。 /etc/sudoers に
/etc/sudoers.local を イ ン
ク ル ー ド す る
に は 、 /etc/sudoers 中
に 次 の 行 を 書
き 込 め ば よ い
。
#include /etc/sudoers.local
sudo は 解 析 中 こ の 行 に 出 会 う と 、 カ レ ン ト フ ァ イ ル (/etc/sudoers だ ) の 処 理 を 一 時 中 止 し て 、 処 理 の 対 象 を /etc/sudoers.local に 切 り 替 え る 。 そ し て 、 /etc/sudoers.local の 末 尾 ま で 達 し た ら 、 /etc/sudoers の 残 り を 処 理 す る の で あ る 。 イ ン ク ル ー ド さ れ る フ ァ イ ル が 、 さ ら に 他 の フ ァ イ ル を イ ン ク ル ー ド し て い て も よ い 。 イ ン ク ル ー ト の ネ ス ト に は 、 128 フ ァ イ ル ま で と い う ハ ー ド ・ リ ミ ッ ト が あ っ て 、 イ ン ク ル ー ド フ ァ イ ル の ル ー プ が 起 き な い よ う に な っ て い る 。 イ ン ク ル ー ド フ ァ イ ル の パ ス が 絶 対 パ ス で な い 場 合 は (す な わ ち 、 パ ス が ’/’ で 始 ま っ て い な い 場 合 は )、 イ ン ク ル ー ド す る 側 の sudoers フ ァ イ ル と 同 じ デ ィ レ ク ト リ に 、 イ ン ク ル ー ド さ れ る フ ァ イ ル も 存 在 し な け れ ば な ら な い 。 た と え ば 、 /etc/sudoers に 次 の よ う な 行 が あ っ た ら 、
#include sudoers.local イ ン ク ル ー ド さ れ る フ ァ イ ル は 、 /etc/sudoers.local で あ る 。 な お 、 フ ァ イ ル 名 に は %h エ ス ケ ー プ が 使 え る 。 こ れ は ホ ス ト 名 の 短 縮 形 を 示 し て い る 。 た と え ば 、 マ シ ン の ホ ス ト 名 が "xerxes" の と き 、
#include /etc/sudoers.%h と 書 け ば 、 sudo は フ ァ イ ル /etc/sudoers.xerxes を イ ン ク ル ー ド す る こ と に な る 。
#includedir 命 令 を 使 え ば 、 sudoers.d デ ィ レ ク ト リ を 作 っ て お い て 、 シ ス テ ム の パ ッ ケ ー ジ 管 理 者 が パ ッ ケ ー ジ を イ ン ス ト ー ル す る 際 に sudoers の ル ー ル を 記 し た フ ァ イ ル を そ こ に 入 れ て や る 、 と い っ た こ と が 可 能 に な る 。 た と え ば 、 次 の よ う に 書 く と 、
#includedir /etc/sudoers.d
sudo は /etc/sudoers.d に あ る フ ァ イ ル を 一 つ づ つ 読 み 込 む 。 た だ し 、 末 尾 が ’~’ だ っ た り 、 ’.’ 文 字 を 含 ん で い た り す る フ ァ イ ル 名 は ス キ ッ プ す る が 、 こ れ は 、 パ ッ ケ ー ジ マ ネ ー ジ ャ や エ デ ィ タ が 作 っ た 、 テ ン ポ ラ リ フ ァ イ ル や バ ッ ク ア ッ プ フ ァ イ ル を 読 み 込 む よ う な 問 題 を 起 こ さ な い た め で あ る 。 フ ァ イ ル は 辞 書 順 に ソ ー ト さ れ て 、 解 析 さ れ る 。 す な わ ち 、 /etc/sudoers.d/01_first は /etc/sudoers.d/10_second よ り 前 に 解 析 さ れ る と い う こ と だ 。 ソ ー ト は 辞 書 順 で あ っ て 、 数 値 の 順 で は な い の で 、 /etc/sudoers.d/1_whoops と い う フ ァ イ ル が あ っ て も 、 /etc/sudoers.d/10_second よ り 後 で ロ ー ド さ れ る こ と に 注 意 し て い た だ き た い 。 フ ァ イ ル 名 の 先 頭 を 0 で 埋 め て 数 字 の 桁 を 揃 え れ ば 、 こ う し た 問 題 を 回 避 す る こ と が で き る 。 気 を つ け て い た だ き た い が 、 #include で イ ン ク ル ー ド さ れ た フ ァ イ ル と は 違 っ て (訳 注 : visudo は /etc/sudoers を 編 集 す る と き 、 #include で 指 定 し た フ ァ イ ル が あ れ ば 、 続 け て そ れ も 編 集 す る )、 visudo が #includedir で 指 定 し た デ ィ レ ク ト リ の フ ァ イ ル ま で 編 集 す る の は 、 シ ン タ ク ス エ ラ ー を 含 む も の が あ る と き だ け で あ る 。 と は 言 え 、 visudo を −f オ プ シ ョ ン 付 き で 実 行 し て 、 デ ィ レ ク ト リ 中 の フ ァ イ ル を 直 接 編 集 す る こ と は 可 能 だ が 、 そ の 場 合 は 、 他 の フ ァ イ ル で 定 義 さ れ て い る エ イ リ ア ス が 再 定 義 さ れ て い て も 、 そ れ を 見 つ け て 指 摘 し て く れ る こ と は な い 。 ほ か の 特 殊 文 字 と 予 約 語 パ ウ ン ド 記 号 (’#’) は コ メ ン ト を 示 す の に 使 用 さ れ る (例 外 は 、 #include 命 令 の 一 部 で あ る と き や 、 ユ ー ザ 名 に 関 連 し て 現 れ 、 そ の 後 に 一 個 以 上 の 数 字 が 続 く と き で あ り 、 後 者 の 場 合 は uid と 見 な さ れ る )。 コ メ ン ト 記 号 と そ れ に 続 く テ キ ス ト は 、 行 末 に い た る ま で 無 視 さ れ る 。 予 約 語 ALL は 組 込 み の エ イ リ ア ス で あ り 、 何 に 対 し て で も マ ッ チ す る 。 ALL は 、 Cmnd_Alias, User_Alias, Runas_Alias, Host_Alias を 代 わ り に 使 え る と こ ろ な ら 、 ど こ で も 使 用 で き る 。 ALL と い う 名 前 の エ イ リ ア ス を 自 分 で 定 義 し よ う と し て は い け な い 。 組 込 み の エ イ リ ア ス の 方 が 、 自 分 で 作 っ た エ イ リ ア ス よ り 優 先 し て 使 わ れ る か ら だ 。 ALL の 使 用 に は 危 険 が 伴 う こ と が あ る の を 忘 れ な い で い た だ き た い 。 な ぜ な ら 、 ALL を コ マ ン ド に 関 し て 使 う と 、 ユ ー ザ に シ ス テ ム 上 の ど ん な コ マ ン ド で も 実 行 す る こ と を 許 し て し ま う か ら で あ る 。 エ ク ス ク ラ メ ー シ ョ ン マ ー ク (’!’) は 、 リ ス ト や エ イ リ ア ス 中 は も ち ろ ん 、 Cmnd の 前 で も 論 理 not 演 算 子 と し て 使 用 す る こ と が で き る 。 こ れ に よ っ て あ る 値 を 除 外 す る こ と が 可 能 に な る わ け だ 。 た だ し 、 ’!’ 演 算 子 が 効 果 を 持 つ た め に は 、 そ こ か ら 除 外 す る 対 象 が 存 在 し な け れ ば な ら な い 。 た と え ば 、 root 以 外 の す べ て の ユ ー ザ に マ ッ チ さ せ た い 場 合 は 、 次 の 表 現 を 使 用 す る 。
ALL,!root 次 の よ う に ALL の 記 述 を 省 く と 、
!root 確 か に root を 明 示 的 に 否 定 す る こ と に は な る が 、 他 の ど ん な ユ ー ザ と も マ ッ チ す る こ と が な い 。 こ の 点 が 、 正 真 の 「 否 定 」 演 算 子 と は 違 っ て い る 。 と は 言 え 、 組 込 み エ イ リ ア ス ALL と ’!’ を 組 み 合 わ せ て 、 「 二 三 の コ マ ン ド 以 外 の す べ て の 」 コ マ ン ド の 実 行 を あ る ユ ー ザ に 許 可 し よ う と し て も 、 意 図 ど お り の 動 き に な る こ と は め っ た に な い こ と に 気 を つ け て い た だ き た い (下 記 の 「 セ キ ュ リ テ ィ に 関 す る 注 意 点 」 を 参 照 )。 長 い 行 は 、 行 末 に バ ッ ク ス ラ ッ シ ュ ’\’ を 置 け ば 、 継 続 す る こ と が で き る 。 リ ス ト に お け る 要 素 間 や ユ ー ザ 設 定 に お け る 構 文 用 特 殊 文 字 (’=’, ’:’, ’(’, ’)’) の 前 後 に 空 白 (white space) を 入 れ る こ と は 、 任 意 で あ る 。 次 の 文 字 を 単 語 (ユ ー ザ 名 と か ホ ス ト 名 と か ) の 一 部 と し て 使 う と き は 、 バ ッ ク ス ラ ッ シ ュ (’\’) で エ ス ケ ー プ し な け れ ば な ら な い 。 ’!’, ’=’, ’:’, ’,’, ’(’, ’)’, ’\’ が そ れ で あ る 。
SUDOERS の オ プ シ ョ ン
す で に 説 明 し た よ う に 、 sudo の 動 作 は Default_Entry 行 に よ っ て 変 更 す る こ と が で き る 。 Defaults に 与 え る こ と の で き る パ ラ メ ー タ に つ い て 、 サ ポ ー ト さ れ て い る も の の す べ て を 、 タ イ プ 別 に ま と め て 以 下 に 列 挙 す る 。 ブ ー リ ア ン ・ フ ラ グ (真 偽 値 )
always_query_group_plugin
group_plugin の 設 定 が な さ れ て い る 場 合 に 、 %group の 形 式 の グ ル ー プ を 解 決 す る の に 、 同 名 の シ ス テ ム ・ グ ル ー プ が 同 時 に 存 在 し な い か ぎ り 、 指 定 さ れ た group_plugin を 使 用 す る 。 always_query_group_plugin が 設 定 さ れ て い な い 通 常 の 状 態 で は 、 %:group の 形 式 の グ ル ー プ の み が group_plugin に 渡 さ れ る の で あ る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
always_set_home こ れ を 有 効 に す る と 、
sudo は 環 境 変 数 HOME を 変 身 対 象
ユ ー ザ の (−u オ プ シ ョ ン が 使 用 さ れ て い な い か ぎ り 、 root の ) ホ ー ム デ ィ レ ク ト リ に 設 定 す る こ と に な る 。 事 実 上 、 暗 黙 の う ち に sudo に −H オ プ シ ョ ン が 常 に 指 定 さ れ る こ と に な る わ け だ 。 気 を つ け て い た だ き た い が 、 デ フ ォ ル ト で は 、 env_reset オ プ シ ョ ン が 有 効 に な っ て い る 場 合 は 、 HOME の 値 は 、 変 身 対 象 ユ ー ザ の ホ ー ム デ ィ レ ク ト リ に 設 定 さ れ る こ と に な る 。 だ か ら 、 always_set_home の 指 定 に 効 果 が あ る の は 、 env_reset を 無 効 に 設 定 し て い る 場 合 か 、 env_keep の リ ス ト に HOME が 存 在 す る 場 合 だ け で あ る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
authenticate こ れ を セ ッ ト す る と 、 ユ ー ザ は コ マ ン ド の 実 行 を 許 可 さ れ る 前 に 、 パ ス ワ ー ド で
(あ る い
は 、 ほ か の 認
証 方 法 で ) 自 分
が 本 人 で あ る
こ と を 証 明 し
な け れ ば な ら
な く な る 。 こ
の デ フ ォ ル ト
値 は PASSWD や NOPASSWD タ グ
で 変 更 で き る
。 こ の フ ラ グ
は デ フ ォ ル ト
で は on で あ る
。
closefrom_override こ れ を セ
ッ ト す る と 、
ユ ー ザ が sudo の
−C オ プ シ ョ ン
を 使 用 で き る
よ う に な る 。
−C オ プ シ ョ ン
と い う の は 、
sudo が 開 い て い
る フ ァ イ ル ・
デ ィ ス ク リ プ
タ を 閉 じ て い
く と き 、 ど の
デ ィ ス ク リ プ
タ か ら 閉 じ て
い く か と い う
、 デ フ ォ ル ト
の 始 点 を 変 更
す る も の だ 。
こ の フ ラ グ は
デ フ ォ ル ト で
は off で あ る 。
compress_io こ れ を セ ッ ト す る と 、
sudo が コ マ ン ド の 入 出 力 の ロ グ を
取 る よ う に 設 定 さ れ て い る 場 合 に 、 入 出 力 の ロ グ を zlib を 使 っ て 、 圧 縮 す る こ と に な る 。 sudo が zlib を サ ポ ー ト す る よ う に コ ン パ イ ル さ れ て い る 場 合 、 こ の フ ラ グ の デ フ ォ ル ト は on で あ る 。
exec_background デ フ ォ ル ト で は 、
sudo 自 体 が フ ォ ア グ ラ ウ ン ド で 実 行 さ れ
て い る か ぎ り 、 コ マ ン ド は sudo に よ っ て フ ォ ア グ ラ ウ ン ド ・ プ ロ セ ス と し て 実 行 さ れ る 。 そ れ に 対 し て 、 exec_background フ ラ グ が 有 効 に な っ て い る 場 合 は 、 コ マ ン ド が (入 出 力 ロ ギ ン グ や use_pty フ ラ グ の た め に ) pty で 実 行 さ れ て い る と 、 そ の コ マ ン ド は バ ッ ク グ ラ ウ ン ド ・ プ ロ セ ス と し て 実 行 さ れ る こ と に な る 。 こ の と き 、 そ の コ マ ン ド が 制 御 タ ー ミ ナ ル か ら 読 み 込 み を 行 お う と す る と (あ る い は 、 タ ー ミ ナ ル の 設 定 を 変 更 し よ う と す る と ) 、 コ マ ン ド は SIGTTIN シ グ ナ ル (タ ー ミ ナ ル 設 定 の 場 合 は SIGTTOU シ グ ナ ル ) に よ っ て サ ス ペ ン ド さ れ る 。 そ う し た こ と が 起 き て も 、 sudo が フ ォ ア グ ラ ウ ン ド ・ プ ロ セ ス な ら ば 、 そ の コ マ ン ド は 制 御 タ ー ミ ナ ル の 使 用 を 許 可 さ れ 、 ユ ー ザ が 何 の 操 作 を し な い で も 、 フ ォ ア グ ラ ウ ン ド で 実 行 が 再 開 さ れ る 。 コ マ ン ド の 実 行 を バ ッ ク グ ラ ウ ン ド で 始 め る こ と の 利 点 は 、 そ う す れ ば 、 コ マ ン ド が 明 示 的 に 要 求 し な い か ぎ り 、 sudo は タ ー ミ ナ ル か ら 読 み 込 み を 行 う 必 要 が な い と い う こ と で あ る 。 そ う し な い 場 合 は 、 コ マ ン ド が 入 力 を 要 求 し て い る か 否 か に 関 わ り な く 、 い か な る 入 力 も コ マ ン ド に 渡 さ な け れ ば な ら な い の だ (カ ー ネ ル が タ ー ミ ナ ル の バ ッ フ ァ リ ン グ を し て い る の で 、 コ マ ン ド が 本 当 に そ の 入 力 を 必 要 と し て い る か ど う か を 、 判 断 す る こ と は で き な い の で あ る )。 こ の 動 作 は 、 従 来 の sudo の 動 作 と は 異 な っ て い る 。 ま た 、 コ マ ン ド が pty で 実 行 さ れ て い な い と き の 動 作 と も 異 な っ て い る 。 こ の 動 作 が シ ー ム レ ス に 行 わ れ る た め に は 、 オ ペ レ ー テ ィ ン グ シ ス テ ム が 、 シ ス テ ム コ ー ル の 自 動 的 な 再 ス タ ー ト を サ ポ ー ト し て い な け れ ば な ら な い 。 残 念 な こ と に 、 す べ て の オ ペ レ ー テ ィ ン グ シ ス テ ム が 、 デ フ ォ ル ト で そ れ を 行 っ て く れ る わ け で は な く 、 そ れ を 行 っ て く れ る オ ペ レ ー テ ィ ン グ シ ス テ ム に も 、 バ グ が あ る こ と が あ る 。 た と え ば 、 Mac OS X は 、 tcgetattr() や tcsetattr() シ ス テ ム コ ー ル の 再 ス タ ー ト に 失 敗 す る (こ れ は Mac OS X の バ グ で あ る )。 そ れ だ け で は な く 、 こ の 動 作 は 、 コ マ ン ド が SIGTTIN や SIGTTOU シ グ ナ ル で 停 止 す る こ と を 当 て に し て い る の で 、 そ う し た シ グ ナ ル は 捕 獲 し 、 別 の シ グ ナ ル (た い て い は SIGSTOP) で 自 分 を 停 止 さ せ る プ ロ グ ラ ム は 、 自 動 的 に フ ォ ア グ ラ ウ ン ド 化 で き な い 。 linux の su(1) コ マ ン ド の 動 作 が 、 系 統 に よ っ て は 、 そ ん な ふ う に な っ て い る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。 こ の 設 定 は 、 バ ー ジ ョ ン 1.8.7 以 上 で の み サ ポ ー ト さ れ て い る 。 ま た 、 入 出 力 ロ ギ ン グ が 有 効 に な っ て い る 場 合 や 、 use_pty フ ラ グ が 有 効 に な っ て い る 場 合 以 外 、 こ の 設 定 に は 効 果 が な い 。
env_editor こ れ を セ ッ ト す る と 、
visudo は デ フ ォ ル ト の エ デ ィ タ ・ リ
ス ト を 利 用 す る 前 に 、 環 境 変 数 EDITOR や VISUAL の 値 を 使 用 す る よ う に な る 。 そ れ が セ キ ュ リ テ ィ ホ ー ル に な り か ね な い こ と に 注 意 し て い た だ き た い 。 ユ ー ザ が root と し て 任 意 の コ マ ン ド を 、 ロ グ に 記 録 さ れ る こ と な く 実 行 で き る よ う に な る か ら だ 。 こ う し た 環 境 変 数 を 利 用 す る と き の 、 env_editor を 有 効 に す る よ り も 安 全 な 方 法 は 、 sudoers フ ァ イ ル の editor オ プ シ ョ ン に コ ロ ン で 区 切 っ た エ デ ィ タ の リ ス ト を 書 い て お く こ と だ 。 そ う す れ ば 、 visudo が EDITOR や VISUAL を 使 う の は 、 そ れ が editor オ プ シ ョ ン に 指 定 し た 値 と マ ッ チ し た と き だ け に な る 。 env_reset フ ラ グ が 有 効 な 場 合 に 、 sudo 経 由 で visudo を 起 動 し た と き env_editor フ ラ グ が 効 果 を 持 つ た め に は 、 環 境 変 数 EDITOR や VISUAL が env_keep の リ ス ト に 存 在 し て い な け れ ば な ら な い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
env_reset こ れ を セ ッ ト す る と 、
sudo は 最 小 限 の 環 境 で コ マ ン ド を 実
行 す る こ と に な る 。 そ の 環 境 に は 、 以 下 の 変 数 が 含 ま れ て い る 。 TERM, PATH, HOME, MAIL, SHELL, LOGNAME, USER, USERNAME、 及 び SUDO_* と い う 変 数 。 そ れ に 、 sudo を 起 動 す る ユ ー ザ の 環 境 に あ る 変 数 の う ち 、 env_keep や env_check の リ ス ト に マ ッ チ す る も の が 加 わ り 、 さ ら に 、 env_file オ プ シ ョ ン に よ っ て 指 定 さ れ た フ ァ イ ル が あ れ ば 、 そ の フ ァ イ ル に 記 載 さ れ た す べ て の 変 数 が 追 加 さ れ る 。 env_keep や env_check の リ ス ト に ど ん な 変 数 が 存 在 す る か に つ い て は 、 root ユ ー ザ と し て sudo に −V オ プ シ ョ ン を 付 け て 実 行 す れ ば 、 sudoers 中 で グ ロ ー バ ル な Defaults パ ラ メ ー タ に よ っ て 変 更 さ れ た 結 果 を 、 見 る こ と が で き る 。 な お 、 secure_path オ プ シ ョ ン が 設 定 さ れ て い る と き は 、 そ の 値 が 環 境 変 数 PATH の 値 と し て 使 用 さ れ る 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。
fast_glob 通 常
sudo は パ ス 名 の マ ッ チ ン グ を す る と き 、 glob(3)関 数
を 使 用 し て 、 シ ェ ル ・ ス タ イ ル の ワ イ ル ド カ ー ド 展 開 (glob) を 行 う 。 し か し 、 glob(3) は フ ァ イ ル シ ス テ ム に ア ク セ ス す る の で 、 指 定 パ タ ー ン に よ っ て は 、 作 業 を 完 了 す る ま で に 時 間 が か か る こ と が あ る 。 必 要 な 時 に マ ウ ン ト す る よ う に な っ て い る (つ ま り オ ー ト マ ウ ン ト の ) ネ ッ ト ワ ー ク ・ フ ァ イ ル ・ シ ス テ ム を 参 照 す る と き は 、 と り わ け 時 間 が か か る 。 fast_glob オ プ シ ョ ン を 指 定 す る と 、 sudo が fnmatch(3) 関 数 を 使 う よ う に な る が 、 こ ち ら の 関 数 は マ ッ チ ン グ を 行 う 際 に フ ァ イ ル シ ス テ ム に ア ク セ ス し な い 。 fast_glob の 欠 点 は 、 ./ls や ../bin/ls の よ う な 相 対 パ ス に 対 す る マ ッ チ が で き な い こ と で あ る 。 そ の た め 、 ワ イ ル ド カ ー ド を 含 む パ ス 名 が 、 否 定 演 算 子 ’!’ と 一 緒 に 使 わ れ て い る 場 合 に 、 セ キ ュ リ テ ィ 上 の 問 題 が 生 じ る お そ れ が あ る 。 そ う し た ル ー ル は 簡 単 に 迂 回 で き る か ら だ 。 従 っ て 、 sudoers フ ァ イ ル に 、 ワ イ ル ド カ ー ド を 含 む パ ス 名 を 否 定 す る ル ー ル が 存 在 す る 場 合 は 、 こ の オ プ シ ョ ン を 使 っ て は い け な い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
fqdn ロ ー カ ル ・ ホ ス ト 名
(hostname コ マ ン ド が 返 す も の ) が ド
メ イ ン 名 を 含 ま な い と き 、 sudoers フ ァ イ ル で 完 全 修 飾 ホ ス ト 名 を 使 用 し た か っ た ら 、 こ の フ ラ ッ グ を セ ッ ト す る と よ い 。 す な わ ち 、 myhost で は な く 、 myhost.mydomain.edu を 使 い た い 場 合 だ 。 そ の と き で も 、 そ う し た け れ ば 、 短 縮 形 も 使 用 で き る (両 方 を 混 ぜ て 使 う こ と も で き る )。 こ の オ プ シ ョ ン に 効 果 が あ る の は 、 getaddrinfo() や gethostbyname() 関 数 が 返 す ホ ス ト の 「 正 規 名 (canonical name)」 が 、 完 全 修 飾 ド メ イ ン 名 で あ る と き だ け で あ る 。 シ ス テ ム が ホ ス ト 名 の 解 決 に DNS を 使 用 す る よ う に 設 定 さ れ て い る と き は 、 普 通 そ う な る 。 シ ス テ ム が DNS よ り も 優 先 し て /etc/hosts を 使 用 す る よ う に 設 定 さ れ て い る 場 合 、 ホ ス ト の 正 規 名 は 完 全 修 飾 名 で は な い か も し れ な い 。 ホ ス ト 名 解 決 の た め に 問 い 合 わ せ る 情 報 源 の 順 番 は 、 普 通 /etc/nsswitch.conf, /etc/netsvc.conf, /etc/host.conf フ ァ イ ル で 指 定 さ れ て い る 。 /etc/resolv.conf の こ と も あ る 。 /etc/hosts フ ァ イ ル で は 、 エ ン ト リ の 最 初 の ホ ス ト 名 が 正 規 名 と 見 な さ れ る 。 後 に 続 く 名 前 は エ イ リ ア ス で あ り 、 sudoers に よ っ て 使 用 さ れ る こ と は な い 。 た と え ば 、 hosts フ ァ イ ル に "xyzzy" と い う マ シ ン に つ い て 下 記 の 行 が あ る と き 、 完 全 修 飾 ド メ イ ン 名 が ホ ス ト の 正 規 名 で あ り 、 短 い 方 の 名 前 は エ イ リ ア ス で あ る 。
192.168.1.1 xyzzy.sudo.ws xyzzy
hosts フ ァ イ ル に お け る マ シ ン の エ ン ト リ の 書 式 が 不 適 切 だ と 、 hosts フ ァ イ ル へ の 問 い 合 わ せ が DNS よ り 前 に 行 わ れ る 場 合 、 fqdn オ プ シ ョ ン を 指 定 し て も 、 効 果 が な い 。 気 を 付 け て ほ し い の は 、 ホ ス ト 名 の 解 決 に DNS を 使 用 す る 場 合 、 fqdn 有 効 に す る と 、 sudoers は DNS に 問 い 合 わ せ を し な け れ ば な ら な い の で 、 DNS が 稼 働 し て い な い と (た と え ば 、 マ シ ン が ネ ッ ト ワ ー ク か ら 切 り 離 さ れ て い る と )、 sudo が 使 え な く な る と い う こ と で あ る 。 も う 一 つ 気 を 付 け る べ き こ と が あ る 。 hosts フ ァ イ ル を 使 用 す る 場 合 と 同 じ こ と だ が 、 DNS が 知 っ て い る ホ ス ト の 正 規 名 を 使 わ な け れ ば な ら な い 。 言 い 換 え れ ば 、 ホ ス ト の エ イ リ ア ス (CNAME の エ ン ト リ ) を 使 っ て は い け な い 。 パ フ ォ ー マ ン ス の 問 題 も あ る し 、 DNS か ら エ イ リ ア ス を す べ て 取 得 す る 方 法 は な い か ら で も あ る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
ignore_dot こ れ を セ ッ ト す る と 、 環 境 変 数
PATH 中 に "." や "" (ど
ち ら も カ レ ン ト デ ィ レ ク ト リ を 意 味 す る ) が あ っ て も 、 sudo は そ れ を 無 視 す る 。 PATH そ の も の は 変 更 さ れ な い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
ignore_local_sudoers
LDAP の 方 で こ の フ ラ グ を セ ッ ト す る と 、 /etc/sudoers の 解 析 が ス キ ッ プ さ れ る こ と に な る 。 こ の フ ラ グ は 、 ロ ー カ ル に あ る sudoers フ ァ イ ル の 使 用 を 禁 じ て 、 LDAP の み を 使 う よ う に し た い 諸 企 業 の た め に あ る 。 た ち の 悪 い オ ペ レ ー タ が /etc/sudoers に 手 を 加 え て 、 自 分 の 権 限 を 増 や そ う と し て も 、 そ う し た 悪 だ く み は 阻 止 さ れ る わ け だ 。 こ の オ プ シ ョ ン が 設 定 さ れ て い る と き は 、 /etc/sudoers フ ァ イ ル は 存 在 す る 必 要 す ら な い 。 こ の オ プ シ ョ ン は 、 LDAP 中 に 、 マ ッ チ す る 特 定 の エ ン ト リ が 存 在 し な か っ た と き に 、 い か に 振 舞 う べ き か を sudo に 指 示 す る も の だ か ら 、 こ れ を 指 定 す る sudoOption は 、 cn=defaults の セ ク シ ョ ン に な け れ ば 意 味 が な い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
insults こ れ を セ ッ ト す る と 、 不 正 な パ ス ワ ー ド が 入 力 さ れ た と き 、
sudo が ユ ー ザ に 悪 態 を つ く 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
log_host こ れ を セ ッ ト す る と 、 ホ ス ト 名 が
(syslog 経 由 で は な い )
sudo の ロ グ フ ァ イ ル に 記 録 さ れ る こ と に な る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
log_input こ れ を セ ッ ト す る と 、
sudo は 、 擬 似 tty で コ マ ン ド を 実
行 し 、 ユ ー ザ の 入 力 を す べ て ロ グ に 取 る こ と に な る 。 入 出 力 が リ ダ イ レ ク ト さ れ て い る と か 、 コ マ ン ド が パ イ プ ラ イ ン の 一 部 だ と か い う 理 由 で 、 標 準 入 力 が ユ ー ザ の tty に 結 び つ け ら れ て い な い 場 合 で も 、 そ の 入 力 は や は り キ ャ プ チ ャ ー さ れ 、 独 立 し た ロ グ フ ァ イ ル に 書 き 込 ま れ る 。 よ り 詳 し い 情 報 に つ い て は 、 「 入 出 力 ロ グ フ ァ イ ル 」 セ ク シ ョ ン を ご 覧 に な る と よ い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
log_output こ れ を セ ッ ト す る と 、
sudo は 、 擬 似 tty で コ マ ン ド を 実
行 し 、 ス ク リ ー ン に 送 ら れ た す べ て の 出 力 を ロ グ に 取 る こ と に な る 。 script(1) コ マ ン ド と 似 た こ と を や る わ け だ 。 よ り 詳 し い 情 報 に つ い て は 、 「 入 出 力 ロ グ フ ァ イ ル 」 セ ク シ ョ ン を ご 覧 に な る と よ い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
log_year こ れ を セ ッ ト す る と 、 四 桁 の 年 が
(syslog 経 由 で は な い )
sudo の ロ グ フ ァ イ ル に 記 入 さ れ る こ と に な る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
long_otp_prompt
S/Key や OPIE の よ う な One Time Password (OTP) ス キ ー ム を 採 用 し て い る と き に こ れ を 有 効 に す る と 、 チ ャ レ ン ジ を ロ ー カ ル ウ ィ ン ド ウ に カ ッ ト ・ ア ン ド ・ ペ ー ス ト し や す い よ う に 、 二 行 の プ ロ ン プ ト が 使 用 さ れ る 。 デ フ ォ ル ト の プ ロ ン プ ト ほ ど 見 栄 え は よ く な い が 、 こ ち ら の 方 が 便 利 だ と 思 う 人 も い る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
mail_all_cmnds
ユ ー ザ が sudo 経 由 で コ マ ン ド の 実 行 を 試 み る た び に (sudoedit の 実 行 も 含 む )、 mailto ユ ー ザ に メ ー ル を 送 付 す る 。 た だ し 、 ユ ー ザ が sudo に −l や −v オ プ シ ョ ン を 付 け て 実 行 し た と き は 、 認 証 エ ラ ー が あ り 、 し か も mail_badpass フ ラ グ が セ ッ ト さ れ て い な い か ぎ り 、 メ ー ル を 送 付 す る こ と は な い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
mail_always
ユ ー ザ
が sudo を 実 行 す
る た び に 、 mailto
ユ ー ザ に メ ー
ル を 送 る 。 こ
の フ ラ グ は デ
フ ォ ル ト で は
off で あ る 。
mail_badpass
sudo を 実 行 す る ユ ー ザ が 正 し い パ ス ワ ー ド を 入 力 し な か っ た ら 、 mailto ユ ー ザ に メ ー ル を 送 付 す る 。 ユ ー ザ が 実 行 し よ う と し て い る コ マ ン ド が sudoers に よ っ て 許 可 さ れ て い な い 場 合 に 、 mail_all_cmnds, mail_always, mail_no_host, mail_no_perms, mail_no_user フ ラ グ の ど れ か が セ ッ ト さ れ て い る と 、 こ の フ ラ グ は 効 果 を 持 た な い こ と に な る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
mail_no_host
こ れ を セ ッ ト す る と 、 sudo を 起 動 し た ユ ー ザ が sudoers フ ァ イ ル に 記 載 さ れ て は い る も の の 、 使 用 中 の ホ ス ト で コ マ ン ド の 実 行 を 許 可 さ れ て い な い 場 合 に 、 mailto ユ ー ザ に メ ー ル を 送 付 す る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
mail_no_perms
こ れ を セ ッ ト す る と 、 sudo を 起 動 し た ユ ー ザ が sudo の 使 用 を 許 可 さ れ て い る が 、 実 行 し よ う と し て い る コ マ ン ド が sudoers フ ァ イ ル の そ の ユ ー ザ の エ ン ト リ に 登 録 さ れ て い な い か 、 明 示 的 に 禁 止 さ れ て い る 場 合 に 、 mailto ユ ー ザ に メ ー ル を 送 付 す る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
mail_no_user
こ れ を セ ッ ト す る と 、 sudo を 起 動 し た ユ ー ザ が sudoers フ ァ イ ル に 記 載 さ れ て い な い 場 合 に 、 mailto ユ ー ザ に メ ー ル を 送 付 す る 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。
netgroup_tuple
こ れ を セ ッ ト す る と 、 ネ ッ ト グ ル ー プ の 検 索 が ネ ッ ト グ ル ー プ の タ プ ル 全 部 を 使 っ て 行 わ れ る こ と に な る (す な わ ち 、 ホ ス ト 名 、 ユ ー ザ 名 、 ド メ イ ン の 三 つ が 、 そ れ ぞ れ 設 定 さ れ て い る な ら ば 、 使 用 さ れ る )。 従 来 の sudo で は 、 User_List で 使 用 さ れ る ネ ッ ト グ ル ー プ に つ い て は 、 ユ ー ザ 名 と ド メ イ ン だ け を 照 合 し 、 Host_List で 使 用 さ れ る ネ ッ ト グ ル ー プ に つ い て は 、 ホ ス ト 名 と ド メ イ ン だ け を 照 合 し て い た 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
noexec
こ れ を セ ッ ト す る と 、 sudo を 通 し て 実 行 さ れ る す べ て の コ マ ン ド が 、 EXEC タ グ で 無 効 に さ れ な い か ぎ り 、 あ た か も NOEXEC タ グ が 設 定 さ れ て い る か の ご と く 振 舞 う よ う に な る 。 前 述 の 「 EXEC と NOEXEC」 の 説 明 、 お よ び 、 こ の マ ニ ュ ア ル の 終 わ り の 方 に あ る 「 シ ェ ル ・ エ ス ケ ー プ の 防 止 」 と い う セ ク シ ョ ン を 参 照 し て い た だ き た い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
pam_session
認 証 に PAM を 使 用 す る シ ス テ ム で は 、 sudo は 新 し い PAM セ ッ シ ョ ン を 作 成 し 、 そ の 中 で コ マ ン ド を 実 行 す る 。 PAM の 実 装 が 古 い 場 合 や 、 PAM セ ッ シ ョ ン の 開 始 が utmp や wtmp フ ァ イ ル を 変 更 す る オ ペ レ ー テ ィ ン グ シ ス テ ム で は 、 pam_session を 無 効 に す る 必 要 が あ る か も し れ な い 。 た だ し 、 PAM セ ッ シ ョ ン の サ ポ ー ト を 無 効 に す る と 、 実 行 さ れ る コ マ ン ド に 対 す る リ ソ ー ス の 上 限 が 更 新 さ れ な い か も し れ な い 。 な お 、 pam_session, pam_setcred, use_pty が 無 効 に な っ て い て 、 し か も 入 出 力 ロ ギ ン グ が 設 定 さ れ て い な い 場 合 は 、 sudo は コ マ ン ド を 子 プ ロ セ ス と し て で は な く 、 直 接 実 行 す る 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。 こ の 設 定 は 、 バ ー ジ ョ ン 1.8.7 以 上 で の み サ ポ ー ト さ れ て い る 。
pam_setcred
認 証 に PAM を 使 用 す る シ ス テ ム で は 、 sudo は デ フ ォ ル ト で は 、 使 用 し て い る 認 証 シ ス テ ム が サ ポ ー ト し て い る な ら 、 変 身 対 象 ユ ー ザ の 認 証 情 報 (credential) が 有 効 で あ る こ と を 確 認 し よ う と す る 。 認 証 情 報 の 例 を 一 つ 挙 げ れ ば 、 Kerberos の チ ケ ッ ト が そ れ で あ る 。 pam_session, pam_setcred, use_pty が 無 効 に な っ て い て 、 し か も 入 出 力 ロ ギ ン グ が 設 定 さ れ て い な い 場 合 は 、 sudo は コ マ ン ド を 子 プ ロ セ ス と し て で は な く 、 直 接 実 行 す る 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。 こ の 設 定 は 、 バ ー ジ ョ ン 1.8.8 以 上 で の み サ ポ ー ト さ れ て い る 。
passprompt_override 通 常 、 passprompt オ プ シ ョ ン に よ っ て 指 定 さ れ た パ ス ワ ー ド プ ロ ン プ ト が 使 用 さ れ る の は 、 PAM の よ う な シ ス テ ム が 用 意 し て い る パ ス ワ ー ド プ ロ ン プ ト が 、 "Password:" と い う 文 字 列 に マ ッ チ し て い る と き だ け で あ る 。 passprompt_override を セ ッ ト す る と 、 passprompt が 無 条 件 で 使 わ れ る こ と に な る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
path_info 通 常
sudo は 、 環 境 変 数 PATH 中 に コ マ ン ド が 見 付 か ら な
い と 、 ユ ー ザ に そ の 旨 を 知 ら せ る 。 こ れ を 利 用 す れ ば 、 一 般 ユ ー ザ に ア ク セ ス 権 の な い 実 行 フ ァ イ ル の あ り か に つ い て 情 報 を 収 集 で き る と い う 理 由 か ら 、 こ の 動 作 を 無 効 に し た い サ イ ト も あ る か も し れ な い 。 そ の 場 合 の 欠 点 は 、 実 行 フ ァ イ ル が 単 に ユ ー ザ の PATH 中 に な か っ た だ け の 場 合 で も 、 実 行 の 許 可 が な い と sudo が ユ ー ザ に 告 げ る こ と に な っ て 、 実 情 が わ か り に く い か も し れ な い こ と で あ る 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。
preserve_groups デ フ ォ ル ト で は 、
sudo は 所 属 グ ル ー プ の 初 期 値 と し て 、
変 身 対 象 ユ ー ザ が 所 属 し て い る グ ル ー プ の リ ス ト を 設 定 す る 。 preserve_groups を セ ッ ト す る と 、 sudo を 実 行 す る ユ ー ザ の 所 属 グ ル ー プ の リ ス ト が 、 変 更 さ れ ず に そ の ま ま 維 持 さ れ る 。 と は 言 え 、 実 グ ル ー プ ID や 実 効 グ ル ー プ ID が 、 変 身 対 象 ユ ー ザ の そ れ に 設 定 さ れ る こ と に 変 わ り は な い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
pwfeedback ほ か の た い て い の
Unix の プ ロ グ ラ ム と 同 様 、 sudo は パ
ス ワ ー ド を 読 み 込 む と き 、 デ フ ォ ル ト で は 、 ユ ー ザ が Return (ま た は Enter) キ ー を 押 す ま で 、 エ コ ー を off に す る 。 こ の 動 作 に と ま ど う ユ ー ザ が 存 在 す る 。 彼 ら に は sudo が 急 に 反 応 し な く な っ た よ う に 見 え る の だ 。 pwfeedback を セ ッ ト す る と 、 ユ ー ザ が キ ー を 押 す た び に 、 sudo が 目 に 見 え る 反 応 を 返 す よ う に な る 。 こ れ に は 、 セ キ ュ リ テ ィ 上 の 問 題 が あ る こ と に 注 意 し て い た だ き た い 。 側 で 見 て い る 人 が 、 打 ち 込 ま れ た パ ス ワ ー ド の 文 字 数 を 特 定 で き て し ま う か も し れ な い の だ 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
requiretty こ れ を セ ッ ト す る と 、
sudo が 実 行 さ れ る の は 、 ユ ー ザ が 実
際 の tty に ロ グ イ ン し た と き だ け に な る 。 す な わ ち 、 sudo を 実 行 で き る の は 、 ロ グ イ ン ・ セ ッ シ ョ ン か ら だ け で あ っ て 、 cron(8) や cgi−bin ス ク リ プ ト と い っ た 、 ほ か の 方 法 を 介 し て 実 行 す る こ と は で き な い と い う こ と だ 。 こ の フ ラ グ は 、 デ フ ォ ル ト で は off で あ る 。
root_sudo こ れ を セ ッ ト す る と 、
root も sudo を 実 行 で き る よ う に な
る 。 こ の フ ラ グ を 無 効 に す る と 、 ユ ー ザ が た と え ば "sudo sudo /bin/sh" と い っ た よ う に sudo コ マ ン ド を 「 連 鎖 的 に 」 使 っ て 、 ル ー ト シ ェ ル を 獲 得 す る こ と が で き な く な る 。 と こ ろ で 、 root_sudo が off だ と 、 root が sudoedit ま で 実 行 で き な く な る こ と に 注 意 し て い た だ き た い 。 root_sudo を 無 効 に し て も 、 セ キ ュ リ テ ィ が 実 際 に 向 上 す る わ け で は な い 。 こ の フ ラ グ が 存 在 し て い る の は 、 も っ ぱ ら 歴 史 的 な 理 由 か ら な の だ 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。
rootpw こ れ を セ ッ ト す る と 、
sudo は 、 コ マ ン ド を 実 行 し た り 、
フ ァ イ ル を 編 集 し た り す る と き 、 起 動 し た ユ ー ザ の パ ス ワ ー ド で は な く 、 root の パ ス ワ ー ド を 要 求 す る よ う に な る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
runaspw こ れ を セ ッ ト す る と 、
sudo は 、 コ マ ン ド を 実 行 し た り 、
フ ァ イ ル を 編 集 し た り す る と き 、 起 動 し た ユ ー ザ の パ ス ワ ー ド で は な く 、 sudoers フ ァ イ ル の runas_default オ プ シ ョ ン で 指 定 し て い る ユ ー ザ ー の (デ フ ォ ル ト で は root で あ る ) パ ス ワ ー ド を 要 求 す る よ う に な る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
set_home こ れ が 有 効 な と き に
sudo を −s オ プ シ ョ ン 付 き で 起 動 す
る と 、 環 境 変 数 HOME が 変 身 対 象 ユ ー ザ の (−u オ プ シ ョ ン が 使 用 さ れ な い か ぎ り 、 そ れ は root で あ る ) ホ ー ム デ ィ レ ク ト リ に 設 定 さ れ る 。 す な わ ち 、 −s オ プ シ ョ ン が −H オ プ シ ョ ン を 事 実 上 兼 ね る こ と に な る わ け だ 。 気 を つ け て ほ し い の は 、 env_reset が 有 効 な 場 合 、 HOME は す で に (訳 注 : 変 身 対 象 ユ ー ザ の ホ ー ム デ ィ レ ク ト リ に ) 設 定 済 み だ と い う こ と だ 。 だ か ら 、 set_home の 効 果 が あ る の は 、 env_reset が 無 効 に 設 定 さ れ て い る か 、 env_keep の リ ス ト に HOME が 存 在 す る 場 合 だ け で あ る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
set_logname 通 常
sudo は 環 境 変 数 LOGNAME, USER, USERNAME を 変 身 対
象 ユ ー ザ の 名 前 (−u オ プ シ ョ ン が 指 定 さ れ て い な い 場 合 、 普 通 は root) に セ ッ ト す る 。 し か し 、 プ ロ グ ラ ム に よ っ て は (た と え ば 、 RCS リ ビ ジ ョ ン コ ン ト ロ ー ル シ ス テ ム が そ の 一 つ だ が ) ユ ー ザ が 実 際 に は 誰 で あ る か を 判 定 す る の に LOGNAME を 使 用 し て い る こ と が あ り 、 そ の た め 、 こ の 振 舞 い を 変 更 し た い 場 合 も あ る 。 set_logname オ プ シ ョ ン に ’!’ を 付 け て 否 定 す る こ と で 、 そ れ が で き る 。 な お env_reset オ プ シ ョ ン を 無 効 に し て い な い 場 合 に 、 env_keep の リ ス ト に LOGNAME, USER, USERNAME な ど が 入 っ て い る と 、 set_logname は 効 果 を 持 た な い の で 、 注 意 し て い た だ き た い 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。
set_utmp こ れ が 有 効 に な っ て い る と 、
sudo は 擬 似 tty を 割 り 当 て
る と き に 、 utmp (ま た は utmpx) フ ァ イ ル に エ ン ト リ を 作 成 す る 。 sudo に よ っ て 擬 似 tty の 割 り 当 て が 行 わ れ る の は 、 log_input, log_output, use_pty と い っ た フ ラ グ が 有 効 に な っ て い る と き で あ る 。 デ フ ォ ル ト で は 、 新 し い エ ン ト リ は 、 そ の ユ ー ザ の utmp エ ン ト リ が 存 在 す れ ば 、 そ の コ ピ ー で あ り 、 tty, time, type, pid フ ィ ー ル ド が 更 新 さ れ る 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。
setenv こ れ を セ ッ ト す る と 、 ユ ー ザ が コ マ ン ド ラ イ ン で
−E オ プ
シ ョ ン を 指 定 し て 、 env_reset オ プ シ ョ ン を 無 効 に で き る よ う に な る 。 さ ら に 、 コ マ ン ド ラ イ ン か ら 設 定 す る 環 境 変 数 が env_check, env_delete, env_keep に よ る 制 限 を 受 け な く な る 。 そ れ 故 、 そ の よ う な や り 方 で 変 数 を 設 定 す る こ と を 許 可 す る の は 、 信 用 で き る ユ ー ザ の み に 限 る べ き だ 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
shell_noargs こ れ が セ ッ ト さ れ て い る と き 、
sudo を 引 き 数 な し で 起 動 す
る と 、 sudo は −s オ プ シ ョ ン が 指 定 さ れ た か の よ う に 振 舞 う 。 す な わ ち 、 root ユ ー ザ と し て シ ェ ル を 実 行 す る わ け だ (シ ェ ル は 、 環 境 変 数 SHELL が セ ッ ト さ れ て い れ ば 、 そ れ に よ っ て 決 ま り 、 セ ッ ト さ れ て い な け れ ば 、 sudo を 起 動 し た ユ ー ザ の /etc/passwd エ ン ト リ に 登 録 さ れ た も の に な る )。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
stay_setuid 通 常
sudo は 、 コ マ ン ド を 実 行 す る と き 、 実 UID と 実 効
UID を 変 身 対 象 ユ ー ザ (デ フ ォ ル ト で は root) の も の に セ ッ ト す る 。 こ の オ プ シ ョ ン は 、 そ の 振 舞 い を 変 更 し て 、 sudo を 起 動 し た ユ ー ザ の UID が 、 そ の ま ま 実 UID と し て 残 る よ う に す る の だ 。 言 い 換 え る と 、 こ の オ プ シ ョ ン は sudo を setuid ラ ッ パ ー と し て 動 作 す る よ う に す る わ け で あ る 。 プ ロ グ ラ ム を setuid で 動 か す と 、 危 険 を も た ら し か ね な い と い う 理 由 か ら 、 あ る 種 の 機 能 を 使 え な い よ う に し て い る シ ス テ ム で は 、 こ の オ プ シ ョ ン が 役 に 立 つ か も し れ な い 。 こ の オ プ シ ョ ン は 、 シ ス テ ム コ ー ル の setreuid() や setresuid() を サ ポ ー ト し て い る シ ス テ ム で の み 有 効 で あ る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
sudoedit_checkdir こ れ を セ ッ ト す る と 、
sudoedit は 、 編 集 対 象 フ ァ イ ル の
パ ス 中 に あ る デ ィ レ ク ト リ 部 分 の す べ て に つ い て 、 sudoedit を 実 行 す る ユ ー ザ と っ て 書 き 込 み 可 能 か ど う か を 、 チ ェ ッ ク す る こ と に な る 。 ユ ー ザ に 書 き 込 み 可 能 な デ ィ レ ク ト リ に 存 在 す る い か な る シ ン ボ リ ッ ク リ ン ク も 、 た ど ら れ る こ と が な く 、 ま た 、 ユ ー ザ に 書 き 込 み 可 能 な デ ィ レ ク ト リ に あ る フ ァ イ ル の 編 集 は 、 拒 否 さ れ る こ と に な る 。 た だ し 、 こ う し た 制 限 は 、 sudoedit を 実 行 す る ユ ー ザ が root の 場 合 に は 、 行 わ れ な い 。 シ ス テ ム に よ っ て は 、 編 集 対 象 フ ァ イ ル の パ ス 中 に あ る デ ィ レ ク ト リ 部 分 の す べ て が 、 変 身 対 象 ユ ー ザ に と っ て 読 み 込 み 可 能 で な い か ぎ り 、 sudoedit で フ ァ イ ル を 編 集 で き な い も の も あ る 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。 こ の 設 定 が 最 初 に 導 入 さ れ た の は 、 バ ー ジ ョ ン 1.8.15 だ っ た が 、 当 初 の も の に は 競 合 状 態 を 引 き 起 こ す 欠 陥 が あ っ た 。 編 集 対 象 フ ァ イ ル の パ ス の 途 中 に 書 き 込 み 可 能 な デ ィ レ ク ト リ が あ り 、 そ こ に シ ン ボ リ ッ ク リ ン ク が 存 在 す る 場 合 の チ ェ ッ ク は 、 バ ー ジ ョ ン 1.8.16 で 追 加 さ れ た 。
sudoedit_follow
sudoedit は デ フ ォ ル ト で は 、 フ ァ イ ル を オ ー プ ン す る と き に シ ン ボ リ ッ ク リ ン ク を た ど ら な い 。 sudoedit_follow オ プ シ ョ ン を 有 効 に す る と 、 sudoedit が シ ン ボ リ ッ ク リ ン ク を オ ー プ ン で き る よ う に な る 。 そ う し た 動 作 は FOLLOW や NOFOLLOW タ グ を 使 え ば 、 コ マ ン ド ご と に 変 更 す る こ と が で き る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。 こ の 設 定 は 、 バ ー ジ ョ ン 1.8.15 以 上 で の み サ ポ ー ト さ れ て い る 。
targetpw
こ れ を セ ッ ト す る と 、 sudo は 、 コ マ ン ド を 実 行 し た り 、 フ ァ イ ル を 編 集 し た り す る と き 、 起 動 し た ユ ー ザ の パ ス ワ ー ド で は な く 、 −u オ プ シ ョ ン で 指 定 さ れ た ユ ー ザ (デ フ ォ ル ト で は root) の パ ス ワ ー ド を 要 求 す る よ う に な る 。 こ の フ ラ グ を 設 定 を す る と 、 −u オ プ シ ョ ン の 引 き 数 と し て 、 passwd デ ー タ ベ ー ス に 登 録 さ れ て い な い uid が 使 え な く な る こ と に 注 意 し て ほ し い 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
tty_tickets
こ れ を セ ッ ト す る と 、 ユ ー ザ は tty ご と に 認 証 を し な け れ ば な ら な く な る 。 こ の フ ラ グ が 有 効 な 場 合 、 sudo は 、 各 tty に 対 し て 、 タ イ ム ス タ ン プ ・ フ ァ イ ル 中 の 、 そ れ ぞ れ 別 個 に 記 録 さ れ る 情 報 を 使 用 す る こ と に な る 。 そ れ に 対 し て 、 こ の フ ラ グ が 無 効 な 場 合 は 、 す べ て の ロ グ イ ン ・ セ ッ シ ョ ン に 対 し て 、 単 一 の 記 録 が 使 用 さ れ る の で あ る 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。
umask_override
こ れ を セ ッ ト す る と 、 sudo は umask を sudoers の umask オ プ シ ョ ン で 指 定 さ れ た と お り の 値 に 、 変 更 を 加 え る こ と な く 設 定 す る 。 こ の こ と に よ っ て 、 ユ ー ザ 自 身 の umask 値 よ り も っ と 緩 や か な umask 値 を sudoers フ ァ イ ル で 指 定 す る こ と が 可 能 に な る 。 sudo の 昔 の 動 作 と 同 じ に な る わ け だ 。 umask_override を セ ッ ト し な い 場 合 、 現 在 の sudo は umask を 、 ユ ー ザ の umask 値 と sudoers で 指 定 し た umask 値 と の ビ ッ ト 和 に 設 定 す る こ と に な っ て い る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
use_netgroups
こ れ を セ ッ ト す る と 、 ユ ー ザ や ホ ス ト を 指 定 す る 場 所 で ネ ッ ト グ ル ー プ (接 頭 辞 ’+’ が 付 く ) が 使 え る よ う に な る 。 LDAP を 使 用 す る sudoers で は 、 ネ ッ ト グ ル ー プ を サ ポ ー ト す る と 、 /etc/ldap.conf フ ァ イ ル で NETGROUP_BASE 設 定 オ プ シ ョ ン を 指 定 し て い な い 場 合 に 、 サ ー バ 側 で 負 荷 の 高 い 部 分 文 字 列 (substring) の マ ッ チ ン グ を 行 う 必 要 が 生 じ る 。 そ こ で 、 ネ ッ ト グ ル ー プ を 使 用 す る 必 要 が な い 場 合 は 、 こ の オ プ シ ョ ン を off に す れ ば 、 LDAP サ ー バ の 負 荷 を 減 ら す こ と が で き る 。 こ の フ ラ グ は デ フ ォ ル ト で は on で あ る 。
use_pty
こ れ を セ ッ ト す る と 、 sudo は 入 出 力 の ロ ギ ン グ が 行 わ れ て い な い と き で も 、 擬 似 tty で コ マ ン ド を 実 行 す る こ と に な る 。 sudo に よ っ て 実 行 さ れ た 悪 意 の あ る プ ロ グ ラ ム が 、 バ ッ ク グ ラ ウ ン ド ・ プ ロ セ ス を フ ォ ー ク し 、 そ の プ ロ セ ス が 、 メ イ ン プ ロ グ ラ ム の 実 行 が 終 了 し た 後 で も 、 ユ ー ザ の タ ー ミ ナ ル デ バ イ ス を 握 っ て 離 さ な い と い っ た こ と が 考 え ら れ る 。 こ の オ プ シ ョ ン を 使 え ば 、 そ う い っ た こ と が 不 可 能 に な る 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
utmp_runas
こ れ を セ ッ ト す る と 、 sudo は utmp (ま た は utmpx) フ ァ イ ル を 更 新 す る と き 、 変 身 対 象 ユ ー ザ の 名 前 を 記 録 す る よ う に な る 。 sudo は デ フ ォ ル ト で は 、 sudo を 実 行 し た ユ ー ザ の 名 前 を 記 録 す る の だ 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。
visiblepw
デ フ ォ ル ト で は 、 ユ ー ザ が パ ス ワ ー ド を 入 力 し な け れ ば な ら な い と き に 、 使 用 し て い る タ ー ミ ナ ル で エ コ ー の 抑 制 が で き な か っ た ら 、 sudo は 実 行 を 拒 否 す る よ う に な っ て い る 。 そ れ に 対 し 、 visiblepw フ ラ グ が 設 定 さ れ て い る と 、 パ ス ワ ー ド が ス ク リ ー ン に 表 示 さ れ て し ま う 場 合 で も 、 sudo は プ ロ ン プ ト を 出 し て 、 パ ス ワ ー ド を 求 め る よ う に な る 。 ssh(1) は デ フ ォ ル ト で は 、 コ マ ン ド を 実 行 す る 際 に tty を 割 り 当 て な い の で 、 sudo は エ コ ー の 抑 制 が で き な い が 、 そ の 場 合 で も 、 こ の 設 定 に よ っ て 、 "ssh somehost sudo ls" と い っ た 操 作 の 実 行 が 可 能 に な る わ け だ 。 こ の フ ラ グ は デ フ ォ ル ト で は off で あ る 。 整 数 :
closefrom
sudo は コ マ ン ド を 実 行 す る 前 に 、 標 準 入 力 、 標 準 出 力 、 標 準 エ ラ ー (す な わ ち 、 フ ァ イ ル デ ィ ス ク リ プ タ 0−2 ) を 除 い て 、 開 い て い る す べ て の フ ァ イ ル ・ デ ィ ス ク リ プ タ を ク ロ ー ズ す る 。 closefrom オ プ シ ョ ン を 使 用 す る と 、 0−2 以 外 の ど の フ ァ イ ル ・ デ ィ ス ク リ プ タ か ら 閉 じ て 行 く か を 指 定 す る こ と が で き る 。 デ フ ォ ル ト は 3 で あ る 。
maxseq
入 出 力
ロ グ フ ァ イ ル
で "%{seq}" エ ス ケ
ー プ シ ー ケ ン
ス に 置 き 換 え
ら れ る 連 続 番
号 の 最 大 値 (詳
細 に つ い て は
、 後 述 の iolog_dir
オ プ シ ョ ン の
説 明 を 参 照 す
る こ と )。 "%{seq}"
に 置 き 換 え ら
れ る 値 は 36 進 数
だ が 、 maxseq そ の
も の は 10 進 数 で
指 定 す る べ き
で あ る 。 2176782336 (38 進
数 の 連 続 番 号
で は 、 "ZZZZZZ" に
相 当 す る ) よ り
大 き い 値 は 、
暗 黙 の う ち に
2176782336 に 縮 小 さ れ
る 。 デ フ ォ ル
ト の 値 は 2176782336 で
あ る 。 使 用 し
て い る 連 続 番
号 が maxseq の 値 に
達 し た ら 、 最
初 の 値 の 0 に 戻
る 。 そ れ 以 後
は 、 sudoers は 存 在
し て い る 入 出
力 ロ グ フ ァ イ
ル を サ イ ズ 0 に
短 縮 し て 、 そ
の パ ス 名 を 再
利 用 す る こ と
に な る 。 こ の
設 定 は 、 バ ー
ジ ョ ン 1.8.7 以 上 で
の み サ ポ ー ト
さ れ て い る 。
passwd_tries
sudo が 「 失 敗 」 を ロ グ に 記 録 し て 終 了 す る 前 に 、 ユ ー ザ が パ ス ワ ー ド を 入 力 で き る 回 数 。 デ フ ォ ル ト は 3 回 。
真 偽 値 と し て も 使 用 で き る 整 数 :
loglinelen
sudo 独 自 の ロ グ フ ァ イ ル の 一 行 あ た り の 文 字 数 。 こ の 値 は 、 ロ グ フ ァ イ ル を 見 や す く す る た め に 改 行 す る 位 置 を 決 め る の に 使 用 さ れ る 。 こ の 値 は 、 syslog 経 由 の ロ グ フ ァ イ ル に は 影 響 せ ず 、 独 自 の フ ァ イ ル に ロ グ を 記 録 す る と き の み 効 果 が あ る 。 デ フ ォ ル ト は 80 で あ る (改 行 を し な い よ う に す る に は 、 値 を 0 に す る か 、 頭 に ’!’ を 付 け て 、 こ の オ プ シ ョ ン を 否 定 す る )。
passwd_timeout
sudo の パ ス ワ ー ド プ ロ ン プ ト が 時 間 切 れ に な る ま で の 分 単 位 の 時 間 。 0 を 指 定 す る と 、 時 間 切 れ な し に な る 。 分 よ り も も っ と 細 か い 時 間 を 指 定 し た か っ た ら 、 2.5 の よ う に 、 小 数 点 以 下 を 付 け る こ と も で き る 。 デ フ ォ ル ト は 5 分 。
timestamp_timeout
sudo が パ ス ワ ー ド を 再 び 要 求 す る よ う に な る ま で の 時 間 を 分 単 位 で 指 定 す る 。 分 よ り も も っ と 細 か い 時 間 を 指 定 し た か っ た ら 、 2.5 の よ う に 、 小 数 点 以 下 を 付 け る こ と も で き る 。 デ フ ォ ル ト は 5 分 で あ る 。 こ れ を 0 に セ ッ ト す る と 、 毎 回 パ ス ワ ー ド を 要 求 す る よ う に な る 。 0 よ り も 小 さ い 値 に セ ッ ト す る と 、 ユ ー ザ の タ イ ム ス タ ン プ は 、 シ ス テ ム が リ ブ ー ト さ れ る ま で 期 限 切 れ に な ら な い 。 ユ ー ザ が "sudo −v" と "sudo −k" を 実 行 す る こ と に よ っ て 、 タ イ ム ス タ ン プ を 自 分 で 作 っ た り 、 消 し た り で き る よ う に し た か っ た ら 、 こ の 手 を 使 え ば よ い 。
umask
コ マ ン ド を 実 行 す る と き に 使 用 す る umask 値 。 ユ ー ザ の umask 値 を そ の ま ま 使 い た か っ た ら 、 ’!’ を 頭 に 付 け て 、 こ の オ プ シ ョ ン を 否 定 す る か 、 0777 に セ ッ ト す れ ば よ い 。 こ の オ プ シ ョ ン の 値 が 0777 以 外 の 場 合 、 実 際 に 使 用 さ れ る umask 値 は 、 ユ ー ザ の umask 値 と umask オ プ シ ョ ン の 値 と の ビ ッ ト 和 で あ り 、 後 者 の デ フ ォ ル ト は 0022 で あ る 。 こ の こ と に よ っ て 、 sudo が コ マ ン ド を 実 行 す る と き の umask 値 が 、 ユ ー ザ の umask 値 よ り 低 く な ら な い よ う に な っ て い る わ け だ 。 PAM を 使 用 し て い る シ ス テ ム で は 、 PAM の デ フ ォ ル ト 設 定 で umask 値 を 指 定 す る こ と が で き る が 、 そ の 場 合 は 、 そ れ が sudoers で 指 定 す る 値 に 優 先 す る こ と に 注 意 し て い た だ き た い 。 文 字 列 :
badpass_message ユ ー ザ が 不 正 な パ ス ワ ー ド を 入 力 し た と き に 表 示 す る メ ッ セ ー ジ 。
insults フ ラ グ が 有 効 に な っ て い な い か ぎ り 、 デ フ ォ ル ト は 「 Sorry, try again.」 で あ る 。
editor
visudo で 使 用 で き る エ デ ィ タ を コ ロ ン (’:’) で 区 切 っ た リ ス ト 。 visudo は 、 可 能 な ら ば 、 ユ ー ザ の EDITOR 環 境 変 数 や VISUAL 環 境 変 数 と マ ッ チ し た リ ス ト 中 の エ デ ィ タ を 選 択 す る 。 そ れ が で き な い と き は 、 こ の リ ス ト に あ る エ デ ィ タ で 、 実 際 に 存 在 し 、 か つ 実 行 可 能 な 最 初 の エ デ ィ タ を 使 用 す る 。 環 境 変 数 EDITOR や VISUAL は 、 env_reset オ プ シ ョ ン が 有 効 な 場 合 、 デ フ ォ ル ト で は 保 存 さ れ な い こ と に 注 意 し て い た だ き た い 。 デ フ ォ ル ト は vi で あ る 。
iolog_dir
こ の オ プ シ ョ ン の 値 を ト ッ プ レ ベ ル ・ デ ィ レ ク ト リ に し て 、 入 出 力 ロ グ を 置 く デ ィ レ ク ト リ の パ ス 名 が 構 成 さ れ る 。 こ の 値 が 使 用 さ れ る の は 、 log_input や log_output オ プ シ ョ ン が 有 効 に な っ て い る と き や 、 LOG_INPUT や LOG_OUTPUT タ グ が コ マ ン ド に 付 い て い る と き だ け で あ る 。 こ の デ ィ レ ク ト リ 以 下 に 、 セ ッ シ ョ ン ID が 連 番 な ら ば 、 セ ッ シ ョ ン の 連 番 が (訳 注 : 以 下 の "%{seq}" の 説 明 に あ る よ う な 形 で ) 格 納 さ れ る こ と に な る わ け だ 。 デ フ ォ ル ト は /var/log/sudo−io で あ る 。 以 下 の パ ー セ ン ト (’%’) エ ス ケ ー プ シ ー ケ ン ス が 使 用 で き る 。
%{seq} 単 調
に 増 加 す る 36 進
数 の 連 続 番 号
に 展 開 さ れ る
。 た と え ば 、 0100A5
と い っ た 番 号
で あ り 、 二 桁
づ つ 使 っ て 新
し い デ ィ レ ク
ト リ を 作 っ て
い く 。 こ の 場
合 な ら 、 01/00/A5 と
い っ た 具 合 だ
。
%{user}
sudo を 実 行 す る ユ ー ザ ー の ロ グ イ ン 名 に 展 開 さ れ る 。
%{group}
sudo を 実 行 す る ユ ー ザ ー の 実 グ ル ー プ ID の 名 前 に 展 開 さ れ る 。
%{runas_user} 変 身
対 象 ユ ー ザ の
ロ グ イ ン 名 に
展 開 さ れ る (た
と え ば root)。
%{runas_group} 変 身 対 象 ユ
ー ザ の グ ル ー
プ 名 に 展 開 さ
れ る (た と え ば
wheel)。
%{hostname} ド メ イ ン 名
な し の ロ ー カ
ル ・ ホ ス ト 名
に 展 開 さ れ る
。
%{command} 実 行 さ れ る
コ マ ン ド の ベ
ー ス ネ ー ム に
展 開 さ れ る 。
こ の ほ か 、 シ
ス テ ム の strftime(3) 関
数 が サ ポ ー ト
し て い る エ ス
ケ ー プ シ ー ケ
ン ス は 、 い か
な る も の で も
展 開 の 対 象 に
な る 。
’%’ 文 字 そ の も の を 使 い た か っ た ら 、 文 字 列 ’%%’ を 使 用 す れ ば よ い 。
iolog_file
iolog_dir を 基 点 と す る 相 対 パ ス 名 で あ り 、 log_input や log_output オ プ シ ョ ン が 有 効 に な っ て い た り 、 LOG_INPUT や LOG_OUTPUT タ グ が コ マ ン ド に 付 い て い る 場 合 に 、 入 出 力 ロ グ が こ の 中 に 格 納 さ れ る 。 iolog_file の 値 が 複 数 の デ ィ レ ク ト リ 構 成 要 素 を 含 ん で い る こ と が あ る の に 注 意 し て い た だ き た い 。 デ フ ォ ル ト は "%{seq}" で あ る 。 使 用 で き る パ ー セ ン ト (’%’) エ ス ケ ー プ シ ー ケ ン ス の リ ス ト に つ い て は 、 上 記 の iolog_dir オ プ シ ョ ン を 参 照 。 エ ス ケ ー プ シ ー ケ ン ス の 展 開 と は 別 に 、 パ ス 名 が 六 個 以 上 の X で 終 わ っ て い る 場 合 は 、 X の 部 分 が 、 他 と 重 複 し な い 英 数 字 の 組 み 合 わ せ に 置 き 換 え ら れ る 。 mktemp(3) 関 数 の 場 合 と 同 様 で あ る 。
iolog_dir と iolog_file を 結 合 し て 作 ら れ る パ ス が す で に 存 在 し て い る 場 合 は 、 iolog_file が 6 個 以 上 の X で 終 わ っ て い な い か ぎ り 、 既 存 の 入 出 力 ロ グ フ ァ イ ル は 、 サ イ ズ 0 に 短 縮 さ れ た 上 で 、 上 書 き さ れ る こ と に な る 。
lecture_status_dir
sudo は こ の デ ィ レ ク ト リ に 、 ユ ー ザ が 訓 戒 を 受 け た か ど う か を 示 す フ ァ イ ル を 、 ユ ー ザ ご と に 入 れ て お く 。 ユ ー ザ が 訓 戒 を 受 け る と 、 サ イ ズ 0 の フ ァ イ ル が こ の デ ィ レ ク ト リ に 作 成 さ れ 、 sudo は そ の ユ ー ザ に 再 び 訓 戒 を 行 わ な く な る 。 こ の デ ィ レ ク ト リ は 、 シ ス テ ム の ブ ー ト 時 に 消 去 す べ き で は な い 。 デ フ ォ ル ト は /var/lib/sudo/lectured で あ る 。
mailsub
mailto ユ ー ザ に 送 付 す る メ ー ル の 件 名 。 エ ス ケ ー プ 文 字 %h は マ シ ン の ホ ス ト 名 に 展 開 さ れ る 。 デ フ ォ ル ト は 「 *** SECURITY information for %h ***」 で あ る 。
noexec_file
sudo バ ー ジ ョ ン 1.8.1 以 来 、 こ の オ プ シ ョ ン は サ ポ ー ト さ れ て い な い 。 現 在 で は 、 noexec フ ァ イ ル の パ ス は sudo.conf(5) フ ァ イ ル で 設 定 す る べ き で あ る 。
pam_login_service
PAM を 認 証 に 使 用 し て い る シ ス テ ム で は 、 こ の オ プ シ ョ ン の 値 が 、 sudo コ マ ン ド に −i オ プ シ ョ ン が 指 定 さ れ た と き 使 用 さ れ る サ ー ビ ス 名 に な る 。 デ フ ォ ル ト の 値 は 、 "sudo" で あ る 。 pam_service の 説 明 も ご 覧 い た だ き た い 。 こ の 設 定 は 、 バ ー ジ ョ ン 1.8.8 以 上 で の み サ ポ ー ト さ れ て い る 。
pam_service
PAM を 使 用 し て い る シ ス テ ム で は 、 こ の オ プ シ ョ ン で 指 定 す る サ ー ビ ス 名 が 、 適 用 さ れ る PAM ポ リ シ ー を 指 定 す る こ と に な る 。 サ ー ビ ス 名 は pam.conf フ ァ イ ル 中 の エ ン ト リ 名 や 、 /etc/pam.d に あ る フ ァ イ ル 名 に 対 応 し て い る 。 デ フ ォ ル ト の 値 は "sudo" で あ る 。 こ の 設 定 は 、 バ ー ジ ョ ン 1.8.8 以 上 で の み サ ポ ー ト さ れ て い る 。
passprompt
パ ス ワ ー ド を 要 求 す る と き に 使 用 す る デ フ ォ ル ト の プ ロ ン プ ト 。 −p オ プ シ ョ ン や 環 境 変 数 SUDO_PROMPT に よ っ て 変 更 す る こ と が で き る 。 以 下 の パ ー セ ン ト (’%’) エ ス ケ ー プ シ ー ケ ン ス が 使 用 で き る 。
%H ド メ イ ン 名 付 き の ロ ー カ ル ホ ス ト 名 に 展 開 さ れ る
(マ シ ン の ホ ス ト 名 が 完 全 修 飾 名 か 、 fqdn オ プ シ ョ ン が セ ッ ト さ れ て い る 場 合 の み )。
%h
ド メ イ ン 名 な し の ロ ー カ ル ・ ホ ス ト 名 に 展 開 さ れ る 。
%p パ ス ワ ー ド を 要 求 さ れ て い る ユ ー ザ 名 に 展 開
(sudoers フ ァ イ ル の rootpw, targetpw, runaspw フ ラ グ を 尊 重 す る )。
%U 変 身 対 象 ユ ー ザ の
(デ フ ォ ル ト で は root) ロ グ イ ン
名 に 展 開 。
%u
sudo を 実 行 す る ユ ー ザ ー の ロ グ イ ン 名 に 展 開 さ れ る 。
%%
連 続 し た 二 個 の % は 、 一 個 の % 文 字 そ の も の を 意 味 す る 。 デ フ ォ ル ト の 値 は 「 Password:」 で あ る 。
role
コ マ ン ド の 実 行 に 当 た っ て SELinux の 新 し い セ キ ュ リ テ ィ ・ コ ン テ キ ス ト を 構 成 す る と き に 使 用 す る 、 デ フ ォ ル ト の ロ ー ル 。 デ フ ォ ル ト の ロ ー ル は 、 sudoers フ ァ イ ル や 、 コ マ ン ド ラ イ ン オ プ シ ョ ン を 使 っ て 、 コ マ ン ド ご と に 変 更 す る こ と が で き る 。 こ の オ プ シ ョ ン が 利 用 で き る の は 、 sudo が SELinux サ ポ ー ト つ き で ビ ル ド さ れ た と き だ け で あ る 。
runas_default
コ マ ン ド ラ イ ン で −u オ プ シ ョ ン が 指 定 さ れ て い な い と き の 、 デ フ ォ ル ト の 変 身 対 象 ユ ー ザ 。 デ フ ォ ル ト で は root に な っ て い る 。
syslog_badpri
ユ ー ザ が 認 証 に 失 敗 し た と き に 使 用 す る syslog の 重 大 度 (priority)。 デ フ ォ ル ト で は alert に な っ て い る 。
syslog の 重 大 度 に は 、 次 の も の が 指 定 で き る 。 emerg, alert, crit, err, warning, notice, info, debug。
syslog_goodpri ユ ー ザ が 認 証 に 成 功 し た と き に 使 用 す る
syslog の 重 大 度
(priority)。 デ フ ォ ル ト で は notice に な っ て い る 。 ど ん な syslog の 重 大 度 が 指 定 で き る か に つ い て は 、 syslog_badpri を 参 照 。
sudoers_locale
sudoers フ ァ イ ル を 解 析 し た り 、 コ マ ン ド の ロ グ を 記 録 し た り 、 email を 送 付 し た り す る と き に 使 用 す る ロ ケ ー ル 。 ロ ケ ー ル の 変 更 は 、 sudoers の 解 釈 に 影 響 が あ る か も し れ な い の で 、 気 を つ け て い た だ き た い 。 デ フ ォ ル ト で は "C" に な っ て い る 。
timestampdir
sudo が タ イ ム ス タ ン プ ・ フ ァ イ ル を 置 く デ ィ レ ク ト リ 。 こ の デ ィ レ ク ト リ は 、 シ ス テ ム が リ ブ ー ト す る と き 、 ク リ ア さ れ る べ き で あ る 。 デ フ ォ ル ト は /var/run/sudo/ts に な っ て い る 。
timestampowner
ユ ー ザ が 訓 戒 を 受 け た か ど う か を 示 す フ ァ イ ル を 入 れ て お く デ ィ レ ク ト リ や 、 タ イ ム ス タ ン プ ・ デ ィ レ ク ト リ 、 及 び そ う し た デ ィ レ ク ト リ に 置 か れ る す べ て の フ ァ イ ル の 所 有 者 。 デ フ ォ ル ト は root で あ る 。
type コ マ ン ド の 実 行 に 当 た
っ て SELinux の 新 し い セ キ ュ リ テ ィ ・ コ ン テ キ ス ト を 構 成 す る と き に 使 用 す る 、 デ フ ォ ル ト の タ イ プ 。 デ フ ォ ル ト の タ イ プ は 、 sudoers フ ァ イ ル や 、 コ マ ン ド ラ イ ン オ プ シ ョ ン を 使 っ て 、 コ マ ン ド ご と に 変 更 す る こ と が で き る 。 こ の オ プ シ ョ ン が 利 用 で き る の は 、 sudo が SELinux サ ポ ー ト つ き で ビ ル ド さ れ た と き だ け で あ る 。 真 偽 値 と し て も 使 用 で き る 文 字 列 :
env_file
env_file オ プ シ ョ ン で は 、 実 行 す る プ ロ グ ラ ム の 環 境 に 設 定 す る 変 数 を 記 載 し た フ ァ イ ル の 絶 対 パ ス を 指 定 す る 。 こ の フ ァ イ ル に 記 載 す る 項 目 は 、 "VARIABLE=value" か "export VARIABLE=value" の 形 で な け れ ば な ら な い 。 変 数 の 値 を シ ン グ ル ク ォ ー ト や ダ ブ ル ク ォ ー ト で 囲 ん で も よ い 。 こ の フ ァ イ ル に 含 ま れ る 変 数 は 、 env_keep や env_check の よ う な sudo の ほ か の 環 境 設 定 の 影 響 を 受 け る 。
exempt_group
こ の グ ル ー プ の ユ ー ザ は パ ス ワ ー ド の 入 力 や secure_path な ど に よ る PATH の 限 定 を 免 除 さ れ る 。 指 定 す る グ ル ー プ 名 に 接 頭 辞 の % を 付 け て は い け な い 。 こ の オ プ シ ョ ン は デ フ ォ ル ト で は セ ッ ト さ れ て い な い 。
group_plugin
こ の オ
プ シ ョ ン の 値
と な る 文 字 列
に は 、 sudoers が 使
用 す る グ ル ー
プ ・ プ ラ グ イ
ン と 、 必 要 な
ら そ の 引 き 数
を 指 定 す る 。
値 と な る 文 字
列 は 、 プ ラ グ
イ ン の パ ス に
続 け て 、 そ の
設 定 に 必 要 な
引 き 数 が あ れ
ば 、 そ れ を 付
け 加 え た も の
だ が 、 パ ス は
絶 対 パ ス か 、
/usr/local/libexec/sudo を 基 点
と す る 相 対 パ
ス に す る べ き
で あ る 。 引 き
数 が 存 在 す る
な ら 、 そ れ は
プ ラ グ イ ン の
初 期 化 関 数 に
渡 さ れ る 。 引
き 数 が 存 在 す
る 場 合 は 、 文
字 列 全 体 を ダ
ブ ル ク ォ ー ト
("") で 囲 ま な け
れ ば な ら な い
。 詳 細 に つ い
て は 、 「 グ ル
ー プ ・ プ ロ バ
イ ダ ー ・ プ ラ
グ イ ン 」 セ ク
シ ョ ン を を ご
覧 い た だ き た
い 。
lecture
sudo は パ ス ワ ー ド プ ロ ン プ ト に 添 え て 簡 単 な 訓 戒 を 表 示 す る こ と が で き る 。 こ の オ プ シ ョ ン は そ の 訓 戒 を い つ 表 示 す る か を 決 定 す る 。 以 下 の 値 が 可 能 で あ る 。
always い つ で も 必 ず 訓 戒 を 表 示 す る 。
never 訓 戒 を ま っ た く 表 示 し な い 。
once ユ ー ザ が は じ め て
sudo を 実 行 し た と き だ け 表 示 す る 。 値 を 指 定 し な い と 、 once を 指 定 し た こ と に な る 。 頭 に ’!’ を 付 け て 、 こ の オ プ シ ョ ン を 否 定 す る と 、 値 に never が 使 用 さ れ る 。 デ フ ォ ル ト の 値 は once で あ る 。
lecture_file 標 準 の 訓 戒 と は 別 の
sudo の 訓 戒 を 書 き 込 ん だ フ ァ イ ル の パ
ス 。 指 名 し た フ ァ イ ル が 存 在 す れ ば 、 sudo は 標 準 の 訓 戒 の 代 わ り に 、 そ れ を 使 用 す る 。 デ フ ォ ル ト で は 、 プ ロ グ ラ ム に 埋 め 込 ま れ た 訓 戒 が 使 用 さ れ る 。
listpw こ の オ プ シ ョ ン は 、
sudo を −l オ プ シ ョ ン 付 き で 実 行 し た と
き 、 ユ ー ザ が パ ス ワ ー ド を 要 求 さ れ る の は 、 ど ん な 場 合 か を 決 定 す る 。 以 下 の 値 が 可 能 で あ る 。
all パ ス ワ ー ド を 入 力 し な い で す む た め に は 、
sudoers
フ ァ イ ル の 使 用 中 の ホ ス ト に 対 す る 当 該 ユ ー ザ の エ ン ト リ の す べ て に NOPASSWD タ グ が 設 定 さ れ て い な け れ ば な ら な い 。
always ユ ー ザ は
−l オ プ シ ョ ン を 使 用 す る 際 に 、 必 ず パ ス
ワ ー ド を 入 力 し な け れ ば な ら な い 。
any パ ス ワ ー ド を 入 力 し な い で す む た め に は 、
sudoers
フ ァ イ ル の 使 用 中 の ホ ス ト に 対 す る 当 該 ユ ー ザ の エ ン ト リ の 少 な く と も 一 つ に NOPASSWD タ グ が 設 定 さ れ て い な け れ ば な ら な い 。
never ユ ー ザ は
−l オ プ シ ョ ン を 使 用 す る 際 に 、 パ ス ワ ー
ド を 入 力 す る 必 要 が ま っ た く な い 。 値 を 指 定 し な い と 、 値 は any だ と 見 な さ れ る 。 ’!’ を 頭 に 付 け て 、 こ の オ プ シ ョ ン を 否 定 す る と 、 値 に never が 使 わ れ る こ と に な る 。 デ フ ォ ル ト は any で あ る 。
logfile
sudo 独 自 の ロ グ フ ァ イ ル の パ ス (syslog 経 由 の ロ グ フ ァ イ ル で は な い )。 パ ス を 指 定 す る と 、 独 自 フ ァ イ ル へ の ロ ギ ン グ が on に な り 、 ’!’ を 頭 に 付 け て 、 こ の オ プ シ ョ ン を 否 定 す る と 、 off に な る 。 デ フ ォ ル ト で は 、 sudo は syslog 経 由 で ロ グ を 取 る 。
mailerflags
メ ー ラ を 起 動 す る と き に 使 用 す る フ ラ グ 。 デ フ ォ ル ト は −t に な っ て い る 。
mailerpath
警 告 メ ー ル の 送 信 に 使 用 す る メ ー ル ・ プ ロ グ ラ ム の パ ス 。 デ フ ォ ル ト は configure し た と き に 見 つ か っ た sendmail の パ ス 。
mailfrom
警 告 メ ー ル や エ ラ ー ・ メ ー ル を 送 る と き 、 差 出 人 と し て 使 用 す る ア ド レ ス 。 sudo が @ 記 号 を 解 釈 し な い よ う に 、 ア ド レ ス は ダ ブ ル ク ォ ー ト ("") で 囲 む べ き で あ る 。 デ フ ォ ル ト は 、 sudo を 実 行 し て い る ユ ー ザ の 名 前 。
mailto
警 告 メ
ー ル や エ ラ ー
・ メ ー ル を 送
付 す る 宛 先 の
ア ド レ ス 。 sudo
が @ 記 号 を 解 釈
し な い よ う に
、 ア ド レ ス は
ダ ブ ル ク ォ ー
ト ("") で 囲 む べ
き で あ る 。 デ
フ ォ ル ト は root に
な っ て い る 。
secure_path
sudo か ら 実 行 さ れ る あ ら ゆ る コ マ ン ド が 使 用 す る パ ス 。 sudo を 実 行 す る ユ ー ザ が 、 無 難 な PATH 環 境 変 数 を 使 っ て い る か ど う か 確 信 が 持 て な い な ら 、 こ の オ プ シ ョ ン を 使 用 す る と よ い だ ろ う 。 も う 一 つ の 使 用 法 は 、 「 root の パ ス 」 と 「 一 般 ユ ー ザ の パ ス 」 を 別 の も の に し て お き た い 場 合 だ 。 ユ ー ザ が exempt_group オ プ シ ョ ン で 指 定 し た グ ル ー プ に 属 し て い る と 、 そ の ユ ー ザ は secure_path の 影 響 を 受 け な い 。 こ の オ プ シ ョ ン は 、 デ フ ォ ル ト で は セ ッ ト さ れ て い な い 。
syslog
syslog を 使 っ て ロ グ を 取 っ て い る 場 合 の syslog の フ ァ シ リ テ ィ (syslog 経 由 で ロ グ を 取 ら な い な ら 、 ’!’ を 頭 に 付 け て 、 こ の オ プ シ ョ ン を 否 定 す る )。 デ フ ォ ル ト で は authpriv に な っ て い る 。
syslog の フ ァ シ リ テ ィ に は 、 次 の も の が 指 定 で き る 。 authpriv (使 用 OS が 対 応 し て い る 場 合 ), auth, daemon, user, local0, local1, local2, local3, local4, local5, local6, local7。
verifypw こ の オ プ シ ョ ン は 、
sudo を −v オ プ シ ョ ン 付 き で 実 行 し た と
き 、 ユ ー ザ が パ ス ワ ー ド を 要 求 さ れ る の は 、 ど ん な 場 合 か を 決 定 す る 。 以 下 の 値 が 可 能 で あ る 。
all パ ス ワ ー ド を 入 力 し な い で す む た め に は 、
sudoers
フ ァ イ ル の 使 用 中 の ホ ス ト に 対 す る 当 該 ユ ー ザ の エ ン ト リ の す べ て に NOPASSWD タ グ が 設 定 さ れ て い な け れ ば な ら な い 。
always ユ ー ザ は
−v オ プ シ ョ ン を 使 用 す る 際 に 、 必 ず パ ス
ワ ー ド を 入 力 し な け れ ば な ら な い 。
any パ ス ワ ー ド を 入 力 し な い で す む た め に は 、
sudoers
フ ァ イ ル の 使 用 中 の ホ ス ト に 対 す る 当 該 ユ ー ザ の エ ン ト リ の 少 な く と も 一 つ に NOPASSWD タ グ が 設 定 さ れ て い な け れ ば な ら な い 。
never ユ ー ザ は
−v オ プ シ ョ ン を 使 用 す る 際 に 、 パ ス ワ ー ド
を 入 力 す る 必 要 が ま っ た く な い 。 値 を 指 定 し な い と 、 値 は all だ と 見 な さ れ る 。 ’!’ を 頭 に 付 け て 、 こ の オ プ シ ョ ン を 否 定 す る と 、 値 に never が 使 わ れ る こ と に な る 。 デ フ ォ ル ト は all で あ る 。 真 偽 値 と し て も 使 用 で き る リ ス ト :
env_check 「 安 全 」 だ と 見 な さ れ な い 場 合 に 、 ユ ー ザ の 環 境 か ら 取 り 除 か れ る 環 境 変 数 。
TZ 以 外 の す べ て の 環 境 変 数 に つ い て 、 「 安 全 」 と い う の は 、 変 数 の 値 に ’%’ や ’/’ と い う 文 字 を 一 つ も 含 ま な い こ と で あ る 。 こ の 動 作 を 利 用 す れ ば 、 出 来 の よ く な い プ ロ グ ラ ム に 見 ら れ る printf 形 式 の フ ォ ー マ ッ ト の 脆 弱 性 に 対 処 す る こ と が 可 能 に な る 。 TZ 変 数 に つ い て は 、 以 下 の ど れ か が 真 な ら ば 、 安 全 で は な い と 見 な さ れ る 。
• 変 数 の 値 が 絶 対 パ ス 名 で あ り
(コ ロ ン (’:’) が 先 頭 に
付 い て い る こ と も あ る )、 そ れ が zoneinfo デ ィ レ ク ト リ の 位 置 に マ ッ チ し な い 。
• 変 数 の 値 に
.. と い う パ ス の 要 素 が 存 在 す る 。
• 変 数 の 値 に ホ
ワ イ ト ス ペ ー ス や 表 示 不 能 文 字 が 存 在 す る 。
• 変 数 の 値 が
PATH_MAX の 値 よ り 長 い 。
こ の オ プ シ ョ ン の 引 き 数 は 、 ダ ブ ル ク ォ ー ト で 囲 ま れ 、 ス ペ ー ス で 区 切 ら れ た リ ス ト で も よ く 、 ダ ブ ル ク ォ ー ト な し の 単 一 の 値 で も よ い 。 リ ス ト は 、 =, +=, −=, ! 演 算 子 を 使 っ て 、 そ れ ぞ れ 置 き 換 え た り 、 追 加 し た り 、 削 除 し た り 、 無 効 に し た り す る こ と が で き る 。 env_check で 指 定 さ れ た 変 数 は 、 env_reset オ プ シ ョ の 有 効 ・ 無 効 に か か わ ら ず 、 上 記 の チ ェ ッ ク に パ ス す れ ば 、 環 境 に 保 存 さ れ る こ と に な る 。 チ ェ ッ ク さ れ る 環 境 変 数 の グ ロ ー バ ル な リ ス ト は 、 root ユ ー ザ が sudo に −V オ プ シ ョ ン を 付 け て 実 行 し た と き に 表 示 さ れ る 。
env_delete
env_reset オ プ シ ョ ン が 無 効 に な っ て い る と き に 、 ユ ー ザ の 環 境 か ら 取 り 除 か れ る 環 境 変 数 。 こ の オ プ シ ョ ン の 引 き 数 は 、 ダ ブ ル ク ォ ー ト で 囲 ま れ 、 ス ペ ー ス で 区 切 ら れ た リ ス ト で も よ く 、 ダ ブ ル ク ォ ー ト な し の 単 一 の 値 で も よ い 。 リ ス ト は 、 =, +=, −=, ! 演 算 子 を 使 っ て 、 そ れ ぞ れ 置 き 換 え た り 、 追 加 し た り 、 削 除 し た り 、 無 効 に し た り す る こ と が で き る 。 取 り 除 か れ る 環 境 変 数 の グ ロ ー バ ル な リ ス ト は 、 root ユ ー ザ が sudo に −V オ プ シ ョ ン を 付 け て 実 行 し た と き に 表 示 さ れ る 。 な お 、 オ ペ レ ー テ ィ ン グ シ ス テ ム に は 、 危 険 を も た ら し か ね な い 変 数 を 、 い か な る setuid プ ロ セ ス (sudo も そ の 一 つ ) の 環 境 か ら も 取 り 除 く こ と に し て い る も の が 多 い こ と に 留 意 し て ほ し い 。
env_keep
env_reset オ プ シ ョ ン が 有 効 に な っ て い る と き で も 、 ユ ー ザ の 環 境 に そ の ま ま 保 存 さ れ る 環 境 変 数 。 こ の オ プ シ ョ ン に よ っ て 、 sudo か ら 生 み 出 さ れ る プ ロ セ ス が 受 け 取 る 環 境 を 、 き め 細 か く 制 御 す る こ と が 可 能 に な る 。 こ の オ プ シ ョ ン の 引 き 数 は 、 ダ ブ ル ク ォ ー ト で 囲 ま れ 、 ス ペ ー ス で 区 切 ら れ た リ ス ト で も よ く 、 ダ ブ ル ク ォ ー ト な し の 単 一 の 値 で も よ い 。 リ ス ト は 、 =, +=, −=, ! 演 算 子 を 使 っ て 、 そ れ ぞ れ 置 き 換 え た り 、 追 加 し た り 、 削 除 し た り 、 無 効 に し た り す る こ と が で き る 。 保 存 さ れ る 変 数 の グ ロ ー バ ル な リ ス ト は 、 root ユ ー ザ が sudo に −V オ プ シ ョ ン を 付 け て 実 行 し た と き に 表 示 さ れ る 。
グ ル ー プ ・ プ ロ バ イ ダ ー ・ プ ラ グ イ ン
sudoers
プ ラ グ イ ン は
、 non−Unix グ ル ー プ
の 検 索 を 可 能
に す る た め に
、 補 助 的 な プ
ラ グ イ ン に 対
す る イ ン タ ー
フ ェ ー ス を 備
え て お り 、 そ
れ に よ っ て 、
標 準 的 な Unix グ ル
ー プ ・ デ ー タ
ベ ー ス 以 外 の
グ ル ー プ 情 報
源 に 対 す る 問
い 合 わ せ が で
き る よ う に な
っ て い る 。 先
に 述 べ た よ う
な 、 non−Unix グ ル ー
プ を 指 定 す る
書 式 の 使 用 を
可 能 に し た か
っ た ら 、 こ の
仕 組 み が 使 用
で き る 。 グ ル
ー プ ・ プ ロ バ
イ ダ ー ・ プ ラ
グ イ ン は 、 デ
フ ォ ル ト 設 定
の group_plugin に よ っ
て 指 定 す る 。
group_plugin に 対 す る
引 き 数 は 、 プ
ラ グ イ ン の パ
ス に 続 け て 、
そ の 設 定 に 必
要 な オ プ シ ョ
ン が あ れ ば 、
そ れ を 付 け 加
え た も の だ が
、 パ ス は 絶 対
パ ス か 、
/usr/local/libexec/sudo を 基 点
と す る 相 対 パ
ス に す る べ き
で あ る 。 そ う
し た オ プ シ ョ
ン は (指 定 さ れ
て い れ ば ) プ ラ
グ イ ン の 初 期
化 関 数 に 渡 さ
れ る こ と に な
る 。 オ プ シ ョ
ン が あ る 場 合
は 、 文 字 列 全
体 を ダ ブ ル ク
ォ ー ト ("") で 囲
ま な け れ ば な
ら な い 。 以 下
の グ ル ー プ ・
プ ロ バ イ ダ ー
・ プ ラ グ イ ン
が デ フ ォ ル ト
で イ ン ス ト ー
ル さ れ て い る
。
group_file
group_file プ ラ グ イ ン は 、 /etc/group の 代 わ り に 、 /etc/group と 同 じ 書 式 を 使 用 す る 別 の グ ル ー プ フ ァ イ ル を 使 え る よ う に す る 。 プ ラ グ イ ン に 対 す る オ プ シ ョ ン と し て 、 グ ル ー プ フ ァ イ ル の パ ス を 指 定 す る べ き で あ る 。 た と え ば 、 使 用 す る グ ル ー プ フ ァ イ ル が /etc/sudo−group な ら ば 、 次 の よ う に 書 く こ と に な る 。
Defaults group_plugin="group_file.so /etc/sudo−group"
system_group
system_group プ ラ グ イ ン は 、 標 準 C ラ イ ブ ラ リ の 関 数 getgrnam() と getgrid() に よ る グ ル ー プ 検 索 を サ ポ ー ト し て い る 。 こ の プ ラ グ イ ン は 、 ユ ー ザ が そ の ユ ー ザ の 補 助 グ ル ー プ の リ ス ト に 存 在 し な い グ ル ー プ に 所 属 し て い る と い っ た 場 合 に も 使 用 で き る 。 こ の プ ラ グ イ ン は オ プ シ ョ ン を 取 ら な い の で 、 書 式 は 次 の よ う に な る 。
Defaults group_plugin=system_group.so グ ル ー プ ・ プ ロ バ イ ダ ー ・ プ ラ グ イ ン の API に つ い て は 、 sudo_plugin(5) に 詳 細 な 説 明 が あ る 。
ロ グ の 書 式
sudoers
は 、 何 が 起 き
た か を 記 録 す
る の に 、 suslog(3) を
使 用 す る こ と
も で き る し 、
単 独 の ロ グ ・
フ ァ イ ル を 使
用 す る こ と も
で き る 。 ど ち
ら の 場 合 も 、
ロ グ の 書 式 は
ほ と ん ど 同 じ
で あ る 。 実 行
を 許 可 さ れ た
コ マ ン ド に 関
す る ロ グ 記 載
事 項
sudo が 実 行 し た コ
マ ン ド は 、 次
の 書 式 を 使 っ
て 記 録 さ れ る
(読 み や す い よ
う に 、 こ こ で
は 複 数 行 に 分
け て い る )。
date hostname
progname: username : TTY=ttyname ; PWD=cwd ; \
USER=runasuser ; GROUP=runasgroup ; TSID=logid ; \
ENV=env_vars COMMAND=command 各 フ ィ
ー ル ド は 以 下
の よ う に な っ
て い る 。
date コ マ ン ド が 実 行 さ れ た 日 時 。 た い て い は 、
"MMM, DD, HH:MM:SS"
の 形 式 で あ る 。 syslog(3) 経 由 で ロ ギ ン グ し て い る 場 合 に 、 日 時 が 実 際 に ど ん な 形 式 に な る か を 決 め る の は 、 syslog デ ー モ ン で あ る 。 sudo 独 自 の フ ァ イ ル に ロ ギ ン グ し て い る と き 、 log_year オ プ シ ョ ン が 有 効 だ と 、 日 時 に 年 度 も 含 ま れ る こ と に な る 。
hostname
sudo が 実 行 さ れ た ホ ス ト の 名 前 。 こ の フ ィ ー ル ド は 、 syslog(3) 経 由 で ロ ギ ン グ し て い る と き に の み 存 在 す る 。
progname
プ ロ グ
ラ ム 名 。 普 通
は 、 sudo か
sudoedit。 こ の フ ィ
ー ル ド は 、 syslog(3)
経 由 で ロ ギ ン
グ し て い る と
き の み 存 在 す
る 。
username
sudo を 実 行 し た ユ ー ザ の ロ グ イ ン 名 。
ttyname
sudo が 実 行 さ れ た 端 末 の 短 縮 名 (た と え ば 、 "console", "tty01", "pts/0" な ど )。 端 末 が 存 在 し な か っ た 場 合 は 、 "unknown" に な る 。
cwd
sudo が 実 行 さ れ た カ レ ン ト ・ ワ ー キ ン グ ・ デ ィ レ ク ト リ 。
runasuser
変 身 対 象 ユ ー ザ 。
runasgroup 変 身 対 象 グ ル ー プ が コ マ ン ド ラ イ ン で 指 定 さ れ て い れ ば 、 そ の グ ル ー プ 。
logid 入 出 力 ロ グ の 識 別 名 。 コ マ ン ド の 出 力 を 再 生 す る と き に 使 用 で き る 。 こ の フ ィ ー ル ド は 、
log_input や log_output オ プ シ ョ ン が 有 効 な と き に の み 存 在 す る 。
env_vars 環 境 変 数 が コ マ ン ド ラ イ ン で 指 定 さ れ た 場 合 、 そ の リ ス ト 。
command 実 行 さ れ た 実 際 の コ マ ン ド 。 メ ッ セ ー ジ は
sudoers_locale で
指 定 さ れ た ロ
ケ ー ル を 使 っ
て 記 録 さ れ る
。 デ フ ォ ル ト
は "C" で あ る 。
実 行 を 拒 否 さ
れ た コ マ ン ド
に 関 す る ロ グ
記 載 事 項 ユ ー
ザ が コ マ ン ド
の 実 行 を 認 め
ら れ な か っ た
場 合 、 拒 否 さ
れ た 理 由 が 、
ユ ー ザ 名 の 後
に 記 録 さ れ る
こ と に な る 。
理 由 と し て 挙
げ ら れ る も の
に は 、 次 の よ
う な も の が あ
る 。
user NOT in sudoers そ の ユ ー
ザ に 関 す る 記
載 が sudoers フ ァ イ
ル に 存 在 し な
い 。
user NOT authorized on host そ の ユ
ー ザ に 関 す る
記 載 が sudoers フ ァ
イ ル に 存 在 す
る が 、 こ の ホ
ス ト で は コ マ
ン ド の 実 行 を
許 可 さ れ て い
な い 。
command not allowed こ の ホ ス
ト に 対 す る そ
の ユ ー ザ の 記
載 が sudoers フ ァ イ
ル に 存 在 す る
が 、 指 定 さ れ
た コ マ ン ド の
実 行 を 許 可 さ
れ て い な い 。
3 incorrect password attempts ユ ー ザ
が パ ス ワ ー ド
の 入 力 に 3 回 失
敗 し た 。 実 際
に 書 き 込 ま れ
る 試 行 回 数 は
、 失 敗 し た 回
数 と passwd_tries オ プ
シ ョ ン の 値 に
よ っ て 様 々 で
あ る 。
a password is required
sudo に −n オ プ シ ョ ン を 指 定 し た が 、 パ ス ワ ー ド が 必 要 だ っ た 。
sorry, you are not allowed to
set the following environment variables ユ ー
ザ が コ マ ン ド
ラ イ ン で 環 境
変 数 を 指 定 し
た が 、 そ れ は
sudoers に よ っ て 許
可 さ れ て い な
い 。 エ ラ ー に
関 す る ロ グ 記
載 事 項 エ ラ ー
が 起 き る と 、
sudoers は メ ッ セ ー
ジ を ロ グ に 記
録 し 、 た い て
い の 場 合 は 、
管 理 者 に email で 報
告 す る 。 起 き
る か も し れ な
い エ ラ ー に は
次 の も の が あ
る 。
parse error in /etc/sudoers near line N
sudoers が 上 記 フ ァ イ ル の 解 析 中 に エ ラ ー に 出 会 っ た 。 エ ラ ー の タ イ プ に よ っ て は 、 実 際 の エ ラ ー は 、 記 載 さ れ た 行 番 号 よ り 1 行 上 、 あ る い は 、 1 行 下 に あ る こ と も あ る 。
problem with defaults entries
sudoers フ ァ イ ル 中 に 意 味 不 明 な デ フ ォ ル ト 設 定 (Defaults setting) が 、 一 つ 以 上 あ る 。 こ の エ ラ ー が あ っ て も 、 sudo が 実 行 で き な く な る こ と は な い が 、 visudo を 使 っ て sudoers フ ァ イ ル を チ ェ ッ ク す る べ き で あ る 。
timestamp owner (username): No such user
timestampowner オ プ シ ョ ン で 指 定 さ れ た タ イ ム ス タ ン プ ・ デ ィ レ ク ト リ の 所 有 者 が 、 パ ス ワ ー ド ・ デ ー タ ベ ー ス に 存 在 し な か っ た 。
unable to open/read /etc/sudoers
sudoers フ ァ イ ル を 読 み 込 も う と し た が 、 オ ー プ ン で き な か っ た 。 そ う し た こ と は 、 sudoers フ ァ イ ル が リ モ ー ト ・ フ ァ イ ル シ ス テ ム に 存 在 し て 、 そ こ で は ユ ー ザ ID 0 を 別 の 値 に マ ッ プ し て い る 場 合 に 起 き る こ と が あ る (訳 注 : た と え ば 、 NFS で root_squash が 有 効 な 場 合 )。 通 常 sudoers は 、 こ の 問 題 を 回 避 す る た め に 、 グ ル ー プ の パ ー ミ ッ シ ョ ン を 使 っ て sudoers フ ァ イ ル を オ ー プ ン し よ う と す る 。 /etc/sudoers の 所 有 権 を 変 更 す る な り 、 sudo.conf(5) フ ァ イ ル の sudoers Plugin 行 の 末 尾 に "sudoers_uid=N" (’N’ は 、 sudoers フ ァ イ ル の 所 有 者 の ユ ー ザ ID) と い っ た 引 き 数 を 追 加 す る な り を 、 考 慮 す べ き で あ る 。
unable to stat /etc/sudoers
/etc/sudoers フ ァ イ ル が 見 つ か ら な い 。
/etc/sudoers is not a regular file
/etc/sudoers は 存 在 す る が 、 通 常 フ ァ イ ル で も シ ン ボ リ ッ ク ・ リ ン ク で も な い 。
/etc/sudoers is owned by uid N, should be 0
sudoers フ ァ イ ル の 所 有 者 が 適 切 で は な い 。 sudoers フ ァ イ ル の 所 有 者 を 変 更 し た い 場 合 に は 、 sudo.conf(5) フ ァ イ ル の sudoers Plugin 行 に "sudoers_uid=N" (’N’ は 、 sudoers フ ァ イ ル の 所 有 者 の ユ ー ザ ID) を 付 け 加 え て い た だ き た い 。
/etc/sudoers is world writable
sudoers フ ァ イ ル の パ ー ミ ッ シ ョ ン が す べ て の ユ ー ザ に 書 き 込 み を 許 し て い る 。 sudoers フ ァ イ ル は 、 誰 に で も 書 き 込 み 可 で あ っ て は な ら ず 、 デ フ ォ ル ト の フ ァ イ ル モ ー ド は 0440 で あ る (所 有 者 と グ ル ー プ の み 読 む こ と が で き 、 書 き 込 み 権 限 は 誰 に も な い )。 デ フ ォ ル ト の モ ー ド は 、 sudo.conf(5) フ ァ イ ル の sudoers Plugin 行 に "sudoers_mode" オ プ シ ョ ン を 指 定 す る こ と で 変 更 す る こ と が で き る 。
/etc/sudoers is owned by gid N, should be 1
sudoers フ ァ イ ル の 所 有 グ ル ー プ が 適 切 で は な い 。 sudoers フ ァ イ ル の 所 有 グ ル ー プ を 変 更 し た い 場 合 に は 、 sudo.conf(5) フ ァ イ ル の sudoers Plugin 行 に "sudoers_gid=N" (’N’ は 、 sudoers フ ァ イ ル の 所 有 グ ル ー プ ID) を 付 け 加 え て い た だ き た い 。
unable to open /var/run/sudo/ts/username
sudoers が ユ ー ザ の タ イ ム ス タ ン プ ・ フ ァ イ ル を 読 み 込 ん だ り 、 作 成 し た り す る こ と が で き な か っ た 。 そ う し た こ と は 、 timestampowner が root 以 外 の ユ ー ザ に 設 定 さ れ て い て 、 し か も /var/run/sudo の モ ー ド が 、 グ ル ー プ や そ の 他 の ユ ー ザ に 対 し て 検 索 不 可 に な っ て い る 場 合 に 起 き る こ と が あ る 。 /var/run/sudo の デ フ ォ ル ト の モ ー ド は 、 0711 で あ る 。
unable to write to /var/run/sudo/ts/username
sudoers が ユ ー ザ の タ イ ム ス タ ン プ ・ フ ァ イ ル に 書 き 込 む こ と が で き な か っ た 。
/var/run/sudo/ts is owned by
uid X, should be Y タ イ ム ス
タ ン プ ・ デ ィ
レ ク ト リ の 所
有 者 が timestampowner 以
外 の ユ ー ザ で
あ る 。 そ う し
た こ と は 、
timestampowner の 値 を 変
更 し た 時 に 起
き る こ と が あ
る 。 sudoers は 、 デ
ィ レ ク ト リ の
所 有 者 が 訂 正
さ れ る ま で 、
タ イ ム ス タ ン
プ ・ デ ィ レ ク
ト リ を 無 視 す
る こ と に な る
。
/var/run/sudo/ts is group writable タ イ
ム ス タ ン プ ・
デ ィ レ ク ト リ
が グ ル ー プ に
よ っ て 書 き 込
み 可 能 に な っ
て い る 。 書 き
込 み が 可 能 な
の は 、 timestampowner の
み に す る べ き
だ 。 タ イ ム ス
タ ン プ ・ デ ィ
レ ク ト リ の デ
フ ォ ル ト の モ
ー ド は 、 700 で あ
る 。 sudoers は 、 デ
ィ レ ク ト リ の
モ ー ド が 訂 正
さ れ る ま で 、
タ イ ム ス タ ン
プ ・ デ ィ レ ク
ト リ を 無 視 す
る こ と に な る
。
syslog
経 由 で ロ ギ ン
グ す る と き の
注 意 点 デ フ ォ
ル ト で は 、 sudoers
は syslog(3) 経 由 で メ
ッ セ ー ジ を ロ
グ に 記 録 す る
。 そ の 場 合 、
date, hostname, progname フ
ィ ー ル ド を ロ
グ に 付 加 す る
の は 、 syslog デ ー モ
ン で あ っ て 、
sudoers で は な い 。
従 っ て 、 そ う
し た フ ィ ー ル
ド は 、 シ ス テ
ム が 違 え ば 書
式 も 違 う か も
し れ な い 。 ほ
と ん ど の シ ス
テ ム で 、 syslog(3) は
、 か な り 小 さ
な ロ グ ・ バ ッ
フ ァ し か 持 っ
て い な い 。 そ
こ で 、 コ マ ン
ド ラ イ ン 引 き
数 の 後 ろ の 方
が 切 り 捨 て ら
れ た り し な い
よ う に 、 sudoers は
、 (date, hostname, 及 び "sudo"
と い う 文 字 列
を 別 に し て ) ロ
グ ・ メ ッ セ ー
ジ が 960 字 以 上 に
な る と 、 そ れ
を 分 割 す る よ
う に な っ て い
る 。 メ ッ セ ー
ジ が 分 割 さ れ
る 場 合 、 後 続
部 分 で は 、 ユ
ー ザ 名 の 後 ろ
に "(command continued)" と い
う 文 字 列 が 続
き 、 そ の 後 に
コ マ ン ド ラ イ
ン 引 き 数 の 残
り が 続 く こ と
に な る 。 フ ァ
イ ル に ロ ギ ン
グ す る と き の
注 意 点
logfile オ プ シ ョ ン
を 設 定 す る と
、 sudoers は /var/log/sudo
と い っ た ロ ー
カ ル な フ ァ イ
ル に ロ グ を 記
録 す る よ う に
な る 。 フ ァ イ
ル に ロ ギ ン グ
す る 場 合 も 、
sudoers は syslog(3) と ほ と
ん ど 同 じ 書 式
を 使 用 す る が
、 い つ く か の
重 要 な 違 い が
あ る 。
1.
progname と hostname フ ィ ー ル ド は 存 在 し な い 。
2.
log_year オ プ シ ョ ン が 有 効 な 場 合 、 日 付 に は 年 度 も 含 ま れ る こ と に な る 。
3.
loglinelen (デ フ ォ ル ト で は 80) 文 字 よ り も 長 い 行 は 改 行 さ れ 、 4 文 字 分 の イ ン デ ン ト を 付 け て 次 の 行 に 続 く こ と に な る 。 そ う す る こ と で 、 記 述 情 報 が 人 間 に 読 み や す く な る が 、 ロ グ フ ァ イ ル に 対 し て grep(1) を 使 用 す る こ と は 難 し く な る 。 loglinelen オ プ シ ョ ン に 0 を 指 定 す る と (あ る い は 、 頭 に ’!’ を つ け て 、 否 定 す る と )、 改 行 は 行 わ れ な く な る 。
入 出 力 ロ グ フ ァ イ ル
入 出 力 ロ ギ ン グ を 有 効 に す る と 、 sudo は 擬 似 tty で コ マ ン ド を 実 行 し て 、 ユ ー ザ の す べ て の 入 力 や 出 力 の ロ グ を 取 る こ と に な る 。 入 出 力 は 、 iolog_dir オ プ シ ョ ン で 指 定 し た デ ィ レ ク ト リ に (デ フ ォ ル ト で は /var/log/sudo−io)、 一 意 な セ ッ シ ョ ン ID を 使 っ て 記 録 さ れ る 。 こ の セ ッ シ ョ ン ID は 、 (訳 注 : syslog 経 由 で あ れ 、 独 自 フ ァ イ ル で あ れ ) sudo に 関 す る ロ グ の 行 に 、 "TSID=" に 続 く 値 と し て 書 き 込 ま れ て い る も の だ 。 iolog_file オ プ シ ョ ン を 使 え ば 、 セ ッ シ ョ ン ID の 形 式 を 変 更 す る こ と が で き る 。 各 入 出 力 ロ グ は 、 独 立 し た デ ィ レ ク ト リ に 収 納 さ れ る 。 そ う し た デ ィ レ ク ト リ に は 、 次 の よ う な フ ァ イ ル が 入 っ て い る 。
log 次 の よ う な 情 報 を 含 む テ キ ス ト フ ァ イ ル 。 コ マ ン ド が 実 行 さ れ た 日 時 、
sudo を 実 行 し た ユ ー ザ の 名 前 、 変 身 対 象 ユ ー ザ 名 、 変 身 対 象 グ ル ー プ 名 (な い こ と も あ る )、 sudo が 実 行 さ れ た 端 末 、 そ の 端 末 の 縦 横 の サ イ ズ (何 行 何 桁 か )、 コ マ ン ド が そ こ か ら 実 行 さ れ た カ レ ン ト デ ィ レ ク ト リ 、 そ れ に 、 コ マ ン ド そ の も の の パ ス 名 (引 き 数 が あ れ ば 、 そ れ も )
timing 入 出 力 ロ グ に 記 録 さ れ る 各 事 項 間 の 時 間 間 隔 と 各 事 項 の 入 出 力 バ イ ト 数 の ロ グ
(セ ッ シ ョ ン の 再 生 で 使 用 さ れ る )
ttyin ユ ー ザ が 使 用 し て い る 端 末 か ら の 入 力
(ユ ー ザ が タ イ プ し た こ と )。
stdin パ イ プ や フ ァ イ ル か ら の 入 力
ttyout 擬 似
tty の 出 力 (コ マ ン ド が ス ク リ ー ン に 書 き 出 し た こ と )
stdout パ イ プ へ 出 力 さ れ た り 、 フ ァ イ ル に リ ダ イ レ ク ト さ れ た 標 準 出 力
stderr パ イ プ へ 出 力 さ れ た り 、 フ ァ イ ル へ リ ダ イ レ ク ト さ れ た 標 準 エ ラ ー
log 以 外 の す べ て の フ ァ イ ル は 、 compress_io オ プ シ ョ ン が 無 効 に な っ て い な い か ぎ り 、 gzip 形 式 で 圧 縮 さ れ る 。 バ ッ フ ァ リ ン グ を 行 う の で 、 入 出 力 の デ ー タ は 、 sudo コ マ ン ド が 完 了 す る ま で 、 完 全 な も の に は な ら な い 。 入 出 力 ロ グ フ ァ イ ル の 出 力 の 部 分 は 、 sudoreplay(8) を 使 っ て 再 生 す る こ と が で き る 。 ま た 、 sudoreplay(8) ユ ー テ ィ リ テ ィ は 、 利 用 で き る ロ グ を リ ス ト 表 示 し た り 、 検 索 し た り す る の に 使 う こ と も で き る 。 ユ ー ザ の 入 力 に は 、 パ ス ワ ー ド の よ う な (た と え 、 画 面 に エ コ ー さ れ る こ と は な い に し て も ) 秘 密 情 報 が 含 ま れ て い る こ と が あ る 。 そ う い っ た 情 報 も 、 暗 号 化 さ れ ず に 、 ロ グ フ ァ イ ル に 記 録 さ れ る こ と に 注 意 し て い た だ き た い 。 た い て い の 場 合 、 log_output や LOG_OUTPUT を 使 っ て 、 コ マ ン ド の 出 力 を ロ グ に 記 録 す る だ け で 十 分 用 が 足 り る 。 入 出 力 ロ グ は 、 セ ッ シ ョ ン ご と に 独 立 し た デ ィ レ ク ト リ に 収 納 さ れ る 。 そ の た め 、 従 来 か ら あ る ロ グ ロ ー テ ー シ ョ ン ・ ユ ー テ ィ リ テ ィ を 使 用 し て 、 保 存 し て お く 入 出 力 ロ グ 数 を 制 限 す る こ と は で き な い 。 保 存 す る 入 出 力 ロ グ 数 を 制 限 す る 最 も 簡 単 な 方 法 は 、 maxseq オ プ シ ョ ン で 保 存 し た い ロ グ の 最 大 数 を 指 定 す る こ と で あ る 。 入 出 力 ロ グ の 連 番 が maxseq に 達 す る と 、 連 番 は 0 に リ セ ッ ト さ れ 、 sudoers は 既 存 の 入 出 力 ロ グ フ ァ イ ル を サ イ ズ 0 に 短 縮 し て 、 再 利 用 す る こ と に な る 。
フ ァ イ ル
/etc/sudo.conf
sudo フ ロ ン ト エ ン ド の 設 定
/etc/sudoers
誰 が 何 を 実 行 で き る か の リ ス ト
/etc/group ロ ー カ ル の グ ル ー プ フ ァ イ ル
/etc/netgroup ネ ッ ト ワ ー ク グ ル ー プ の リ ス ト
/var/log/sudo−io 入 出 力 の ロ グ フ ァ イ ル
(訳 注 : 厳 密 に は 、 入 出 力 の ロ グ を 記 録 す る フ ァ イ ル 群 を そ の 下 に 格 納 す る ト ッ プ デ ィ レ ク ト リ )
/var/run/sudo/ts
sudoers セ キ ュ リ テ ィ ポ リ シ ー が 使 用 す る タ イ ム ス タ ン プ を 格 納 す る デ ィ レ ク ト リ
/var/lib/sudo/lectured
sudoers セ キ ュ リ テ ィ ポ リ シ ー が 使 用 す る 訓 戒 状 態 フ ァ イ ル を 格 納 す る デ ィ レ ク ト リ
/etc/environment
Linux や AIX で −i モ ー ド を 使 用 す る と き の 初 期 環 境
用 例
以 下 は sudoers フ ァ イ ル の 記 載 例 で あ る 。 正 直 な と こ ろ 、 い さ さ か 凝 り す ぎ の 部 分 も あ る 。 ま ず 最 初 に 継 承 を 許 可 す る 環 境 変 数 を い く つ か 指 定 し 、 続 い て aliases の 定 義 を す る 。
# sudo 経
由 で X ア プ リ ケ
ー シ ョ ン を 実
行 す る と き 、 HOME
は
# .Xauthority フ ァ イ ル を
探 す た め に 使
用 さ れ る 。 ほ
か の プ ロ グ ラ
ム も
# 設 定 フ ァ イ ル
を 探 す の に HOME を
使 用 す る の で
、 こ の 指 定 が
# 権 限 の 昇 格 を
引 き 起 こ し か
ね な い こ と に
注 意 し て ほ し
い 。
Defaults env_keep += "DISPLAY HOME"
# User alias の 指 定
User_Alias
FULLTIMERS = millert, mikef, dowdy
User_Alias
PARTTIMERS = bostley, jwfox, crawl
User_Alias
WEBMASTERS = will, wendy, wim
# Runas alias の 指 定
Runas_Alias
OP = root, operator
Runas_Alias
DB = oracle, sybase
Runas_Alias
ADMINGRP = adm, oper
# Host alias の 指 定
Host_Alias
SPARC = bigtime, eclipse, moet, anchor :\
SGI = grolsch, dandelion, black :\
ALPHA = widget, thalamus, foobar :\
HPPA = boa, nag, python
Host_Alias
CUNETS = 128.138.0.0/255.255.0.0
Host_Alias
CSNETS = 128.138.243.0, 128.138.204.0/24, 128.138.242.0
Host_Alias
SERVERS = master, mail, www, ns
Host_Alias
CDROM = orion, perseus, hercules
# Cmnd alias の 指 定
Cmnd_Alias
DUMPS = /usr/bin/mt, /usr/sbin/dump, /usr/sbin/rdump,\
/usr/sbin/restore, /usr/sbin/rrestore,\
sha224:0GomF8mNN3wlDt1HD9XldjJ3SNgpFdbjO1+NsQ== \
/home/operator/bin/start_backups
Cmnd_Alias
KILL = /usr/bin/kill
Cmnd_Alias
PRINTING = /usr/sbin/lpc, /usr/bin/lprm
Cmnd_Alias
SHUTDOWN = /usr/sbin/shutdown
Cmnd_Alias
HALT = /usr/sbin/halt
Cmnd_Alias
REBOOT = /usr/sbin/reboot
Cmnd_Alias
SHELLS = /usr/bin/sh, /usr/bin/csh, /usr/bin/ksh,\
/usr/local/bin/tcsh, /usr/bin/rsh,\
/usr/local/bin/zsh
Cmnd_Alias
SU = /usr/bin/su
Cmnd_Alias
PAGERS = /usr/bin/more, /usr/bin/pg, /usr/bin/less 以 下 で は 、 コ ン パ イ ル 時 に 埋 め 込 ま れ た デ フ ォ ル ト 値 の い く つ か を 変 更 し て い る 。 sudo に は syslog(3) 経 由 で ロ グ を 記 録 し 、 フ ァ シ リ テ ィ に は す べ て の 場 合 に auth を 使 用 さ せ た い 。 フ ル タ イ ム の ス タ ッ フ に は sudo の 訓 戒 を 出 さ な い よ う に し た い 。 ユ ー ザ millert は パ ス ワ ー ド を 入 力 し な い で よ い 。 コ マ ン ド を root と し て 実 行 す る と き は 、 環 境 変 数 LOGNAME, USER, USERNAME を 変 更 し た く な い 。 さ ら に 、 SERVERS と い う Host_Alias に 属 す る マ シ ン で は 、 ロ ー カ ル な ロ グ フ ァ イ ル を 副 本 と し て 作 り 、 ロ グ の 記 入 事 項 は 数 年 に 渡 っ て 保 存 さ れ る の で 、 ロ グ の 各 行 に 間 違 い な く 年 度 が 入 る よ う に す る 。 最 後 に PAGERS と い う Cmnd_Alias に 属 す る コ マ ン ド (/usr/bin/more, /usr/bin/pg, /usr/bin/less) に つ い て は 、 シ ェ ル ・ エ ス ケ ー プ を 無 効 に す る 。 な お 、 最 後 の 設 定 は 、 許 可 す る コ マ ン ド が ALL に な っ て い る ユ ー ザ に 対 し て は 、 効 果 的 な 抑 制 に は な ら な い こ と に 注 意 し て い た だ き た い 。
# built−in defaults の 変 更
Defaults
syslog=auth
Defaults>root
!set_logname
Defaults:FULLTIMERS
!lecture
Defaults:millert
!authenticate
Defaults@SERVERS
log_year, logfile=/var/log/sudo.log
Defaults!PAGERS
noexec ユ ー ザ 設 定 が 、 誰 が 何 を 実 行 で き る か を 実 際 に 決 め て い る 部 分 だ 。
root
ALL = (ALL) ALL
%wheel
ALL = (ALL) ALL
root と wheel グ ル ー プ に 属 す る す べ て の ユ ー ザ に は 、 ど の ホ ス ト で も 任 意 の ユ ー ザ と し て い か な る コ マ ン ド で も 実 行 す る こ と を 認 め る 。
FULLTIMERS
ALL = NOPASSWD: ALL フ ル タ イ ム の シ ス テ ム 管 理 者 (millert, mikef, dowdy) は 、 ど の ホ ス ト で も 任 意 の コ マ ン ド を 認 証 な し で 実 行 で き る 。
PARTTIMERS
ALL = ALL パ ー ト タ イ ム の シ ス テ ム 管 理 者 (bostley, jwfox, crawl) は 、 ど の ホ ス ト で も 任 意 の コ マ ン ド を 実 行 で き る が 、 そ の 際 に 認 証 を し な け れ ば な ら な い (こ の エ ン ト リ に は NOPASSWD タ グ が 指 定 さ れ て い な い の で )。
jack
CSNETS = ALL ユ ー ザ jack は 、 CSNETS と い う エ イ リ ア ス に 属 す る マ シ ン で 、 任 意 の コ マ ン ド を 実 行 で き る (す な わ ち 、 ネ ッ ト ワ ー ク が 128.138.243.0, 128.138.204.0, 128.138.242.0 の マ シ ン だ )。 こ の 内 、 128.138.204.0 に の み class C の ネ ッ ト ワ ー ク で あ る こ と を 示 す 明 示 的 な (CIDR 表 記 の ) netmask が あ る 。 CSNETS の ほ か の ネ ッ ト ワ ー ク に つ い て は 、 ロ ー カ ル マ シ ン の netmask が マ ッ チ ン グ の 際 に 使 わ れ る こ と に な る 。
lisa
CUNETS = ALL ユ ー ザ lisa は 、 エ イ リ ア ス が CUNETS の い か な る ホ ス ト で も 、 任 意 の コ マ ン ド を 実 行 す る こ と が で き る (す な わ ち 、 128.138.0.0 と い う class B ネ ッ ト ワ ー ク の マ シ ン だ )。
operator
ALL = DUMPS, KILL, SHUTDOWN, HALT, REBOOT, PRINTING,\
sudoedit /etc/printcap, /usr/oper/bin/ ユ ー ザ operator は 、 簡 単 な 保 守 管 理 に 用 途 が 限 定 さ れ た コ マ ン ド を 実 行 で き る 。 こ の 場 合 そ れ は 、 バ ッ ク ア ッ プ し た り 、 プ ロ セ ス を kill し た り 、 印 刷 シ ス テ ム を 操 作 し た り 、 シ ス テ ム を シ ャ ッ ト ダ ウ ン し た り す る の に 関 係 す る コ マ ン ド と 、 /usr/oper/bin/ デ ィ レ ク ト リ に あ る 任 意 の コ マ ン ド で あ る 。 注 意 : DUMPS と い う Cmnd_Alias に 属 す る コ マ ン ド の ひ と つ 、 す な わ ち /home/operator/bin/start_backups は 、 sha224 ダ イ ジ ェ ス ト 付 き で あ る 。 そ う し て い る の は 、 そ の ス ク リ プ ト が 置 か れ て い る デ ィ レ ク ト リ が operator ユ ー ザ に よ っ て 書 き 込 み 可 能 だ か ら だ 。 ス ク リ プ ト が 変 更 さ れ た 場 合 (そ の 結 果 、 ダ イ ジ ェ ス ト が 一 致 し な い こ と に な る )、 sudo 経 由 で そ の ス ク リ プ ト を 実 行 す る こ と は も は や 不 可 能 に な る 。
joe
ALL = /usr/bin/su operator ユ ー ザ joe は 、 su(1) を 使 っ て operator に な る こ と し か で き な い 。
pete
HPPA = /usr/bin/passwd [A−Za−z]*, !/usr/bin/passwd root
%opers
ALL = (: ADMINGRP) /usr/sbin/
opers グ ル ー プ の ユ ー ザ は 、 /usr/sbin/ に あ る コ マ ン ド を 、 自 分 自 身 の 資 格 で 、 Runas_Alias ADMINGRP に 属 す る 任 意 の グ ル ー プ (す な わ ち 、 adm か oper グ ル ー プ ) と し て 実 行 で き る 。 ユ ー ザ pete は 、 HPPA に 属 す る マ シ ン で root 以 外 な ら 誰 の パ ス ワ ー ド で も 変 更 す る こ と を 許 さ れ て い る 。 コ マ ン ド ラ イ ン 引 き 数 は 、 結 合 し て 一 つ の 文 字 列 に し た 上 で 、 マ ッ チ ン グ を 行 う の で 、 ワ イ ル ド カ ー ド ’*’ は 、 複 数 の 単 語 と マ ッ チ す る こ と に な る 。 だ か ら 、 こ の 例 は 、 passwd(1) が コ マ ン ド ラ イ ン で 複 数 の ユ ー ザ 名 を 受 け 付 け な い こ と を 前 提 と し て い る の で あ る 。 GNU の シ ス テ ム で は 、 passwd(1) に 対 す る オ プ シ ョ ン を ユ ー ザ 引 き 数 の 後 ろ に 置 く こ と が で き る の に 注 意 し て い た だ き た い 。 そ の た め 、 こ の ル ー ル は 次 の よ う な コ マ ン ド も 許 可 し て し ま う こ と に な る 。
passwd username −−expire こ れ は 、 望 ま し く な い こ と か も し れ な い 。
bob
SPARC = (OP) ALL : SGI = (OP) ALL ユ ー ザ bob は 、 SPARC や SGI に 属 す る マ シ ン で Runas_Alias OPに 登 録 さ れ て い る 任 意 の ユ ー ザ と し て (root と operator で あ る ) ど ん な コ マ ン ド で も 実 行 で き る 。
jim
+biglab = ALL ユ ー ザ jim は 、 biglab ネ ッ ト グ ル ー プ に 属 す る マ シ ン で 、 ど ん な コ マ ン ド で も 実 行 で き る 。 sudo は 、 "biglab" に ’+’ の 接 頭 辞 が 付 い て い る の で 、 そ れ を ネ ッ ト グ ル ー プ だ と 認 識 す る 。
+secretaries
ALL = PRINTING, /usr/bin/adduser, /usr/bin/rmuser
secretaries ネ ッ ト グ ル ー プ の ユ ー ザ は 、 ユ ー ザ の 追 加 や 削 除 は も ち ろ ん 、 プ リ ン タ の 管 理 に も 協 力 す る 必 要 が あ る 。 そ こ で 、 す べ て の マ シ ン で そ の 種 の コ マ ン ド の 実 行 を 認 め ら れ て い る 。
fred
ALL = (DB) NOPASSWD: ALL ユ ー ザ fred は 、 Runas_Alias DB の 任 意 の ユ ー ザ と し て (oracle か sybase だ ) パ ス ワ ー ド を 入 力 し な い で も コ マ ン ド を 実 行 す る こ と が で き る 。
john
ALPHA = /usr/bin/su [!−]*, !/usr/bin/su *root* ユ ー ザ john は 、 ALPHA に 属 す る マ シ ン で su(1) を 使 っ て root 以 外 の 誰 に で も な る こ と が で き る が 、 su に オ プ シ ョ ン を 指 定 す る こ と は 許 さ れ て い な い 。
jen
ALL, !SERVERS = ALL ユ ー ザ jen は 、 Host_Alias SERVERS に 属 す る マ シ ン (master, mail, www, ns) を 除 く い か な る マ シ ン で も 、 任 意 の コ マ ン ド を 実 行 で き る 。
jill
SERVERS = /usr/bin/, !SU, !SHELLS
jill は 、 Host_Alias SERVERS の い か な る マ シ ン で も /usr/bin/ デ ィ レ ク ト リ に あ る 任 意 の コ マ ン ド を 実 行 で き る が 、 SU や SHELLS と い う Cmnd_Alias に 属 す る コ マ ン ド は 実 行 で き な い 。 ル ー ル の こ の く だ り で は 特 に 言 っ て い な い が 、 Cmnd_Alias PAGER の コ マ ン ド は す べ て /usr/bin に あ り 、 noexec オ プ シ ョ ン が 設 定 さ れ て い る 。
steve
CSNETS = (operator) /usr/local/op_commands/ ユ ー ザ steve は 、 デ ィ レ ク ト リ /usr/local/op_commands/ に あ る 任 意 の コ マ ン ド を 実 行 で き る が 、 operator と い う ユ ー ザ と し て 実 行 で き る だ け だ 。
matt
valkyrie = KILL
matt も 、 自 分 用 の ワ ー ク ス テ ー シ ョ ン valkyrie で 、 ハ ン グ し た プ ロ セ ス の kill ぐ ら い は で き る 必 要 が あ る 。
WEBMASTERS
www = (www) ALL, (root) /usr/bin/su www ホ ス ト www で User_Alias WEBMASTERS に 属 す る い か な る ユ ー ザ も (will, wendy, wim だ )、 ユ ー ザ www (web ペ ー ジ の 所 有 者 ) と し て 任 意 の コ マ ン ド を 実 行 す る こ と が で き る 。 単 に su(1) で ユ ー ザ www に な っ て も よ い 。
ALL
CDROM = NOPASSWD: /sbin/umount /CDROM,\
/sbin/mount −o nosuid,円nodev /dev/cd0a /CDROM い か な る ユ ー ザ も 、 Host_Alias が CDROM の マ シ ン で (orion, perseus, hercules)、 パ ス ワ ー ド を 入 力 す る こ と な く CD−ROM を マ ウ ン ト 、 ア ン マ ウ ン ト で き る 。 上 記 の コ マ ン ド を 打 ち 込 む の は ユ ー ザ に と っ て い さ さ か 面 倒 な の で 、 シ ェ ル ス ク リ プ ト と し て カ プ セ ル 化 し て し ま う の が よ い だ ろ う 。
[訳 注 ]: 注 意 し て い た だ き た い が 、
/etc/sudoers フ ァ イ ル に 「 user1 ALL =
(ALL) ALL」 と い っ た 設 定 を 書 い て も 、 user1 が sudo 経 由 で あ ら ゆ る コ マ ン ド を 実 行 で き る よ う に な る の は 、 自 ホ ス ト 、 す な わ ち 、 そ の /etc/sudoers が 存 在 す る ホ ス ト だ け で あ っ て 、 telnet や ssh で 接 続 し た ホ ス ト で sudo 経 由 で コ マ ン ド を 実 行 で き る と は か ぎ ら な い 。 他 ホ ス ト の sudo は 、 自 分 の と こ ろ に あ る /etc/sudoers フ ァ イ ル し か 参 照 し な い か ら で あ る 。 そ れ で は 、 何 故 、 上 記 の 「 用 例 」 で 自 ホ ス ト 以 外 の 設 定 が 行 わ れ て い る の だ ろ う か ? そ も そ も 、 sudoers の 書 式 で 自 ホ ス ト 以 外 の ホ ス ト を 指 定 で き る の は 、 何 故 な の か ? ホ ス ト に ALL を 指 定 で き る の は 、 何 故 な の か ? そ れ は 、 管 理 し て い る サ イ ト の す べ て の ホ ス ト の 設 定 を 記 し た sudoers フ ァ イ ル を 一 つ 作 っ て 、 そ れ を す べ て の ホ ス ト に コ ピ ー し て 使 う 、 そ う い っ た 使 い 方 を 想 定 し て い る か ら だ ろ う 。 昔 の 習 慣 の 名 残 り か も し れ な い 。 も し 、 サ イ ト 中 の す べ て の ホ ス ト の 設 定 を 一 ヶ 所 に ま と め て 置 き 、 そ れ を す べ て の ホ ス ト に 共 有 さ せ た い の な ら (す な わ ち 、 sudoers セ キ ュ リ テ ィ ポ リ シ ー 設 定 の 集 中 管 理 が し た い の な ら )、 LDAP の 採 用 を 考 え る べ き で あ る 。
セ キ ュ リ テ ィ に 関 す る 注 意 点
’!’ 演 算 子 の 限 界 一 般 的 に 言 っ て 、 演 算 子 ’!’ を 使 用 し て ALL か ら コ マ ン ド の 「 引 き 算 」 を す る の は 、 あ ま り 効 果 的 な 方 法 で は な い 。 ユ ー ザ は 実 行 し た い コ マ ン ド を 名 前 を 変 え て コ ピ ー し 、 そ れ か ら そ れ を 実 行 す る と い っ た 簡 単 な 方 法 で 、 裏 を か く こ と が で き る か ら だ 。 た と え ば 、
bill ALL = ALL, !SU, !SHELLS と い う 行 は 、 SU や SHELLS に 列 記 さ れ て い る コ マ ン ド の bill に よ る 実 行 を 、 本 当 に 阻 止 す る こ と に は な ら な い 。 な ぜ な ら 、 bill と し て は 、 そ う し た コ マ ン ド を 単 に 名 前 を 変 え て コ ピ ー す れ ば よ い し 、 エ デ ィ タ な ど の プ ロ グ ラ ム か ら シ ェ ル ・ エ ス ケ ー プ を 利 用 す る こ と も で き る か ら だ 。 だ か ら 、 こ の 種 の 制 限 は や っ た 方 が ま し 程 度 に 考 え て お く べ き で あ る (そ し て 、 し っ か り し た 運 用 方 針 に よ っ て 制 限 の 実 効 力 を 上 げ る べ き だ )。 一 般 に 、 も し ユ ー ザ に 許 可 す る コ マ ン ド に ALL が 入 っ て い る な ら ば 、 ユ ー ザ が 自 分 で プ ロ グ ラ ム を 作 っ て (あ る い は 、 シ ェ ル を 自 分 専 用 に 別 の 名 前 で コ ピ ー し て )、 ル ー ト ・ シ ェ ル を 獲 得 す る の を 防 ぐ こ と は で き な い 。 ユ ー ザ 設 定 で ど ん な 項 目 に ’!’ を 付 け よ う と も 防 止 不 可 能 で あ る 。
fast_glob
の 持 つ セ キ ュ
リ テ ィ 上 の 問
題
fast_glob オ プ シ ョ ン
が 使 わ れ て い
る 場 合 、 パ ス
名 に glob 文 字 (ワ イ
ル ド カ ー ド と
も 言 う ) が 含 ま
れ る コ マ ン ド
を 確 実 に 無 効
に す る こ と は
不 可 能 で あ る
。 そ の 理 由 は
、 C ラ イ ブ ラ リ
の fnmatch(3) 関 数 は 、
相 対 パ ス の パ
ス 名 展 開 が で
き な い か ら だ
。 こ の こ と は
、 権 限 を 許 可
す る ル ー ル に
と っ て は 、 た
い て い の 場 合
不 便 な だ け に
す ぎ な い が 、
権 限 を 減 ら し
た り 、 取 り 消
し た り す る ル
ー ル に と っ て
は 、 セ キ ュ リ
テ ィ 上 の 問 題
を も た ら し か
ね な い 。 た と
え ば 、 sudoers フ ァ
イ ル に 次 の エ
ン ト リ が あ っ
た と し よ う 。
john ALL =
/usr/bin/passwd [a−zA−Z0−9]*,
/usr/bin/chsh [a−zA−Z0−9]*,\
/usr/bin/chfn [a−zA−Z0−9]*, !/usr/bin/*
root そ れ で も 、
fast_glob が 有 効 に
な っ て い れ ば
、 john は "/usr/bin/passwd
root" を 実 行 で き
て し ま う 。 /usr/bin
に 移 動 し て 、
"./passwd root" を 実 行
す れ ば よ い の
だ 。 シ ェ ル ・
エ ス ケ ー プ の
防 止
sudo が あ る プ ロ
グ ラ ム を 実 行
し た 場 合 、 そ
の プ ロ グ ラ ム
は 、 ほ か の プ
ロ グ ラ ム の 実
行 も 含 め て 、
何 で も 自 由 に
好 き な こ と が
で き る 。 こ の
こ と が セ キ ュ
リ テ ィ 上 の 問
題 に な り か ね
な い の は 、 プ
ロ グ ラ ム が シ
ェ ル ・ エ ス ケ
ー プ を 許 し て
い る の は 珍 し
い こ と で は な
く 、 そ の た め
に 、 ユ ー ザ が
sudo の ア ク セ ス
制 御 や ロ ギ ン
グ を す り 抜 け
る こ と が 可 能
に な る か ら だ
。 よ く 使 う プ
ロ グ ラ ム で シ
ェ ル ・ エ ス ケ
ー プ を 許 し て
い る も の に は
、 (当 然 な が ら )
シ ェ ル 、 エ デ
ィ タ 、 ペ ー ジ
ャ 、 メ ー ラ 、
タ ー ミ ナ ル な
ど が あ る 。 こ
の 問 題 に 対 処
す る に は 、 基
本 的 に 二 つ の
方 法 が あ る 。
制 限 ユ ー ザ に 任 意 の コ マ ン ド の 実 行 を 許 す よ う な コ マ ン ド に 対 し て 、 ユ ー ザ が ア ク セ ス で き な い よ う に す る 。 エ デ ィ タ の 場 合 は 、 制 限 モ ー ド
(restricted mode) と 称 し て 、 シ ェ ル ・ エ ス ケ ー プ が 使 え な い モ ー ド を 持 っ て い る も の も 多 い 。 と は 言 え 、 sudo 経 由 で エ デ ィ タ を 使 う の な ら 、 sudoedit を 使 用 す る 方 が よ り 優 れ た 対 策 で あ る 。 シ ェ ル ・ エ ス ケ ー プ を 提 供 す る プ ロ グ ラ ム は た く さ ん あ る の で 、 そ れ を 提 供 し な い プ ロ グ ラ ム の み を 使 用 す る よ う に ユ ー ザ を 制 限 す る の は 、 た い て い 実 現 不 可 能 で あ る 。
noexec 共 有 ラ イ ブ ラ リ を サ ポ ー ト し て い る シ ス テ ム に は 、 環 境 変 数
(た い
て い は LD_PRELOAD) で 別 の 共 有 ラ イ ブ ラ リ を 指 定 す る こ と に よ っ て 、 デ フ ォ ル ト の ラ イ ブ ラ リ 関 数 を 置 き 換 え る こ と が で き る も の が 多 い 。 そ う い っ た シ ス テ ム で は 、 sudo の noexec 機 能 を 使 え ば 、 sudo か ら 実 行 さ れ る プ ロ グ ラ ム が 、 何 か ほ か の プ ロ グ ラ ム を 実 行 す る の を 防 ぐ こ と が で き る 。 と は 言 え 、 こ れ が 当 て は ま る の は 、 動 的 に リ ン ク さ れ た ネ イ テ ィ ブ な プ ロ グ ラ ム だ け だ と い う こ と に 留 意 し て ほ し い 。 静 的 に リ ン ク さ れ た プ ロ グ ラ ム や 、 バ イ ナ リ ・ エ ミ ュ レ ー シ ョ ン の も と で 動 く ほ か の OS の プ ロ グ ラ ム に は 効 果 が な い 。
noexec 機 能 は SunOS, Solaris, *BSD, Linux, IRIX, Tru64 UNIX, MacOS X, HP−UX 11.x、 そ れ に 5.3 以 上 の AIX で 使 え る こ と が わ か っ て い る 。 環 境 変 数 LD_PRELOAD を サ ポ ー ト し て い る た い て い の オ ペ レ ー テ ィ ン グ シ ス テ ム が 、 こ の 機 能 に 対 応 し て い る は ず だ 。 使 用 し て い る オ ペ レ ー テ ィ ン グ シ ス テ ム の マ ニ ュ ア ル ペ ー ジ を 調 べ て 、 ダ イ ナ ミ ッ ク ・ リ ン カ に つ い て (通 例 ld.so, ld.so.1, dyld, dld.sl, rld, loader と い っ た 名 前 に な っ て い る ) LD_PRELOAD が サ ポ ー ト さ れ て い る か ど う か 確 認 し て い た だ き た い 。 あ る コ マ ン ド に 対 し て noexec を 有 効 に す る に は 、 上 述 の 「 ユ ー ザ 設 定 」 セ ク シ ョ ン で 解 説 し た よ う に 、 NOEXEC タ グ を 使 用 す る 。 そ の と き の 例 を 再 掲 し よ う 。
aaron shanty = NOEXEC: /usr/bin/more, /usr/bin/vi こ の 例 で は 、 ユ ー ザ aaron 対 し て 、 noexec を 有 効 に し た 上 で 、 /usr/bin/more と /usr/bin/vi の 実 行 を 許 可 し て い る 。 こ の よ う に す れ ば 、 こ の 二 つ の コ マ ン ド か ら (シ ェ ル の よ う な ) ほ か の コ マ ン ド を 実 行 す る こ と が で き な く な る わ け だ 。 使 用 し て い る シ ス テ ム が noexec に 対 応 す る 能 力 が あ る か ど う か よ く わ か ら な い 場 合 で も 、 取 り あ え ず 試 し て み る こ と な ら 、 い つ だ っ て で き る 。 noexec を 有 効 に し て 、 シ ェ ル ・ エ ス ケ ー プ が 可 能 か ど う か 確 か め て み れ ば よ い の だ 。 注 意 し て ほ し い が 、 シ ェ ル ・ エ ス ケ ー プ の 禁 止 は 万 能 薬 で は な い 。 root の 権 限 で 動 い て い る プ ロ グ ラ ム に は 、 ほ か に も 、 危 険 性 の あ る さ ま ざ ま な 作 業 (フ ァ イ ル の 属 性 を 変 更 す る と か 、 上 書 き し て し ま う と か ) が 可 能 で あ り 、 思 い が け ず に 権 限 を 拡 大 し て し ま う こ と も あ り え る の だ 。 特 に エ デ ィ タ に つ い て 言 う と 、 ユ ー ザ に は sudoedit を 実 行 す る 許 可 を 与 え る の が 、 よ り 安 全 な 方 法 で あ る (下 記 参 照 )。 安 全 な 編 集 作 業
sudoers プ ラ グ イ ン で は sudoedit が 使 用 で き る よ う に な っ て お り 、 ユ ー ザ は 好 み の エ デ ィ タ を 使 っ て 、 安 全 に フ ァ イ ル を 編 集 す る こ と が で き る 。 sudoedit は sudo の 組 み 込 み コ マ ン ド な の で 、 sudoers フ ァ イ ル 中 で 指 定 す る と き は 、 頭 に パ ス を 付 け て は い け な い 。 た だ し 、 コ マ ン ド ラ イ ン 引 き 数 に つ い て は 、 通 常 の コ マ ン ド と 全 く 同 じ よ う に 指 定 す る こ と が で き る 。 sudoedit の コ マ ン ド ラ イ ン 引 き 数 に ワ イ ル ド カ ー ド を 使 用 し た 場 合 は 、 sudoedit の 引 き 数 に は パ ス 名 が 来 る は ず な の で 、 ワ イ ル ド カ ー ド は フ ォ ワ ー ド ス ラ ッ シ ュ (’/’) に マ ッ チ し な い よ う に な っ て い る 。
sudo 経 由 で 実 行 さ れ る 他 の コ マ ン ド と は 違 っ て 、 エ デ ィ タ ー は sudo を 起 動 す る ユ ー ザ の 資 格 で 、 環 境 を 変 更 せ ず に 実 行 さ れ る 。 詳 し く は 、 sudo(8) の マ ニ ュ ア ル の −e オ プ シ ョ ン の 説 明 を ご 覧 に な る と よ い 。 た と え ば 、 ユ ー ザ operator が "message of the day" フ ァ イ ル を 編 集 で き る よ う に す る に は 、 sudoers で 次 の よ う に 指 定 す る 。
operator ALL = sudoedit /etc/motd そ し て 、 ユ ー ザ operator は 、 sudoedit を 次 の よ う に 実 行 す る 。
$ sudoedit /etc/motd エ デ ィ タ は 、 root で は な く 、 ユ ー ザ operator の 資 格 で 、 /etc/motd の 作 業 用 コ ピ ー に 対 し て 実 行 さ れ る 。 フ ァ イ ル の 編 集 が 済 む と 、 /etc/motd は 作 業 用 コ ピ ー の 内 容 で 更 新 さ れ る こ と に な る 。 ユ ー ザ が 書 き 込 み 権 限 を 持 っ て い る デ ィ レ ク ト リ に 存 在 す る フ ァ イ ル に 対 し て 、 フ ァ イ ル 名 を 直 接 指 定 し て で あ れ 、 ワ イ ル ド カ ー ド に よ っ て 指 定 し て で あ れ 、 sudoedit を 使 っ て 編 集 す る 許 可 を そ の ユ ー ザ に 与 え て は い け な い 。 も し 、 ユ ー ザ が デ ィ レ ク ト リ に 対 し て 書 き 込 み 権 限 を 持 っ て い る な ら ば 、 編 集 を 許 可 さ れ た フ ァ イ ル を 、 別 の フ ァ イ ル に 対 す る リ ン ク で 置 き 換 え る こ と が で き る わ け で 、 そ う す る こ と に よ っ て 、 任 意 の ど ん な フ ァ イ ル で も 編 集 で き る よ う に な っ て し ま う か ら だ 。 そ う し た 事 態 を 防 ぐ た め に 、 バ ー ジ ョ ン 1.8.16 以 降 の sudoedit で は 、 sudoedit_checkdir オ プ シ ョ ン が 無 効 に な っ て い る 場 合 や 、 sudoedit を 実 行 す る ユ ー ザ が root で あ る 場 合 を 除 い て 、 ユ ー ザ が 書 き 込 み 権 限 を 持 っ て い る デ ィ レ ク ト リ に 存 在 す る い か な る シ ン ボ リ ッ ク リ ン ク も 、 た ど ら な い よ う に な っ て い る 。 ま た 、 書 き 込 み 権 限 が あ る デ ィ レ ク ト リ に 存 在 す る フ ァ イ ル の 編 集 を 行 う こ と も 拒 否 す る 。 さ ら に 、 バ ー ジ ョ ン 1.8.15 以 降 の sudoedit で は 、 sudoers フ ァ イ ル で sudoedit_follow オ プ シ ョ ン が 有 効 に な っ て い る か 、 sudoedit コ マ ン ド の 前 に FOLLOW タ グ が 指 定 し て あ る か の ど ち ら か で な い か ぎ り 、 シ ン ボ リ ッ ク リ ン ク を オ ー プ ン し な い よ う に な っ て い る 。 タ イ ム ス タ ン プ ・ フ ァ イ ル の チ ェ ッ ク
sudoers は 、 タ イ ム ス タ ン プ ・ デ ィ レ ク ト リ (デ フ ォ ル ト で は /var/run/sudo/ts) の 所 有 者 を 調 べ て 、 所 有 者 が root で な か っ た り 、 root 以 外 の ユ ー ザ に も 書 き 込 み 可 能 で あ っ た り す る と 、 そ の デ ィ レ ク ト リ の 中 身 を 無 視 す る 。 古 い バ ー ジ ョ ン の sudo は 、 タ イ ム ス タ ン プ ・ フ ァ イ ル を /tmp に 置 い て い た が 、 そ う し た こ と は 今 で は 推 奨 で き な い 。 特 権 を 持 た な い ユ ー ザ が 自 分 の 作 っ た フ ァ イ ル の 所 有 者 を 変 更 で き る シ ス テ ム で は 、 ユ ー ザ が タ イ ム ス タ ン プ を 自 分 で 作 成 す る こ と が 可 能 に な る か も し れ な い か ら だ 。 タ イ ム ス タ ン プ ・ デ ィ レ ク ト リ は 、 リ ブ ー ト し た と き に そ の 中 身 を 消 去 さ れ る べ き だ が 、 す べ て の シ ス テ ム に /var/run デ ィ レ ク ト リ が 存 在 す る と は か ぎ ら な い 。 問 題 が 起 き る の を 避 け る た め に 、 sudoers は 、 ブ ー ト タ イ ム を 参 照 で き る シ ス テ ム で は 、 マ シ ン が ブ ー ト し た 時 刻 よ り も 古 い 日 時 を 持 つ タ イ ム ス タ ン プ ・ フ ァ イ ル を 無 視 す る 。 グ ラ フ ィ カ ル な デ ス ク ト ッ プ 環 境 を 持 っ て い る シ ス テ ム の 中 に は 、 特 権 を 持 た な い ユ ー ザ に シ ス テ ム ・ ク ロ ッ ク の 変 更 を 許 し て い る も の が あ る 。 sudoers は 、 タ イ ム ス タ ン プ が 有 効 か 否 を 確 認 す る の に 、 シ ス テ ム ・ ク ロ ッ ク を 拠 り 所 に し て い る 。 そ こ で 、 そ う し た シ ス テ ム で は 、 ユ ー ザ が ク ロ ッ ク を 後 戻 り さ せ る こ と で 、 timestamp_timeout よ り も 長 い 時 間 sudo を 実 行 す る こ と が 可 能 に な る か も し れ な い 。 そ う し た 事 態 に 対 抗 す る た め 、 sudoers は 、 シ ス テ ム が サ ポ ー ト し て い る な ら ば 、 タ イ ム ス タ ン プ に 単 調 増 加 時 計 (monotonic clock) を 使 用 す る (単 調 増 加 時 計 は 後 戻 り す る こ と が な い か ら だ )。
sudoers は あ ま り に も 未 来 に 設 定 さ れ た タ イ ム ス タ ン プ を 認 め な い 。 タ イ ム ス タ ン プ が 「 現 在 時 + 2 * TIMEOUT」 よ り 新 し い 日 時 だ っ た 場 合 、 そ の タ イ ム ス タ ン プ は 無 視 さ れ 、 sudoers は ロ グ に 記 録 し て 、 警 告 を 発 す る 。 タ イ ム ス タ ン プ ・ フ ァ イ ル は フ ァ イ ル シ ス テ ム 中 に 作 ら れ る も の だ か ら 、 ユ ー ザ の ロ グ イ ン ・ セ ッ シ ョ ン が 終 わ っ て も 残 っ て い る 。 そ の た め 、 ユ ー ザ が ロ グ イ ン し 、 認 証 を 行 っ て か ら sudo を 使 っ て コ マ ン ド を 実 行 し 、 一 旦 ロ グ ア ウ ト し て 、 再 度 ロ グ イ ン し た と き 、 認 証 な し で sudo を 実 行 す る こ と が 可 能 に な っ て し ま う か も し れ な い 。 タ イ ム ス タ ン プ ・ フ ァ イ ル に 記 録 さ れ て い る タ イ ム ス タ ン プ が 5 分 以 内 の も の で あ れ ば (あ る い は 、 sudoers フ ァ イ ル で 設 定 さ れ て い る タ イ ム ア ウ ト 時 間 以 内 の も の で あ れ ば )、 そ う い う こ と が 可 能 か も し れ な い の だ 。 tty_tickets オ プ シ ョ ン が 有 効 な 場 合 は 、 タ イ ム ス タ ン プ の 記 録 に 、 ユ ー ザ が 認 証 す る と き に 使 っ た 端 末 の デ バ イ ス 番 号 が 含 ま れ る 。 そ れ よ っ て 、 tty ご と の き め 細 か な 管 理 が 可 能 に な る が 、 そ れ で も タ イ ム ス タ ン プ の 記 録 が 、 ユ ー ザ の セ ッ シ ョ ン が 終 わ っ た 後 ま で 有 効 で あ る 可 能 性 も あ る 。 ま た 、 タ イ ム ス タ ン プ の 記 録 に は 、 最 後 に 認 証 を 行 っ た プ ロ セ ス の セ ッ シ ョ ン ID も 含 ま れ て い る 。 別 の 端 末 セ ッ シ ョ ン の プ ロ セ ス が 、 同 じ タ イ ム ス タ ン プ の 記 録 を 使 え な い よ う に し て い る の だ 。 そ れ は ま た 、 ユ ー ザ が ロ グ ア ウ ト し 、 再 度 同 じ 端 末 に ロ グ イ ン し た と き に 、 パ ス ワ ー ド を 入 力 す る こ と な し に sudo を 実 行 で き る 可 能 性 を 減 少 さ せ る 役 に も 立 っ て い る 。
デ バ ッ ギ ン グ
バ ー ジ ョ ン 1.8.4 以 上 の sudoers プ ラ グ イ ン は 、 デ バ ッ グ の た め の 柔 軟 な 枠 組 み を サ ポ ー ト し て お り 、 問 題 が 発 生 し た と き に 、 プ ラ グ イ ン の 内 部 で 何 が 起 き て い る か を 突 き 止 め る た め に 、 そ れ を 利 用 す る こ と が で き る 。 設 定 は sudo.conf(5) フ ァ イ ル で 行 う こ と が 可 能 だ 。
sudoers プ ラ グ イ ン は 、 フ ロ ン ト エ ン ド で あ る sudo と 同 じ デ バ ッ グ ・ フ ラ グ の 書 式 を 使 用 す る 。 す な わ ち 、 subsystem@priority で あ る 。
sudoers が 使 用 す る priority (重 大 度 ) を 深 刻 な も の か ら 挙 げ る と 、 crit, err, warn, notice, diag, info, trace, debug で あ る 。 あ る priority を 指 定 す る と 、 そ れ よ り 深 刻 な す べ て の priority も 併 せ て 指 定 し た こ と に な る 。 た と え ば 、 notice と い う priority を 指 定 す れ ば 、 notice レ ベ ル 以 上 の デ バ ッ グ メ ッ セ ー ジ が ロ グ に 記 録 さ れ る 。
sudoers で は 以 下 の サ ブ シ ス テ ム が 使 用 で き る 。
alias
User_Alias, Runas_Alias, Host_Alias and Cmnd_Alias の 処 理
all
す べ て の サ ブ シ ス テ ム に マ ッ チ す る
audit
Solaris BSM (Basic Security Module) と Linux の 監 査 コ ー ド
auth
ユ ー ザ の 認 証
defaults
sudoers フ ァ イ ル の Defaults 設 定
env
環 境 の 取 扱 い
ldap
LDAP を 使 用 す る sudoers
logging
ロ ギ ン グ の サ ポ ー ト
match
sudoers フ ァ イ ル に お け る ユ ー ザ 、 グ ル ー プ 、 ホ ス ト 、 ネ ッ ト グ ル ー プ の マ ッ チ ン グ
netif
ネ ッ ト ワ ー ク イ ン タ ー フ ェ ー ス の 取 扱 い
nss
sudoers に お け る ネ ー ム サ ー ビ ス ・ ス イ ッ チ の 取 扱 い
parser
sudoers フ ァ イ ル の 解 析
perms
パ ー ミ ッ シ ョ ン の 設 定
plugin プ ラ グ イ ン に と っ て
main に 相 当 す る
pty 擬 似
tty 関 連 コ ー ド
rbtree 赤 黒 木
(redblack tree) の 内 部 情 報
sssd
SSSD を 使 用 す る sudoers
util ユ ー テ ィ リ テ ィ 関 数 群 一 例 を 挙 げ て お く 。
Debug sudoers.so /var/log/sudo_debug match@info,nss@info よ り 詳 し い 情 報 に つ い て は 、 sudo.conf(5) マ ニ ュ ア ル を ご 覧 い た だ き た い 。
関 連 項 目
ssh(1), su(1), fnmatch(3), glob(3), mktemp(3), strftime(3), sudo.conf(5), sudoers.ldap(5), sudo(8), sudo_plugin(5), visudo(8)
作 者
多 数 の 人 々 が 長 年 に 渡 っ て sudo の 開 発 に 携 わ っ て き た 。 当 バ ー ジ ョ ン は 主 と し て 次 の 者 が 書 い た コ ー ド か ら で き て い る 。
Todd C. Miller
sudo の 開 発 に 貢 献 し て く だ さ っ た 方 々 の 詳 細 な リ ス ト に つ い て は 、 配 布 物 中 の CONTRIBUTORS フ ァ イ ル を ご 覧 に な っ て い た だ き た い 。 (https://www.sudo.ws/contributors.html)
警 告
sudoers フ ァ イ ル の 編 集 に は 、 必 ず visudo コ マ ン ド を 使 う べ き で あ る 。 そ う す れ ば 、 visudo が フ ァ イ ル を ロ ッ ク し 、 文 法 の チ ェ ッ ク を や っ て く れ る 。 sudoers フ ァ イ ル に 文 法 的 な 間 違 い が あ る と 、 sudo が 動 か な く な る の で 、 sudoers フ ァ イ ル に は 文 法 エ ラ ー が 絶 対 に あ っ て は な ら な い の だ 。 ネ ッ ト グ ル ー プ を (ユ ー ザ に つ い て で は な く ) マ シ ン に つ い て 使 用 し 、 netgroup フ ァ イ ル に 完 全 修 飾 ホ ス ト 名 を 記 載 す る 場 合 は (た い て い そ う す る も の だ が )、 そ の マ シ ン の ホ ス ト 名 を hostname コ マ ン ド が 出 力 す る 通 り の 完 全 修 飾 名 で 書 く か 、 さ も な け れ ば 、 sudoers フ ァ イ ル で fqdn オ プ シ ョ ン を 使 う か し な け れ ば な ら な い 。
バ グ
sudo に バ グ を 発 見 し た と 思 っ た ら 、 https://bugzilla.sudo.ws/ に ア ク セ ス し て 、 バ グ レ ポ ー ト を 提 出 し て い た だ き た い 。
サ ポ ー ト
あ る 程 度 の 無 料 サ ポ ー ト が sudo−users メ ー リ ン グ リ ス ト を 通 し て 利 用 で き る 。 購 読 や ア ー カ イ ブ の 検 索 に は 、 次 の URL を ご 覧 に な る と よ い 。 https://www.sudo.ws/mailman/listinfo/sudo−users
免 責
sudo は 「 現 状 の ま ま 」 提 供 さ れ る 。 明 示 的 な 、 あ る い は 黙 示 的 な い か な る 保 証 も 、 商 品 性 や 特 定 目 的 へ の 適 合 性 に つ い て の 黙 示 的 な 保 証 を 含 め 、 ま た そ れ の み に 止 ま ら ず 、 こ れ を 否 認 す る 。 詳 細 な 全 文 に つ い て は 、 sudo と 一 緒 に 配 布 さ れ て い る LICENSE フ ァ イ ル や 、 次 の Web ペ ー ジ を ご 覧 い た だ き た い 。 https://www.sudo.ws/license.html