sudo su - user 和 sudo -iu user 之间的区别

sudo su - user 和 sudo -iu user 之间的区别

我想知道做之间是否有任何区别(在环境中?)

sudo su - user

sudo -iu user

据我所知:通过使用 sudo su - user 我以用户身份打开一个新的 shell,破折号给出了用户的环境变量(而 sudo su user 没有)并使用 sudo -iu user (-u 表示精确用户,- i 代表“模拟初始登录”)。

那么,有什么区别吗?

除了第一个需要用户能够以root身份执行su,第二个需要用户以用户身份执行bash

谢谢 !

答案1

这是 sudo 手册页上关于“-i”选项的内容


   -i  The -i (simulate initial login) option runs the shell specified in
       the passwd(5) entry of the user that the command is being run as.
       The command name argument given to the shell begins with a `-' to
       tell the shell to run as a login shell.  sudo attempts to change to
       that user's home directory before running the shell.  It also ini-
       tializes the environment, leaving TERM unchanged, setting HOME,
       SHELL, USER, LOGNAME, and PATH, and unsetting all other environment
       variables.  Note that because the shell to use is determined before
       the sudoers file is parsed, a runas_default setting in sudoers will
       specify the user to run the shell as but will not affect which
       shell is actually run.

这基本上告诉我你只是在模拟所引用用户的外壳,但是一些事情可能与预期用户直接登录的情况不完全一样。如果你问这个问题“什么“我无法说出我的想法。但是如果您使用sudo su - user命令,当您使用引用用户的设置启动一个新的 shell 进程时,不会提出任何问题。在某些情况下,这两个命令可以在相同的环境中,但在其他一些环境中,我认为会遇到差异。

相关内容