Por que não consigo entrar em um diretório?


14

Estou executando o Ubuntu 10.04.2 LTS. Por que não consigo cdentrar no /var/wwwdiretório?

david@ubuntu:/var$ pwd
/var

david@ubuntu:/var$ ls -l
drwxrwxr-- 13 root root  4096 2011-02-26 21:53 www

david@ubuntu:/var$ cd www
-bash: cd: www: Permission denied

david@ubuntu:/var$ sudo cd www
sudo: cd: command not found

2
cdé um shell embutido, portanto sudonão pode ser usado.
Pausado até novo aviso.

E mesmo que pudesse ser usado, seria inútil. Geralmente, não há como fazer com que outro processo altere seu diretório de trabalho; portanto, o que o cdexecutável possa fazer, ele não poderá alterar o cwd do processo do shell.
David Schwartz

Respostas:


13

Você precisa executar permissão para cd em um diretório.

sudo chmod o+x /var/www

3
Um pouco de esclarecimento: No exemplo acima, a raiz (o usuário) e a raiz (o grupo) têm o bit de execução definido. Assim, os membros da raiz do grupo podem entrar em www. O usuário david não pode cd porque ele não está incluído nos membros do grupo raiz. Você pode inspecionar isso exibindo o conteúdo de / etc / group
adamo

1

Há alguma razão para proibir que os '' outros '' entrem no diretório, não? Então, sugiro obter acesso root para entrar nesse diretório, fazer algumas coisas e deixá-lo, eliminando o shell do sudo.

sudo -i 
cd /var/www
# do your thing
cd -
exit

1

Apenas um pouco mais de informação, seria sensato criar um usuário da web e um grupo para o seu sistema e não ter serviços em execução como root. Em seguida, você também pode adicionar usuários a esse grupo, se necessário, e não conceder privilégios de root.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.