suコマンドは新しいユーザーIDを使うためのものです。ユーザーIDを指定しないと rootが使われます。
普通、suは違うユーザーIDでサブシェルを実行します。引数-(最近の
シノニムは-l
あるいは--login
)で、ログインシェルのように
シェルを実行します。しかしログインプログラムを使いません
通常のユーザー:
/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:.
rootユーザー:
/sbin:/bin:/usr/sbin:/usr/bin:/usr/bin/X11:/usr/local/sbin:/usr/local/bin
suは多くの細かい環境も変更します。
スーパーユーザーコマンドを安全に使うためのコマンドのグループが あります。よいログイン、ユーザーベースの制限、個々のパスワードの 使い方を可能にします。もっともよく使われているのはsudoです。
$ sudo env
はスーパーユーザーとしてコマンドenvを実行します(使えるように 設定されている時)。
sudoコマンドはパス操作の異なるアプローチをもっています。sudoは検索パスを
修正してカレントディレクトリは最後になります。しかしPATH環境変数は変更しま
せん。sudo envやenvはPATH変数と同じ値を返します。
sudoはSUDO_USER
といった2つの環境変数を追加します。