Eu queria saber se havia alguma diferença (no ambiente?) entre fazer
sudo su - user
e
sudo -iu user
Pelo que sei: usando sudo su - user eu abro um novo shell como usuário, e o dash fornece variáveis de ambiente do usuário (enquanto sudo su user não) e usando sudo -iu user também (-u para precisar o usuário, - i para "simular login inicial").
Então, há alguma diferença?
Exceto o fato de que o primeiro precisa que o usuário seja capaz de executar su como root, e o segundo para executar bash como usuário
Obrigado !
Responder1
aqui está o que diz na página de manual do sudo sobre a opção "-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.
o que basicamente está me dizendo que você está apenas simulando o shell do usuário referenciado, masalgunsas coisas podem não ser exatamente como o usuário pretendido efetuou login diretamente. Se você fizer a pergunta "o que"Não consigo dizer de cara. Mas se você usar sudo su - user
o comando, não haverá perguntas, pois você está iniciando um novo processo shell com as configurações do usuário referenciado por conta própria. Em alguns casos, esses dois comandos podem resultam no mesmo ambiente, mas em alguns outros, encontraremos discrepâncias na minha opinião.