bash におけるルートアクセスの異なる「タイプ」の区別は?

bash におけるルートアクセスの異なる「タイプ」の区別は?

何ですか区別間:

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代替ユーザー引数として使いたいユーザーを指定して、そのユーザーとしてコマンドを実行することができます。

関連情報