Como eu me torno root quando “su -i” não é suportado? [duplicado]

0

Até onde eu sei, o seguinte comando deve me fazer root:

su -i

No entanto, quando eu o digito no Ubuntu 17.04 Zesty Zapus, recebo a seguinte mensagem:

su: invalid option -- 'i'
Usage: su [options] [LOGIN]
Options:
  -c, --command COMMAND         pass COMMAND to the invoked shell
  -h, --help                    display this help message and exit
  -, -l, --login                make the shell a login shell
  -m, -p,
  --preserve-environment        do not reset environment variables, and
                                keep the same shell
  -s, --shell SHELL             use SHELL instead of the default in passwd

Eu lembro que estava trabalhando há algum tempo. Como faço para reativá-lo?

    
por Snydox 17.09.2017 / 22:33

1 resposta

2

% bl0ck_qu0te%

Você estava quase certamente usando sudo -i antes , já que su não suporta uma opção -i , e não suportou essa opção, mesmo em versões anteriores. (Só para ter certeza, verifiquei isso em 16.04 LTS.) Você ainda pode usar sudo -i .

Em um sistema em que os logins raiz estão ativados, você pode inserir su e autenticar com a senha do root. Isso lhe dá um shell de root, mas não simula um shell de login. É semelhante a sudo -s (ou sudo --shell ), que funciona mesmo quando a conta raiz está desativada. Com sudo , você usa sua própria senha. Na configuração padrão, você deve ser um administrador - por exemplo, um membro do grupo sudo - para usá-lo.

Da mesma forma, se você puder efetuar login como root, também poderá simular um login raiz com su - (ou su -l ou su --login ). Passar o - flag para su define variáveis de ambiente semelhantes àquelas que seriam definidas no ambiente de login do root e inicia um shell de login. É semelhante a sudo -i (ou sudo --login ).

A maneira mais comum de usar sudo é executar apenas um único comando, apenas executando sudo command args... . Isso também pode ser feito com su passando o -c flag, mas é estranho porque o comando inteiro incluindo seus argumentos tem que ser citado então é passado como um único argumento de linha de comando para su : su -c 'command args...' (Se você não está passando nenhum argumento para o comando, e o nome do comando em si não requer citação, então as aspas podem ser omitidas.)

Eu mencionei tudo isso não para fornecer um guia completo para sudo , e eu recomendo man sudo , RootSudo , este tópico , esta questão , o tag wiki , e o site upstream para mais informações. Além de mostrar os comandos que você mais deseja, meu ponto principal é que até mesmo para fazer coisas semelhantes, sudo e su usam de forma bem diferente as opções de formato abreviado , incluindo --login . Se você já executou um comando para obter um shell de root e passou -i , esse comando provavelmente foi sudo .

    
por Eliah Kagan 18.09.2017 / 06:27