Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.
現場で役に立たない
sudo の使い方
#ssmjp 2013/06/28 @togakushi
1 / 30
sudo とは
● sudo “( su do” )は UNIX および Unix 系オペ
レーティングシステムのプログラムの 1 つで、
ユーザーが別のユーザー(通常、スーパーユー
ザーすなわち root )の特権レベルでプログラ
ムを実行す...
結論
こんなに真面目に
フザけたコマンドは
見たことない!!
3 / 30
マジメナツカイカタ
4 / 30
特権を制約
● 無差別に root 権限を渡さずに限定的に使わせる
– 特定ユーザ / グループのみ
– 特定コマンドのみ
– 特定ホストのみ
– root 以外のユーザ / グループも指定可能
5 / 30
設定ファイルの構造
● エイリアスの設定
● デフォルト値の指定
● ユーザ設定
● 他のファイルのインクルード
順番はどうでもいいみたいだけど
最後に設定されたものが有効になる
6 / 30
ユーザ設定
● 誰が何をしていいか決めるところ
%admin ALL=(ALL) ALL
who where = (as_whom) what
[ 誰が どのホストで = ( 誰に変身して ) 何を ]
7 / 30
タグ
● ユーザ設定のコマンドリスト (what の部分 ) に
はタグが指定できる ( 全 10 種 )
– NOPASSWD, PASSWD, NOEXEC, EXEC,
SETENV, NOSETENV, LOG_INPUT,
NOLOG...
エイリアスの種類
● User_Alias
● Runas_Alias
● Host_Alias
● Cmnd_Alias
9 / 30
エイリアスの書式
● NAME に使える文字
– 大英字、数字、アンダースコア
– 先頭は英字
● ’ ’同じタイプのエイリアスは : で区切って続け
てかける
Alias_Type NAME = item1, item2, … : NAME ...
デフォルト値 ( 真偽値 )
● authenticate
– 実行する度に本人確認のためのパスワードを求める
● ignore_local_sudoers
– ローカルの sudoers を無視する (LDAP 側で指定 )
● log_in...
デフォルト値 ( 真偽値)
● noexec
– sudo を経由して実行されたコマンドから別のコマンドを実行でき
ないようにする
● requiretty
– sudo を実行するために tty を要求する
● rootpw
– ユーザのパス...
デフォルト値 ( 数値 )
● passwd_tries
– ユーザがパスワード入力できる回数
● passwd_timeout
– パスワードプロンプトがタイムアウトするまでの時
間 ( 分 )
● timestamp_timeout
– 再...
デフォルト値 ( 文字列 )
● iolog_dir
– log_output や log_input が保存するディレクトリの
指定
● iolog_file
– log_output や log_input が保存するログファイル名
● p...
デフォルト値 ( 文字列 )
● lecture
– パスワードプロンプトに添えるレクチャーの表示
● always :いつでも必ず表示
● never :一切表示しない
● once :初めて実行するときだけ
● lecture_file
–...
別ファイルのインクルード
● #include
– 別のファイルをインクルード
– 絶対パス以外で指定した場合は sudoers と同じ位置から探す
● #includedir
– 指定したディレクトリのファイル全部をインクルードする
– 〜で...
コマンドラインオプション
● -l,-ll
– 何ができるか確認する
● -u,-g
– 指定したユーザ / グループで実行
● -p
– パスワードプロンプトの変更
17 / 30
コマンドラインオプション
● -k,-K
– キャッシュしたパスワードを破棄
● -v
– キャッシュの延長
● -i,-s
– シェルの実行 ( 何も指定してなければ root 権限 )
18 / 30
sudoedit
● sudo -e と等価
19 / 30
visudo
● sudoers を編集するコマンド
● 保存時に構文チェックを行なってくれる
● sudoers に構文エラーがあると sudo が実行で
きなくなるので注意!
% sudo -s
sudoedit: >>> /etc/sud...
sudoreplay
● log_output で保存しているログを再生するコマ
ンド
– -l で保存されているログのリストを表示
– -l user hogehoge のように検索も可能
21 / 30
LDAP と連携
● サーバの設定
– スキーマを拡張 (sudo.schema)
– sudoers の内容を追加
● 既存の sudoers から移行するツールが付属してるよ
● クライアントの設定
– nsswitch.conf で su...
フザケタツカイカタ
23 / 30
謝られる
● msgid "sorry, you are not allowed to set the following
environment variables: %s"
●
msgstr " すみませんが、あなたは次の環境変数を設定する...
罵られる
● "Wrong! You cheating scum!"
– 何やってんだ!お前はカスだ!
●
"What, what, what, what, what, what, what, what, what, what?"
– なんで?...
罵られる方法
● ” ”コンパイルオプション 侮辱 を有効にしてコンパイル
– --with-classic-insults
● include the insults from the "classic" sudo
– --with-csop...
侮辱を有効にする
● /etc/sudoers に追記
– Defaults insults
● あとはパスワードを間違えるだけ!
27 / 30
残念ながら RHEL では。。。
● 侮辱オプションは指定されていない
%configure 
--prefix=%{_prefix} --sbindir=%{_sbindir} --libdir=%{_libdir} 
--docdir=%{...
結論
こんなに真面目に
フザけたコマンドは
見たことない!!
29 / 30
参考文献
● http://ja.wikipedia.org/wiki/Sudo
● http://www.sudo.ws/
● man sudo
● man sudoers
30 / 30
Prochain SlideShare
Chargement dans…5
×

現場で役に立たないsudoの使い方

  • Soyez le premier à commenter

現場で役に立たないsudoの使い方

  1. 1. 現場で役に立たない sudo の使い方 #ssmjp 2013/06/28 @togakushi 1 / 30
  2. 2. sudo とは ● sudo “( su do” )は UNIX および Unix 系オペ レーティングシステムのプログラムの 1 つで、 ユーザーが別のユーザー(通常、スーパーユー ザーすなわち root )の特権レベルでプログラ ムを実行するためのコマンドである。 出典: http://ja.wikipedia.org/wiki/Sudo 2 / 30
  3. 3. 結論 こんなに真面目に フザけたコマンドは 見たことない!! 3 / 30
  4. 4. マジメナツカイカタ 4 / 30
  5. 5. 特権を制約 ● 無差別に root 権限を渡さずに限定的に使わせる – 特定ユーザ / グループのみ – 特定コマンドのみ – 特定ホストのみ – root 以外のユーザ / グループも指定可能 5 / 30
  6. 6. 設定ファイルの構造 ● エイリアスの設定 ● デフォルト値の指定 ● ユーザ設定 ● 他のファイルのインクルード 順番はどうでもいいみたいだけど 最後に設定されたものが有効になる 6 / 30
  7. 7. ユーザ設定 ● 誰が何をしていいか決めるところ %admin ALL=(ALL) ALL who where = (as_whom) what [ 誰が どのホストで = ( 誰に変身して ) 何を ] 7 / 30
  8. 8. タグ ● ユーザ設定のコマンドリスト (what の部分 ) に はタグが指定できる ( 全 10 種 ) – NOPASSWD, PASSWD, NOEXEC, EXEC, SETENV, NOSETENV, LOG_INPUT, NOLOG_INPUT, LOG_OUTPUT, NOLOG_OUTPUT – 指定されたタグは反対の意味を持つタグが指定され るまでコマンドリストの中で継承される 8 / 30
  9. 9. エイリアスの種類 ● User_Alias ● Runas_Alias ● Host_Alias ● Cmnd_Alias 9 / 30
  10. 10. エイリアスの書式 ● NAME に使える文字 – 大英字、数字、アンダースコア – 先頭は英字 ● ’ ’同じタイプのエイリアスは : で区切って続け てかける Alias_Type NAME = item1, item2, … : NAME = ... 10 / 30
  11. 11. デフォルト値 ( 真偽値 ) ● authenticate – 実行する度に本人確認のためのパスワードを求める ● ignore_local_sudoers – ローカルの sudoers を無視する (LDAP 側で指定 ) ● log_input – キー入力すべてをログに取る ● log_output – スクリーンに出力されるものすべてをログに取る 11 / 30
  12. 12. デフォルト値 ( 真偽値) ● noexec – sudo を経由して実行されたコマンドから別のコマンドを実行でき ないようにする ● requiretty – sudo を実行するために tty を要求する ● rootpw – ユーザのパスワードではなく、 root のパスワードを求める ● runaspw – runas_default オプションで指定したユーザのパスワードを求め る 12 / 30
  13. 13. デフォルト値 ( 数値 ) ● passwd_tries – ユーザがパスワード入力できる回数 ● passwd_timeout – パスワードプロンプトがタイムアウトするまでの時 間 ( 分 ) ● timestamp_timeout – 再びパスワードを要求するまでの時間 ( 分 ) 13 / 30
  14. 14. デフォルト値 ( 文字列 ) ● iolog_dir – log_output や log_input が保存するディレクトリの 指定 ● iolog_file – log_output や log_input が保存するログファイル名 ● passprompt – パスワードを要求するときのプロンプト 14 / 30
  15. 15. デフォルト値 ( 文字列 ) ● lecture – パスワードプロンプトに添えるレクチャーの表示 ● always :いつでも必ず表示 ● never :一切表示しない ● once :初めて実行するときだけ ● lecture_file – 表示するレクチャーをファイルで指定する 15 / 30
  16. 16. 別ファイルのインクルード ● #include – 別のファイルをインクルード – 絶対パス以外で指定した場合は sudoers と同じ位置から探す ● #includedir – 指定したディレクトリのファイル全部をインクルードする – 〜で終わる場合や . が含まれるファイル名は読み飛ばされる ● この # はコメントじゃないよ! 16 / 30
  17. 17. コマンドラインオプション ● -l,-ll – 何ができるか確認する ● -u,-g – 指定したユーザ / グループで実行 ● -p – パスワードプロンプトの変更 17 / 30
  18. 18. コマンドラインオプション ● -k,-K – キャッシュしたパスワードを破棄 ● -v – キャッシュの延長 ● -i,-s – シェルの実行 ( 何も指定してなければ root 権限 ) 18 / 30
  19. 19. sudoedit ● sudo -e と等価 19 / 30
  20. 20. visudo ● sudoers を編集するコマンド ● 保存時に構文チェックを行なってくれる ● sudoers に構文エラーがあると sudo が実行で きなくなるので注意! % sudo -s sudoedit: >>> /etc/sudoers: syntax error near line 35 <<< sudoedit: parse error in /etc/sudoers near line 35 sudoedit: no valid sudoers sources found, quitting sudoedit: unable to initialize policy plugin 20 / 30
  21. 21. sudoreplay ● log_output で保存しているログを再生するコマ ンド – -l で保存されているログのリストを表示 – -l user hogehoge のように検索も可能 21 / 30
  22. 22. LDAP と連携 ● サーバの設定 – スキーマを拡張 (sudo.schema) – sudoers の内容を追加 ● 既存の sudoers から移行するツールが付属してるよ ● クライアントの設定 – nsswitch.conf で sudoers が LDAP にあることを教える – LDAP の場所を教える ( コンパイル時に --with-ldap-conf-file で指定したファイル ) →詳しくは公式サイトで! http://www.sudo.ws/sudo/readme_ldap.html 22 / 30
  23. 23. フザケタツカイカタ 23 / 30
  24. 24. 謝られる ● msgid "sorry, you are not allowed to set the following environment variables: %s" ● msgstr " すみませんが、あなたは次の環境変数を設定すること を許可されていません : %s" ● msgid "Sorry, user %s may not run sudo on %s.n" ● msgstr " ユーザー %s は %s 上で sudo を実行できません。 すみません。 n" ● msgid "sorry, you must have a tty to run sudo" ● msgstr "sudo を実行するには tty がなければいけません。す みません " 24 / 30
  25. 25. 罵られる ● "Wrong! You cheating scum!" – 何やってんだ!お前はカスだ! ● "What, what, what, what, what, what, what, what, what, what?" – なんで?なんで?なんで?なんで?ねぇ?なんで? ● "You gotta go owwwww!" – 行っけぇぇぇーーー!! ● "I think ... err ... I think ... I think I'll go home" – え ... 間違い ... … …え え もう帰りたい ... ● "stty: unknown mode: doofus" – 不明なモード:あほ ● "Maybe if you used more than just two fingers..." – ねぇ、あなた、ひょっとして 2 本の指で打ったの ... 25 / 30
  26. 26. 罵られる方法 ● ” ”コンパイルオプション 侮辱 を有効にしてコンパイル – --with-classic-insults ● include the insults from the "classic" sudo – --with-csops-insults ● include CSOps insults – --with-hal-insults ● include 2001-like insults – --with-goons-insults ● include the insults from the "Goon Show" – --with-all-insults ● include all the sudo insult sets 26 / 30
  27. 27. 侮辱を有効にする ● /etc/sudoers に追記 – Defaults insults ● あとはパスワードを間違えるだけ! 27 / 30
  28. 28. 残念ながら RHEL では。。。 ● 侮辱オプションは指定されていない %configure --prefix=%{_prefix} --sbindir=%{_sbindir} --libdir=%{_libdir} --docdir=%{_datadir}/doc/%{name}-%{version} --with-logging=syslog --with-logfac=authpriv --with-pam --with-pam-login --with-editor=/bin/vi --with-env-editor --with-ignore-dot --with-tty-tickets --with-ldap --with-ldap-conf-file="%{_sysconfdir}/sudo-ldap.conf" --with-selinux --with-passprompt="[sudo] password for %p: " --with-linux-audit --with-sssd 28 / 30
  29. 29. 結論 こんなに真面目に フザけたコマンドは 見たことない!! 29 / 30
  30. 30. 参考文献 ● http://ja.wikipedia.org/wiki/Sudo ● http://www.sudo.ws/ ● man sudo ● man sudoers 30 / 30

    Soyez le premier à commenter

    Identifiez-vous pour voir les commentaires

  • hifumis

    Sep. 15, 2013
  • HarunoKomamura1

    Sep. 23, 2013
  • toenobu

    Oct. 4, 2013
  • kazuhisa

    Oct. 16, 2013
  • tomio2480

    Oct. 23, 2013
  • xxxcaqui

    Nov. 21, 2013
  • miguse

    Jan. 1, 2014
  • kemeo

    May. 31, 2014
  • yakumo3

    Aug. 1, 2014
  • makotouehara39

    Aug. 14, 2014
  • NakaiTaku

    Aug. 26, 2014
  • virusbb001

    Sep. 21, 2014
  • yuhasebe92

    Dec. 11, 2014
  • konishika

    Apr. 2, 2015
  • HiromichiYukawa

    Oct. 11, 2015
  • hrs_o

    Mar. 8, 2016
  • carumisu

    Oct. 28, 2016
  • takuzoo

    Feb. 26, 2017
  • AkikoIkegami

    Jun. 9, 2017
  • zukeranshin

    Sep. 26, 2017

Vues

Nombre de vues

31 904

Sur Slideshare

0

À partir des intégrations

0

Nombre d'intégrations

2 192

Actions

Téléchargements

28

Partages

0

Commentaires

0

Mentions J'aime

93

×