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