Почему я не могу получить доступ к этому каталогу, после чего я использую команду 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/
Так:
Сначала я назначаю своего пользователя (с именем andrea) владельцем каталога / var / www / (так что я имею в виду, что он может писать в этот каталог) и назначаю группу www-data.
Затем я устанавливаю этот каталог с помощью 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 потерпит неудачу.
Те же права установлены для группы и для других (также нет прав)