sudo

sudo(“su do”)は、UNIXおよびUnix系オペレーティングシステムプログラムの1つで、ユーザーが別のユーザーの権限レベルでプログラムを実行するためのコマンドである。一般的に、ユーザーがスーパーユーザー(superuser、すなわちroot)の特権レベルを利用する際に用いられることが多い。

sudo
開発元Todd C. Miller
初版1980年 (44年前) (1980)
最新版
1.9.15p / 2023年12月30日 (6か月前) (2023-12-30) [1]
リポジトリ ウィキデータを編集
プログラミング
言語
C
対応OSUnix系
対応言語24言語 [注釈 1]
サポート状況開発中
種別特権付与
ライセンスISCライセンス [1]
公式サイトwww.sudo.ws ウィキデータを編集
テンプレートを表示
Sudo for Windows
開発元マイクロソフト
リポジトリgithub.com/microsoft/sudo
対応OSWindows 11
サポート状況開発中
ライセンスMIT License
公式サイトlearn.microsoft.com/ja-jp/windows/sudo/
テンプレートを表示

デフォルトではその別ユーザーのパスワード入力を求めてくるが、設定を変更すれば root のパスワードを求めるようにもできるし、端末(や擬似端末)につき1回だけパスワードを入力すればよいようにも、全くパスワード入力を求めないようにもできる[2]。sudo は各コマンド実行を記録でき、スーパーユーザーとしてのログインの完全な代替として使う場合もある。例えば、LinuxディストリビューションUbuntu はそのような使い方をしている[3]

オリジナルのプログラムは1980年、ニューヨーク州立大学バッファロー校計算機科学科で Bob Coggeshall と Cliff Spencer らが開発した[4]。2023年現在も活発に開発が続いており、OpenBSDの開発者である Todd C. Miller が開発・保守を行っている。

利点

suを使わずsudoを推奨するオペレーティングシステムでは以下のような利点が挙げられる。[5]

  • オペレーティングシステムをインストールする際の、設定項目を減らすことができる。
  • ユーザーが余計なパスワードを覚えなくてもよくなる。
  • 大きな変更を加える際、パスワードの入力を求められるようにすることで、ユーザーは何をしようとしているか再認識することができる。
  • sudoコマンド実行ログが残り、何か不具合が発生した際にどのようなコマンドを実行したのかを確認することができる。システム監視の意味でも有用。
  • rootアカウントでのログインを無効にしている場合、パスワードの総当たりなど、強引な手法でシステムに侵入を試みるクラッカーがrootアカウントで侵入できない。
  • ユーザーを管理者グループに追加、削除することにより、管理者権限を持つことのできるユーザーを限定できる。
  • sudo は su に比べて、より細かいセキュリティポリシーを設定することができる。
  • 管理者権限を時間経過で自動的に破棄するように設定することができる。

設計

sudoでコマンドを実行する前に、ユーザーは通常自分のパスワードを入力する。そのパスワードが正しく、/etc/sudoers という設定ファイルにそのユーザーのアクセス権が記述されていたら、コマンドが実行される。GUI環境で使うためのグラフィカルなフロントエンドもあり、 kdesukdesudogksudo などがよく知られている。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

Sudo for Windows[6] はマイクロソフトが開発していて、Windows 11 Build 26052 以降では設定で有効にすることで利用可能である[7][8]

似たようなものとして Gerardo Grignoli が2019年より gsudo (sudo for windows) を公開している。[9]

脚注

注釈

出典

関連項目

外部リンク

🔥 Top keywords: 中村靖日メインページ特別:検索北条時行伊礼彼方ドナルド・トランプ斎藤元彦石丸伸二アメリカ合衆国シークレットサービスカルロス・アルカラス高橋マイケル藤原彰子膳場貴子紫式部KEYTALK逃げ上手の若君ブラックペアン1988ウイリー・ドーシー新木優子安野貴博キングダム (漫画)SHISHAMOシークレットサービスノバク・ジョコビッチ海の日シャナン・ドハーティー一条天皇鈴木保奈美藤原定子大弐三位五大院宗繁岡部たかし菊池こころキングダムの登場人物一覧大空幸星時々ボソッとロシア語でデレる隣のアーリャさんケネディ大統領暗殺事件藤原道長安倍晋三銃撃事件