Your SlideShare is downloading. ×
現場で役に立たないsudoの使い方
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

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

24,748
views

Published on

Published in: Technology

1 Comment
89 Likes
Statistics
Notes
  • これは新鮮なプログラムですね
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total Views
24,748
On Slideshare
0
From Embeds
0
Number of Embeds
11
Actions
Shares
0
Downloads
28
Comments
1
Likes
89
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. 現場で役に立たない sudo の使い方 #ssmjp 2013/06/28 @togakushi 1 / 30
  • 2. sudo とは ● sudo “( su do” )は UNIX および Unix 系オペ レーティングシステムのプログラムの 1 つで、 ユーザーが別のユーザー(通常、スーパーユー ザーすなわち root )の特権レベルでプログラ ムを実行するためのコマンドである。 出典: http://ja.wikipedia.org/wiki/Sudo 2 / 30
  • 3. 結論 こんなに真面目に フザけたコマンドは 見たことない!! 3 / 30
  • 4. マジメナツカイカタ 4 / 30
  • 5. 特権を制約 ● 無差別に root 権限を渡さずに限定的に使わせる – 特定ユーザ / グループのみ – 特定コマンドのみ – 特定ホストのみ – root 以外のユーザ / グループも指定可能 5 / 30
  • 6. 設定ファイルの構造 ● エイリアスの設定 ● デフォルト値の指定 ● ユーザ設定 ● 他のファイルのインクルード 順番はどうでもいいみたいだけど 最後に設定されたものが有効になる 6 / 30
  • 7. ユーザ設定 ● 誰が何をしていいか決めるところ %admin ALL=(ALL) ALL who where = (as_whom) what [ 誰が どのホストで = ( 誰に変身して ) 何を ] 7 / 30
  • 8. タグ ● ユーザ設定のコマンドリスト (what の部分 ) に はタグが指定できる ( 全 10 種 ) – NOPASSWD, PASSWD, NOEXEC, EXEC, SETENV, NOSETENV, LOG_INPUT, NOLOG_INPUT, LOG_OUTPUT, NOLOG_OUTPUT – 指定されたタグは反対の意味を持つタグが指定され るまでコマンドリストの中で継承される 8 / 30
  • 9. エイリアスの種類 ● User_Alias ● Runas_Alias ● Host_Alias ● Cmnd_Alias 9 / 30
  • 10. エイリアスの書式 ● NAME に使える文字 – 大英字、数字、アンダースコア – 先頭は英字 ● ’ ’同じタイプのエイリアスは : で区切って続け てかける Alias_Type NAME = item1, item2, … : NAME = ... 10 / 30
  • 11. デフォルト値 ( 真偽値 ) ● authenticate – 実行する度に本人確認のためのパスワードを求める ● ignore_local_sudoers – ローカルの sudoers を無視する (LDAP 側で指定 ) ● log_input – キー入力すべてをログに取る ● log_output – スクリーンに出力されるものすべてをログに取る 11 / 30
  • 12. デフォルト値 ( 真偽値) ● noexec – sudo を経由して実行されたコマンドから別のコマンドを実行でき ないようにする ● requiretty – sudo を実行するために tty を要求する ● rootpw – ユーザのパスワードではなく、 root のパスワードを求める ● runaspw – runas_default オプションで指定したユーザのパスワードを求め る 12 / 30
  • 13. デフォルト値 ( 数値 ) ● passwd_tries – ユーザがパスワード入力できる回数 ● passwd_timeout – パスワードプロンプトがタイムアウトするまでの時 間 ( 分 ) ● timestamp_timeout – 再びパスワードを要求するまでの時間 ( 分 ) 13 / 30
  • 14. デフォルト値 ( 文字列 ) ● iolog_dir – log_output や log_input が保存するディレクトリの 指定 ● iolog_file – log_output や log_input が保存するログファイル名 ● passprompt – パスワードを要求するときのプロンプト 14 / 30
  • 15. デフォルト値 ( 文字列 ) ● lecture – パスワードプロンプトに添えるレクチャーの表示 ● always :いつでも必ず表示 ● never :一切表示しない ● once :初めて実行するときだけ ● lecture_file – 表示するレクチャーをファイルで指定する 15 / 30
  • 16. 別ファイルのインクルード ● #include – 別のファイルをインクルード – 絶対パス以外で指定した場合は sudoers と同じ位置から探す ● #includedir – 指定したディレクトリのファイル全部をインクルードする – 〜で終わる場合や . が含まれるファイル名は読み飛ばされる ● この # はコメントじゃないよ! 16 / 30
  • 17. コマンドラインオプション ● -l,-ll – 何ができるか確認する ● -u,-g – 指定したユーザ / グループで実行 ● -p – パスワードプロンプトの変更 17 / 30
  • 18. コマンドラインオプション ● -k,-K – キャッシュしたパスワードを破棄 ● -v – キャッシュの延長 ● -i,-s – シェルの実行 ( 何も指定してなければ root 権限 ) 18 / 30
  • 19. sudoedit ● sudo -e と等価 19 / 30
  • 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. sudoreplay ● log_output で保存しているログを再生するコマ ンド – -l で保存されているログのリストを表示 – -l user hogehoge のように検索も可能 21 / 30
  • 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 / 30
  • 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. 罵られる ● "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. 罵られる方法 ● ” ”コンパイルオプション 侮辱 を有効にしてコンパイル – --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. 侮辱を有効にする ● /etc/sudoers に追記 – Defaults insults ● あとはパスワードを間違えるだけ! 27 / 30
  • 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 / 30
  • 30. 参考文献 ● http://ja.wikipedia.org/wiki/Sudo ● http://www.sudo.ws/ ● man sudo ● man sudoers 30 / 30

×