Почему я не могу перейти в каталог?

14

Я использую Ubuntu 10.04.2 LTS. Почему я не могу cdв /var/wwwкаталог?

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
davidjhp
источник
2
cdэто встроенная оболочка, поэтому sudoее нельзя использовать.
Приостановлено до дальнейшего уведомления.
И даже если бы его можно было использовать, это было бы бессмысленно. Как правило, нет способа заставить другой процесс изменить свой рабочий каталог, поэтому, что бы ни делал cdисполняемый файл, он не может изменить процесс оболочки 'cwd.
Дэвид Шварц

Ответы:

13

Вам нужно разрешение на выполнение, чтобы перейти в каталог.

sudo chmod o+x /var/www
Cakemox
источник
3
Небольшое пояснение: в приведенном выше примере как root (пользователь), так и root (группа) имеют установленный бит выполнения. Таким образом, члены группы root могут перейти на www. Пользователь Дэвид не может cd, потому что он не включен в члены корневой группы. Вы можете проверить это, просмотрев содержимое / etc / group
adamo
1

Есть какая-то причина для запрета «другим» входить в каталог, нет? Поэтому я бы предложил получить root-права для входа в этот каталог, сделать что-нибудь и оставить его, удалив оболочку sudo.

sudo -i 
cd /var/www
# do your thing
cd -
exit
Пользователь неизвестен
источник
1

Еще немного информации, было бы разумно создать веб-пользователя и группу для вашей системы, а не иметь службы, работающие от имени пользователя root. Затем вы также можете добавлять пользователей в эту группу, если это необходимо, и не выдавать привилегии root.

Майк
источник