distinção entre diferentes "tipos" de acesso root no bash?

distinção entre diferentes "tipos" de acesso root no bash?

Qual é odistintoentre:

sudo su -

e

su -i

e onde um seria preferido ao outro?

   -, -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

e

   su - run a command with substitute user and group ID

trechos da man supágina.

Responder1

Não há -iargumento para o sucomando, então a diferença seria que um funciona e o outro não.

Se você quis dizer su -l, ainda não funciona por padrão em uma caixa do Ubuntu, pois a rootconta está bloqueada e não há senha para inserir.

Não há diferença entre os argumentos -e . -lAmbas são variações da mesma opção. Na verdade, você incluiu a linha da manpágina que nos diz isso em sua pergunta.

A diferença entre usar o argumento -, -lou --login(eles são todos iguais) e não usar nenhum argumento é explicada principalmente no trecho que você incluiu em sua postagem. Esta parte diz o que faz sem o argumento:

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.

Observe que isso sunão é apenas para root. Não significasuperusuáriocomo acontece com o sudocomentário. Ele significausuário substitutoe você pode especificar o usuário que deseja usar como argumento para executar um comando como esse usuário

informação relacionada