Unixコマンド `su` について
`su` コマンドは、
Unix系オペレーティングシステムにおいて、現在ログインしているユーザーの
シェル上で、別のユーザーとして操作を行うために使用されます。特に、システム管理者が管理者権限(root権限)を得てシステム設定や重要な操作を行う際に頻繁に利用されます。
`su` の基本的な使い方
`su` コマンドは、通常、ターミナルから実行します。`su` を実行すると、切り替え先のユーザーのパスワードが要求されます。パスワードが正しく入力されると、そのユーザーの権限でコマンドを実行できるようになります。
例えば、rootユーザーに切り替えるには、以下のようにコマンドを実行します。
bash
su
この後、rootユーザーのパスワードを入力すると、root権限を持つ
シェルに切り替わります。
`sudo` との違い
`su` と似た機能を持つコマンドとして `sudo` があります。`sudo` も別のユーザーの権限でコマンドを実行できますが、実行時に要求されるパスワードや権限の管理方法に違いがあります。
- - `su`: 切り替え先のユーザーのパスワードが要求されます。
- - `sudo`: 実行者のユーザーのパスワードが要求されます。
`sudo` は `/etc/sudoers` ファイルでどのユーザーがどのコマンドをどのユーザー権限で実行できるかを細かく設定できます。これにより、個々のユーザーに対して必要な権限だけを付与することができ、セキュリティリスクを軽減できます。
また、`sudo` を使用すると、rootユーザーのパスワードを直接共有する必要がなくなるため、パスワード漏洩のリスクを減らすことができます。一部の
Linuxディストリビューションでは、セキュリティ上の理由から `su` コマンドで直接root権限を取得することを禁止し、root権限が必要な場合は `sudo` を使用することを推奨しています。
セキュリティに関する注意点
`su` コマンドの使用には、セキュリティ上の注意が必要です。特に、rootユーザーのパスワードが不正な利用者に知られると、システム全体が危険にさらされる可能性があります。そのため、rootパスワードは慎重に設定し、厳重に管理する必要があります。
また、一部の
Unixシステムでは、`wheel` グループに所属するユーザーのみが `su` コマンドでroot権限を取得できる設定になっていることがあります。これは、システム管理者以外のユーザーによるroot権限の不正取得を防ぐための措置です。
GNU `su` について
GNU版の `su` は、思想的な理由から `wheel` グループによる権限制限をサポートしていません。このため、`wheel` グループによるセキュリティ強化を期待する場合は、他の `su` の実装を検討する必要があります。
Windowsにおける類似コマンド
Windows XPには、`runas` という、ユーザーを切り替えてコマンドを実行するための類似のコマンドが存在します。
まとめ
`su` コマンドは、
Unix系システムにおいてユーザー権限を切り替えるために不可欠なツールです。しかし、その使用にはセキュリティ上のリスクが伴うため、`sudo` コマンドとの使い分け、パスワードの厳重管理、適切な権限設定を心がける必要があります。
参考資料
Manpage of SU GNU 版 su、JM Project
su Command man page(SunOS リファレンスマニュアル)
*
su(1) man page(HP-UX リファレンス)