sudo( / suː duː /または/ ˈ suː doʊ / [ 4 ] ) は、Unixライクなオペレーティングシステムのシェルコマンドで、ユーザーがプログラムを他のユーザー (デフォルトではスーパーユーザー) のセキュリティ権限で実行できるようにします。[ 5 ]元々は「 superuser do」の略で、[ 6 ]それだけしかできなかったため、これが最も一般的な使用法として残っています。[ 7 ]ただし、公式の Sudo プロジェクト ページでは「su 'do ' 」と記載されています。[ 8 ]現在の Linux マニュアル ページでは「substitute user」と定義されており、[ 9 ]他のユーザーとしてもコマンドを実行できるため、「substitute user, do」という現代的な意味になっています。 [ 10 ] [ 11 ]susudosudo
類似のコマンドとは異なり、デフォルトでは、ユーザーは認証のために対象ユーザーのパスワードではなく、su自身のパスワードを入力する必要があります。認証後、設定ファイル(通常は/etc/sudoers)でユーザーのアクセスが許可されている場合、システムは要求されたコマンドを実行します。設定ファイルでは、呼び出し元の端末からのみコマンドを有効にする、ユーザーまたはグループごとにパスワードを要求する、毎回パスワードの再入力を要求する、特定のコマンド行ではパスワードをまったく要求しないなど、詳細なアクセス権限を設定できます。また、引数や複数のコマンドを渡すように設定することもできます。
Robert CoggeshallとCliff Spencer は、 1980 年頃、SUNY/Buffaloのコンピュータ サイエンス学科でオリジナルのサブシステムを作成しました。[ 12 ] Robert Coggeshall は、sudo をコロラド大学ボルダー校に持ち込みました。1986 年から 1993 年にかけて、コードと機能は、 Todd C. Miller を含むコロラド大学ボルダー校コンピュータ サイエンス学科と工学および応用科学部の IT スタッフによって大幅に修正されました。[ 12 ]現在のバージョンは、1994 年以来OpenBSD開発者の Todd C. Miller によって公開メンテナンスされており、[ 12 ] 1999 年以来ISC スタイルのライセンスの下で配布されています。[ 12 ]
2009年11月、トーマス・クラバーンは、マイクロソフトがsudoを特許取得したという懸念に対し、[ 13 ]そのような疑念は誇張されていると述べた。[ 14 ]その主張は、sudoの概念ではなく、特定のGUIに限定されたものであった。 [ 15 ]
このロゴは、 xkcd の漫画を参照したもので、サンドイッチの注文は . で始まる場合にのみ受け付けられるsudo。[ 16 ] [ 17 ]

sudoとは異なりsu、ユーザーはスーパーユーザーや他のアカウントのパスワードではなく、sudo(必要に応じて)自分の個人パスワードを に入力します[ 18 ] 。これにより、承認されたユーザーは、他のアカウントのパスワードの機密性を損なうことなく、変更された権限を行使できます。 [ 19 ]ユーザーは、コマンドを使用するために特定のグループsudoに属している必要があり、通常はwheelグループまたはsudoグループのいずれかです。[ 20 ]認証後、構成ファイルでユーザーのアクセスが許可されている場合、システムは要求されたコマンドを呼び出します。 は、擬似端末sudoごとに猶予期間(通常は 5 分)の間、ユーザーの呼び出し権限を保持するため、ユーザーはパスワードを再度入力することなく、要求されたユーザーとして複数の連続したコマンドを実行できます。[ 21 ]
セキュリティおよび監査機能として、sudo各コマンド実行をログに記録するように構成できます。ユーザーがsudo構成ファイルに記載されていないコマンドを呼び出そうとすると、試行が記録されたことを示す例外通知がユーザーに表示されます。設定されている場合、root ユーザーにはメールで通知されます。デフォルトでは、システムにエントリが記録されます。[ 22 ]
このファイルには、root ユーザー/etc/sudoersまたは指定された別のユーザーの権限を持ちながら、コマンドのサブセットを実行する権限を持つユーザーまたはユーザー グループのリストが含まれています。このファイルは、コマンドを使用して編集できます。sudo には、パスワードなしでコマンドを実行できるようにする、どのユーザーが を使用できるかを変更する、間違ったパスワードを入力したときに表示されるメッセージを変更するなど、いくつかの構成オプションがあります。[ 23 ] sudo には、構成ファイルから有効にできるイースターエッグがあり、間違ったパスワードを入力するたびに侮辱的なメッセージが表示されます。[ 24 ]sudo visudosudosudo
一部のシステムディストリビューションでは、sudo管理タスク用の個別のスーパーユーザーログインのデフォルト使用をほぼ完全に置き換えており、特に一部のLinuxディストリビューションやAppleのmacOSで顕著です。[ 25 ] [ 26 ]これにより、管理者コマンドのログ記録がより安全になり、一部のエクスプロイトを防ぐことができます。
SELinuxと連携して、ロールベースアクセス制御(RBAC)sudoにおけるロール間の遷移に使用できます。 [ 27 ]
visudoは、sudo設定ファイルを安全に編集できるコマンドラインユーティリティです。ロック機能により複数同時編集を防ぎ、健全性チェックと構文チェックを実行します。
sudoedit は sudo バイナリへのシンボリックリンクを作成するプログラムです。[ 28 ] sudo が sudoedit エイリアス経由で実行されると、sudo は -e フラグが渡されたかのように動作し、書き込みに追加の権限が必要なファイルをユーザーが編集できるようにします。[ 29 ]
Microsoft は 2024 年 2 月にWindowssudo用の独自のツールもリリースしました。そのインターフェースは Unix 版と似ており、非昇格コンソール セッションから昇格コマンドを実行できますが、実装は全く異なります。[ 30 ]プログラムrunas はWindows で同等の機能を提供しますが、現在のディレクトリ、環境変数、長いコマンド ラインを子に渡すことはできません。また、子を別のユーザーとして実行することはサポートしていますが、単純な昇格はサポートしていません。Hamilton C シェルには、すべての状態情報を渡して、子を昇格または別のユーザーとして (またはその両方) 起動できる、Windows 用の trueとが含まれています。[ 31 ] [ 32 ]susudo
sudo 用のグラフィカル ユーザー インターフェイスは存在します (特にgksudo ) が、 Debianでは非推奨となり、 Ubuntuには含まれなくなりました。[ 33 ] [ 34 ]他のユーザー インターフェイスは sudo を直接ベースに構築されていませんが、Unix 系オペレーティングシステムのpkexec 、 Microsoft Windowsのユーザー アカウント コントロール、Mac OS X認証サービスなど、管理目的で同様の一時的な権限昇格を提供します。[ 35 ]
doas はOpenBSD 5.8 (2015 年 10 月)以降で利用可能となり、 OpenBSDsudoベース システムでを置き換えるために作成されました。後者は引き続き移植版として提供されています。[ 36 ]
gosu は sudo に似たツールで、ターミナルが完全に機能しない場合や、コンテナ環境で sudo を実行すると望ましくない影響が出るコンテナでよく使われます。[ 37 ]
Rustプログラミング言語で書かれたsudoの書き換え版であるsudo-rsがUbuntuのデフォルトとして採用された。[ 38 ]
マイクロソフト(NSDQ: MSFT)に付与された特許は、世界最大のソフトウェア会社がUnixの「sudo」を自社のものとして主張しようとしているのではないかという懸念を引き起こしている。[...]要するに、この特許に関する疑念は誇張されている。