su と sudo
su コマンドは、別のユーザーでシェルを実行します。由来は super user とか switch user とか substitute user。デフォルトだと root になります。
su は、root 以外に切り替えるには、引数にユーザー名を指定します。
sudo コマンドは、一般ユーザーに対してコマンド実行の単位で root 権限を与える仕組みです。由来は superuser do。
sudo
sudo の設定は、「 /etc/sudoers 」ファイルに設定します。
ファイルを直接編集することができないため、「 visudo 」コマンドを使います。
sudo コマンドを実行すると、「 /var/log/secure 」ログファイルに記録されます。
「 /etc/sudoers 」の見方
「 /etc/sudoers 」ファイルにデフォルトで設定されている内容で次のような項目があります。
※1 が、どのユーザーに権限を与えるかというカラムです。上記の場合ですと。「 root 」ユーザーです。
※2 が、どのサーバでその行の指定を反映するかの設定です。
※3 が、どのユーザに成り代わってコマンドを実行できるかを設定できます。
※4 が、どんな操作を許可するか設定します。
グループ名とユーザー名の指定方法
% が頭に付くとグループ名、外すと特定のユーザーを指定することになります。
%wheel ALL=(ALL) ALL
#user ALL=(ALL) ALL
su と su - の違い
「 su 」では、カレントディレクトリも環境変数も元のユーザーのものが引き継がます。
「 su - 」では、カレントディレクトリや環境変数は変更したユーザーの初期値に設定されます。
ひとつ前のユーザーに戻るには、「 exit 」コマンドを使います。