su (substitute または switch user の略) ユーティリティを使用すると、別のユーザーの権限でコマンドを実行することができます (デフォルトでは root ユーザー)。 これは、root ユーザーが GUI ディスプレイマネージャーを使用して sshor でシステムにログインできない場合に特に便利です。
このチュートリアルでは、su コマンドの使用方法を説明します。
How to Use the su Command #
suコマンドの一般的な構文は次のとおりです。
su ]
オプションを付けずに起動した場合、suのデフォルトの動作は、rootとして対話型シェルを実行することです。
su
root のパスワードを入力するように促され、認証されるとコマンドを実行したユーザーが一時的に root になります。
セッションシェル (SHELLHOME/etc/passwd エントリーから設定され、カレントディレクトリは変更されません。
ユーザーが変更されたことを確認するには、whoamiコマンドを使用します:
whoami
このコマンドは、現在のシェルセッションを実行しているユーザーの名前を表示します。
root
su--l--login)です。 これにより、シェルは実際のログインとよく似た環境のログインシェルとなり、カレントディレクトリが変更されます。
su -
passwd-s--shell オプションを使用します。 例えば、rootに切り替えて、zshシェルを実行するには、次のように入力します。
su -s /usr/bin/zsh
環境全体を保持するには(HOMESHELLUSERLOGNAME--preserve-environmentオプションを付けてコマンドを呼び出します。
su -p
--p は無視されます。
インタラクティブシェルを起動せずに、代理ユーザーとしてコマンドを実行したい場合は、-c--commandpsコマンドを起動するには、次のように入力します。
su -c ps
別のユーザーアカウントに切り替えるには、sutyrion に切り替えるには、次のように入力します。
su tyrion
Sudo vs. Su #
Ubuntu などの一部の Linux ディストリビューションでは、セキュリティ上の理由から、デフォルトで root ユーザー アカウントが無効になっています。 つまり、root にはパスワードが設定されておらず、su を使用して root に切り替えることはできません。
ルートに変更するための1つのオプションは、susudoを付け、現在ログインしているユーザーのパスワードを入力することです。
sudo su -
sudoコマンドは、別のユーザー(デフォルトではrootユーザー)としてプログラムを実行することができます。
sudosuコマンドはrootとして起動されます。 sudo su -su -を実行してルートのパスワードを入力した場合と同じ効果があります。
-isudo はルート ユーザーの環境で対話型のログイン シェルを実行します。
sudo -i
sudo -isu -を実行するのと同じです。
sudosu と比較して使用する利点は、ルートのパスワードを複数の管理ユーザー アカウントで共有する必要がないことです。
sudo を使用すると、ユーザーが root 権限で特定のプログラムのみを実行することもできます。
結論 #
su は、一時的に別のユーザーになり、代理のユーザーでコマンドを実行することができるコマンドライン ユーティリティです。