Sudo
Channel: 宇宙のすべての知識 プリンシピア
Date: 06/01/2022

Sudo, by Wikipedia https://ja.wikipedia.org/wiki?curid=1782772 / CC BY SA 3.0

#UNIXのソフトウェア
#セキュリティソフト
sudo（“su do”）は、UNIXおよびUnix系オペレーティングシステムのプログラムの1つで、ユーザーが別のユーザーの権限レベルでプログラムを実行するためのコマンドである。
一般的に、ユーザーがスーパーユーザー（superuser、すなわちroot）の特権レベルを利用する際に用いられることが多い。
デフォルトではその別ユーザーのパスワード入力を求めてくるが、設定を変更すれば root のパスワードを求めるようにもできるし、端末（や擬似端末）につき1回だけパスワードを入力すればよいようにも、全くパスワード入力を求めないようにもできる。
sudo は各コマンド実行を記録でき、スーパーユーザーとしてのログインの完全な代替として使う場合もある。
例えば、Linuxディストリビューションの Ubuntu はそのような使い方をしている。
オリジナルのプログラムは1980年、ニューヨーク州立大学バッファロー校の計算機科学科で Bob Coggeshall と Cliff Spencer らが開発した。
2018年現在も活発に開発が続いており、OpenBSDの開発者である Todd C. Miller が開発・保守を行っている。
suを使わずsudoを推奨するオペレーティングシステムでは以下のような利点が挙げられる。
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: (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という設定ファイルにアクセス制御の構文を記述する...