sudo
| 開発元 | Todd C. Miller |
|---|---|
| 初版 | 1990年ころ |
| 最新版 | 1.8.6p5 / 2013年01月24日[1] |
| 最新評価版 | 1.8.6rc3 / 2012年08月31日 |
| 対応OS | Unix系 |
| サポート状況 | 開発中 |
| 種別 | 特権付与 |
| ライセンス | ISC-style [2] |
| 公式サイト | http://www.sudo.ws/ |
sudo(“su do”)はUNIXおよびUnix系オペレーティングシステムのプログラムの1つで、ユーザーが別のユーザー(通常、スーパーユーザーすなわち root)の特権レベルでプログラムを実行するためのコマンドである。デフォルトではその別ユーザーのパスワード入力を求めてくるが、設定を変更すれば root のパスワードを求めるようにもできるし、擬似端末につき1回だけパスワードを入力すればよいようにも、全くパスワード入力を求めないようにもできる[3]。sudo は各コマンド実行を記録でき、スーパーユーザーとしてのログインの完全な代替として使う場合もある。例えば、アップルの Mac OS X や Linuxディストリビューションの Ubuntu はそのような使い方をしている[4][5]。
オリジナルのプログラムは1990年ごろ、ニューヨーク州立大学バッファロー校の計算機科学科で Bob Coggeshall と Cliff Spencer が開発した。現在も活発に開発が続いており、OpenBSD の開発者である Todd C. Miller が開発・保守を行っている[6]。ライセンスはBSD系である。
目次 |
利点 [編集]
suを使わずsudoを推奨するオペレーティングシステムでは以下のような利点が挙げられる。[7]
- オペレーティングシステムをインストールする際の、設定項目を減らすことができる。
- ユーザが余計なパスワードを覚えなくてもよくなる。
- 大きな変更を加える際、パスワードの入力を求められるようにすることで、ユーザは何をしようとしているか再認識することができる。
- sudoコマンド実行ログが残り、何か不具合が発生した際にどのようなコマンドを実行したのかを確認することができる。システム監視の意味でも有用。
- rootアカウントでのログインを無効にしている場合、パスワードの総当たりなど、強引な手法でシステムに侵入を試みるクラッカーがrootアカウントで侵入できない。
- ユーザを管理者グループに追加、削除することにより、管理者権限を持つことのできるユーザーを限定できる。
- sudo は su に比べて、より細かいセキュリティポリシーを設定することができる。
- 管理者権限は短時間で自動的に破棄される。
設計 [編集]
sudo でコマンドを実行する前に、ユーザーは通常パスワードを入力する。そのパスワードが正しく、/etc/sudoers という設定ファイルにそのユーザーのアクセス権が記述されていたら、コマンドが実行される。GUI環境で使うためのグラフィカルなフロントエンドもあり、 kdesu、kdesudo、gksudo などがよく知られている。Mac OS X にもsudoのGUI環境がある。GUIフロントエンドとしての「gksudo」は、メニュー画面などに登録された管理用アイテムがクリックされる場合に利用される。デフォルトでは、ユーザーの入力したパスワードはある期間だけ保持され、その間のsudoコマンド実行ではパスワード入力を要求されない。
以下にユーザーがアクセスを拒否された例を示す。
snorri@rimu:~$ sudo vi /etc/resolv.conf
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
Password:
snorri is not in the sudoers file. This incident will be reported.
snorri@rimu:~$
下記はこの失敗が発生したときのログ、さらにその後 snorri を /etc/sudoers に追加し、sudo実行が成功したときのログである。
snorri@rimu:~$ sudo tail /var/log/auth.log Aug 5 06:00:28 localhost sudo: snorri : user NOT in sudoers ; TTY=pts/1 ; PWD =/home/snorri ; USER=root ; COMMAND=/usr/bin/vi /etc/resolv.conf Aug 5 06:01:15 localhost su[15573]: (pam_unix) session opened for user root by snorri(uid=1000) Aug 5 06:02:09 localhost sudo: snorri : TTY=pts/1 ; PWD=/home/snorri ; USER=root ; COMMAND=/usr/bin/vi /etc/resolv.conf Aug 5 06:02:49 localhost sudo: snorri : TTY=pts/1 ; PWD=/home/snorri ; USER=root ; COMMAND=/usr/bin/tail /var/log/auth.log
設定 [編集]
設定は、sudoersという設定ファイルにアクセス制御の構文を記述することによっておこなわれる。なおsudoersの編集には、visudoコマンドを使って行う。
visudoは、エディタを起動させて設定ファイルsudoersを読み込みこんでファイルsudoers.tmpをロックする。エディタが終了した時点で、管理者によってsudoersに記述した構文が正しいかを簡潔にチェックする。
sudoerは、マニュアルによると
どのユーザが何を実行できるかのリスト
を記述しておく設定ファイルである。制御の記述にはEBNFが用いられている。
関連項目 [編集]
脚注 [編集]
- ^ “Sudo Main Page”. 2013年1月26日閲覧。
- ^ Sudo License
- ^ “Manpage for sudo”. 2007年11月4日閲覧。
- ^ RootSudo - Community Ubuntu Documentation
- ^ MacDevCenter.com - Top Ten Mac OS X Tips for Unix Geeks
- ^ Miller, Todd C. “A Brief History of Sudo”. 2007年3月5日閲覧。
- ^ “suとsudoについて - Ubuntu Japanese Wiki”. 2010年10月18日閲覧。
外部リンク [編集]
- sudo ホームページ
- Manpage of SUDO JM Project
- rootsh と sudosh - ロギングのためのsudoラッパー
- Sudo Fun Mac OS X 上の sudo に関するガイド
|
||||||||||||||||||||||||||