Como executar o cd como superusuário [duplicado]

0
    

Esta pergunta já tem uma resposta aqui:

    
  •              Por que o 'sudo cd / var / named' não funciona? [duplicado]                                      5 respostas                          
  •     

Eu quero fazer um cd em um diretório do terminal, mas o acesso é negado, e digitar sudo cd (directory) retorna um erro sobre o sudo não suportar o comando cd. Eu posso usar sudo gnome-terminal para iniciar uma nova janela de terminal com privilégios de root, mas eu quero uma solução que eu possa usar da mesma janela de terminal não-raiz. Existe uma maneira de tornar o comando cd compatível com o sudo?

    
por ChristianF97 20.11.2016 / 22:55

2 respostas

2

Infelizmente, não é possível usar cd com sudo diretamente. sudo pode chamar executáveis, por exemplo, sudo ls , mas cd é um comando interno do shell. Em outras palavras, há um arquivo que "faz" ls ( /bin/ls ), mas não há nenhum arquivo que "faça" cd , então você não pode usá-lo com sudo .

    
por Henning Kockerbeck 20.11.2016 / 23:57
0

Bem, você certamente pode executar o seguinte comando:

sudo sh -c "cd somedirectory"

e tecnicamente, você terá alterado o diretório atual do subshell lançado. A questão é que o subshell irá sair imediatamente e seu shell principal não terá seu próprio diretório alterado.

A questão principal é que, se você não puder cd em um diretório, não poderá executar um shell dentro dele com sua conta atual.

Uma solução alternativa é mudar para uma conta de usuário que tenha esse direito, e root é, obviamente, a opção mais simples:

sudo sh -c "cd somedirectory; sh"
    
por jlliagre 21.11.2016 / 00:07