Почему я не могу получить доступ к этому каталогу, после чего я использую команду chown?

Я не очень в Linux, и у меня есть следующая проблема.

Я установил среду LAMP системы Ubuntu Linux, предназначенной для разработки (она установлена ​​на моем ПК и не является рабочим сервером).

Поэтому я пытаюсь установить / var / www в качестве рабочей области Aptana (IDE, которую я использую для разработки PHP), но я не могу этого сделать, потому что у меня нет разрешения на запись в этот каталог (я думаю, что это мой зарегистрированный пользователь, у которого нет этого разрешения).

Итак, я сделал:

sudo chown -R andrea:www-data /var/www/
sudo chmod -R g+s /var/www/

Так:

  1. Сначала я назначаю своего пользователя (с именем andrea) владельцем каталога / var / www / (так что я имею в виду, что он может писать в этот каталог) и назначаю группу www-data.

  2. Затем я устанавливаю этот каталог с помощью g + s, чтобы во всех новых файлах, созданных в указанном каталоге, их группа была установлена ​​в группу каталога.

Проблема в том, что когда я сейчас пытаюсь получить доступ к этому каталогу / var / www /, я получаю сообщение об ошибке отказа в доступе, что-то вроде этого:

andrea@andrea-virtual-machine:/var$ cd www/
andrea@andrea-virtual-machine:/var/www$ ls
ls: impossibile aprire la directory .: Permesso negato

Текст на итальянском языке и означает: невозможно открыть каталог: доступ запрещен

Зачем? Что мне не хватает? Как я могу решить эту проблему?

РЕДАКТИРОВАТЬ-1: Это вывод команды sudo ls -al /var/www:

andrea@andrea-virtual-machine:/var/www$ sudo ls -al /var/www
[sudo] password for andrea: 
totale 16
d-wx--s--x  4 andrea www-data 4096 apr 27 15:19 .
drwxr-xr-x 14 root   root     4096 apr 27 11:53 ..
drwxr-sr-x  2 andrea www-data 4096 apr 27 12:08 html
drwxrwsr-x  3 andrea www-data 4096 apr 27 15:20 .metadata

3 ответа

Решение

Если вы выполняли без разрешения на чтение в каталоге, вы можете включить его в путь, но вы не можете видеть его содержимое, поэтому, если вы находитесь в /var/www Вы можете, например, увидеть содержимое html подкаталог с ls htmlдаже если вы не можете видеть html с простым ls, Вам нужно запустить:

sudo chmod uga+r /var/www

Вполне возможно, что вам не нужно sudoКонечно, вы можете сначала попробовать это без.

Это не различие Ubuntu, это то, как работают разрешения Linux. Разрешение Execute (x) - доступ к каталогу, разрешение Read (r) - просмотр его содержимого.

Из этой статьи в Википедии, которую я рекомендую вам прочитать всем:

При установке для каталога это разрешение [выполняет] предоставляет возможность доступа к содержимому файла и мета-информации, если известно его имя, но не к списку файлов внутри каталога, если также не установлено чтение.

также

Когда установлено для каталога, это разрешение [чтение] предоставляет возможность читать имена файлов в каталоге, но не обнаруживать дополнительную информацию о них, такую ​​как содержимое, тип файла, размер, владение, разрешения.

andrea@andrea-virtual-machine:/var/www$ sudo ls -al /var/www
d-wx--s--x  4 andrea www-data 4096 apr 27 15:19 .

Для пользователя andrea:
(w) Права на запись
(х) разрешено перейти к папке.
В текущей папке не было задано (r), поэтому вы не можете просматривать ее содержимое. Вот почему LS потерпит неудачу.

Те же права установлены для группы и для других (также нет прав)

Другие вопросы по тегам