A saída de 'ls' difere quando no modo raiz

1

Quando eu uso o comando sudo -i e insiro a senha e, em seguida, insiro ls , descobri que só consigo ver a pasta Desktop e os pacotes no terminal.

Mas quando voltei ao modo normal, toda a pasta apareceu.

Eu não sei o que causa esse problema ... Alguém pode me ajudar?

    
por brandboat 31.10.2013 / 17:52

3 respostas

7

O comando sudo -i fornece um shell como root e você estará no diretório inicial do usuário root , não no seu. Como root geralmente não é um usuário que você deve usar normalmente, apenas alguns arquivos existirão no diretório inicial desse usuário, particularmente na estrutura de diretórios do esqueleto para qualquer novo usuário.

    
por dobey 31.10.2013 / 18:03
3

É porque quando você está no modo raiz você está no diretório inicial do root. Tente isto:

pwd
sudo -i
pwd

Você verá a mudança no diretório

    
por Jean-Marie 31.10.2013 / 18:08
1

isso também me incomodava muito, então eu fiz este script:

params="$@";sudo -i bash -c "cd \"'pwd'\";$params"

pwd será executado com seu usuário normal, antes do comando que você deseja

coloque-o em um arquivo de script que seja root:root rw-r--r-- em uma hierarquia completa de pastas de propriedade do root também, como /MyScripts (crie-o) para ser mais seguro.

a falha é se você tiver um parâmetro com um espaço intermediário como ls -1 a "b c" , precisaria ser ls -1 a "b\ c" , mas isso pode ser resolvido mais tarde quando você melhorar o script:)

    
por Aquarius Power 21.06.2014 / 22:23