何ですか区別間:
sudo su -
そして
su -i
そして、どちらが他よりも好まれるのでしょうか?
-, -l, --login Start the shell as a login shell with an environment similar to a real login: o clears all the environment variables except TERM and variables specified by --whitelist-environment o initializes the environment variables HOME, SHELL, USER, LOGNAME, and PATH o changes to the target user's home directory o sets argv[0] of the shell to '-' in order to make the shell a login shell
そして
su - run a command with substitute user and group ID
ページからの抜粋man su
。
答え1
-i
コマンドには引数がないのでsu
、違いは、一方が機能し、もう一方が機能しないということになります。
を意味しているのであれば、アカウントがロックされており、入力するパスワードがないsu -l
ため、Ubuntu ボックスではデフォルトでは機能しません。root
-
引数と引数の間に違いはありません。どちらも同じオプションのバリエーションです。実際に、質問にはそのことを伝えるページ-l
の行が含まれています。man
-
、、-l
または引数(すべて同じです)を使用する場合と引数を使用しない場合の違いは--login
、投稿に含まれている抜粋で主に説明されています。この部分は、引数がない場合の動作を説明しています。
For backward compatibility, su defaults to not change the current directory and to only set the environment variables HOME and SHELL (plus USER and LOG‐
NAME if the target user is not root). It is recommended to always use the --login option (instead of its shortcut -) to avoid side effects caused by
mixing environments.
su
は だけを意味するのではないことに注意してくださいroot
。スーパーユーザーコメントと同じですsudo
。代替ユーザー引数として使いたいユーザーを指定して、そのユーザーとしてコマンドを実行することができます。