su
(substituteまたはswitch userの略)ユーティリティを使用すると、別のユーザーの権限(デフォルトではrootユーザー)でコマンドを実行できます。
su
を使用する 現在のログインセッションで管理者アカウントに切り替える最も簡単な方法です。これは、rootユーザーがGUIディスプレイマネージャーを使用してsshorを介してシステムにログインすることを許可されていない場合に特に便利です。
このチュートリアルでは、 su
の使用方法を説明します コマンド。
su
の使用方法 コマンド#
su
の一般的な構文 コマンドは次のとおりです:
su [OPTIONS] [USER [ARGUMENT...]]
オプションなしで呼び出された場合、 su
のデフォルトの動作 ルートとしてインタラクティブシェルを実行することです:
su
rootパスワードの入力を求められ、認証されると、コマンドを実行しているユーザーが一時的にrootになります。
セッションシェル( SHELL
)とホーム( HOME
)環境変数は、代替ユーザーの / etc / passwd
から設定されます エントリであり、現在のディレクトリは変更されません。
ユーザーが変更されたことを確認するには、 whoami
を使用します コマンド:
whoami
このコマンドは、現在のシェルセッションを実行しているユーザーの名前を出力します:
root
su
を呼び出すときに最も一般的に使用されるオプション -
です ( -l </ code> 、
-login
)。これにより、シェルは実際のログインと非常によく似た環境のログインシェルになり、現在のディレクトリが変更されます。
su -
passwd
で定義されているシェルの代わりに、別のシェルを実行する場合 ファイルの場合、 -s
を使用します 、-shell
オプション。たとえば、rootに切り替えて、 zsh
を実行します。 シェル、次のように入力します:
su -s /usr/bin/zsh
環境全体を保存するには( HOME
、 SHELL
、 USER
、および LOGNAME
)呼び出し元ユーザーの -p
を使用してコマンドを呼び出します 、-preserve-environment
オプション。
su -p
-
の場合 オプションが使用されます、 -p
無視されます。
対話型シェルを起動せずに代替ユーザーとしてコマンドを実行する場合は、 -c
を使用します。 、-コマンドコード> オプション。たとえば、
ps
を呼び出すには rootとしてコマンドを実行するには、次のように入力します。
su -c ps
別のユーザーアカウントに切り替えるには、ユーザー名を引数として su
に渡します。 。たとえば、ユーザー tyrion
に切り替えるには 次のように入力します:
su tyrion
Sudo vs. Su#
Ubuntuなどの一部のLinuxディストリビューションでは、セキュリティ上の理由から、rootユーザーアカウントはデフォルトで無効になっています。これは、rootにパスワードが設定されておらず、 su
を使用できないことを意味します ルートに切り替えます。
ルートに変更する1つのオプションは、 su
を先頭に追加することです。 sudo
を使用したコマンド 現在ログインしているユーザーパスワードを入力します:
sudo su -
sudo
コマンドを使用すると、プログラムを別のユーザー(デフォルトではrootユーザー)として実行できます。
ユーザーにsudo
が付与されている場合 評価、 su
コマンドはrootとして呼び出されます。 sudosu-
を実行しています 次に、ユーザーパスワードを入力すると、su-
を実行するのと同じ効果があります。 ルートパスワードを入力します。
-i
と一緒に使用する場合 オプション、 sudo
rootユーザーの環境でインタラクティブログインシェルを実行します:
sudo -i
sudo -i
基本的にsu-
を実行するのと同じです 。
sudo
を使用する利点 su
以上 ルートパスワードを複数の管理ユーザーアカウント間で共有する必要がないということです。
sudo
を使用 また、ユーザーがroot権限を持つ特定のプログラムのみを実行できるようにすることもできます。
結論#
su
は、一時的に別のユーザーになり、代替ユーザーでコマンドを実行できるコマンドラインユーティリティです。
ご質問やご意見がございましたら、お気軽にコメントをお寄せください。