Вопрос: Почему я не могу получить доступ к этому каталогу после этого, я использую команду 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. Сначала я установил своего пользователя (названного Андреа) в качестве владельца / Var / WWW / (так что я хочу, чтобы он мог писать в этот каталог) и назначает WWW-данные группа.

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

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

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

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

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

EDIT-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

2
2018-04-27 13:32


Источник


пожалуйста, опубликуйте вывод sudo ls -al /var/www - Frank Thomas
@FrankThomas Я отредактировал свое оригинальное сообщение, разместив требуемую информацию в конце этого - AndreaNobili
добавить разрешения на чтение - Francisco Tapia


Ответы:


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

sudo chmod uga+r /var/www

Возможно, вам может не понадобиться sudo: вы можете, конечно, сначала попробовать.


3
2018-04-27 14:22



Выполнение является эффективным. Без этого OP не мог делать такие вещи, как cd /var/www/html(передача мысли / var и / war / www, для которой необходимо установить «x»). Он просто не имеет ничего общего с (r) заходом в содержание каталогов. - Hennes
Я делаю, как вы говорите, и кажется, что это работает ... но почему? Что именно эта команда? и почему я должен использовать его? Tnx - AndreaNobili
@Hennes - Конечно, это не работает с бинарниками и скриптами. Я думал, что обнаружил, что он не работает в каталогах с выполнением и не читает, но я просто его протестировал, и вы совершенно правы. - AFH
@AndreaNobili - Я уточнил свой ответ после прочтения и ответа Хеннса. - AFH
Правда. Он ведет себя по-разному в файлах и папках. - Hennes


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

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

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

также

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


2
2018-04-27 14:46





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) Записать права
    (x) разрешено cd в папку.
    В текущей папке не было установлено ограничение (r), поэтому вам не разрешено перечислять его содержимое. Вот почему ls потерпит неудачу.

Те же права устанавливаются в группе и на других (нет r)


1
2018-04-27 14:26