回答:
ダブルハイフンを指定するとsudo su
、ハイフンなしで実行した場合と同じエクスペリエンスが得られます。
単一のハイフンを渡すことは、-l
またはを渡すことと同じです--login
。のmanページでsu
は、動作を次のように説明しています。
ユーザーが直接ログインした場合にユーザーが期待する環境と同様の環境を提供します。
これには、ディレクトリをホームディレクトリに設定することや、他の多くの環境変数を設定することが含まれます。
通常、コマンドにダブルハイフンを渡すことは、コマンドラインフラグの終了とフラグ以外の引数の開始を示すために使用されます。たとえば、実行touch -R
すると-Rはのオプションではないというエラーが表示されますがtouch
、実行touch -- -R
するとという名前のファイルが作成され-R
ます。これは、多くのコマンドラインツールの真である(ls -R
再帰を行いますls
一方でls -- -R
実行されますls
という名前のファイルまたはディレクトリに-R
。
したがって、これをまとめると、それだけ --
を渡すときsu
は、基本的に無視し、--
オプションをまったく渡さなかったように振る舞います。
sudo su -
、sudo su -l
異なります。私は唯一のキーを持つにSSH、と私は、特定の他のユーザへの変更にはsudo権限を持っているアカウントでは、sudo su -
問題なく使用者は変わりますが、sudo su -l
かsudo su --login
調べることであるが(私は持っていないもの、sudoのパスワードを要求しますsudo -l
Iを/bin/su
NOPASSWDで実行できます)