![]() | |
開発元 | Todd C. Miller |
---|---|
初版 | 1980年 |
最新版 |
1.9.15p
/ 2023年12月30日 [1] |
リポジトリ | |
プログラミング 言語 | C |
対応OS | Unix系 |
対応言語 | 24言語 [注釈 1] |
サポート状況 | 開発中 |
種別 | 特権付与 |
ライセンス | ISCライセンス [1] |
公式サイト |
www |
開発元 | マイクロソフト |
---|---|
リポジトリ |
github |
対応OS | Windows 11 |
サポート状況 | 開発中 |
ライセンス | MIT License |
公式サイト |
learn |
sudo(“su do”)は、UNIXおよびUnix系オペレーティングシステムのプログラムの1つで、ユーザーが別のユーザーの権限レベルでプログラムを実行するためのコマンドである。一般的に、ユーザーがスーパーユーザー(superuser、すなわちroot)の特権レベルを利用する際に用いられることが多い。
デフォルトではその別ユーザーのパスワード入力を求めてくるが、設定を変更すれば root のパスワードを求めるようにもできるし、端末(や擬似端末)につき1回だけパスワードを入力すればよいようにも、全くパスワード入力を求めないようにもできる[2]。sudo は各コマンド実行を記録でき、スーパーユーザーとしてのログインの完全な代替として使う場合もある。例えば、Linuxディストリビューションの Ubuntu はそのような使い方をしている[3]。
オリジナルのプログラムは1980年、ニューヨーク州立大学バッファロー校の計算機科学科で Bob Coggeshall と Cliff Spencer らが開発した[4]。2023年現在も活発に開発が続いており、OpenBSDの開発者である Todd C. Miller が開発・保守を行っている。
suを使わずsudoを推奨するオペレーティングシステムでは以下のような利点が挙げられる。[5]
sudoでコマンドを実行する前に、ユーザーは通常自分のパスワードを入力する。そのパスワードが正しく、/etc/sudoers
という設定ファイルにそのユーザーのアクセス権が記述されていたら、コマンドが実行される。GUI環境で使うためのグラフィカルなフロントエンドもあり、 kdesu、kdesudo、gksudo などがよく知られている。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に記述した構文が正しいかを簡潔にチェックする。
sudoersは、マニュアルによると"どのユーザーが何を実行できるかのリスト"を記述しておく設定ファイルである。マニュアルではEBNFを用いた制御の記述法の説明が為されている[2]。
Sudo for Windows[6] はマイクロソフトが開発していて、Windows 11 Build 26052 以降では設定で有効にすることで利用可能である[7][8]。
似たようなものとして Gerardo Grignoli が2019年より gsudo (sudo for windows) を公開している。[9]