Интересно, почему, когда какая-то папка имеет разрешения на чтение
или на чтение и запись
для GROUP
(или других
), члены ГРУППЫ
(или другие
) не могут получить доступ к этой папке?
Я почти уверен, что есть логическое объяснение, но не могу его найти. Приведу пример.
1. Есть два пользователя: admin
и guest
.
2. Есть папка с именем / var / www / test-dir
:
$ getfacl -pt /var/www/test-dir/
# file: /var/www/test-dir/
USER root rwx
GROUP admin r-x
other r-x
3. В рамках этих разрешений все пользователи могут получить доступ к папке:
USER root rwx (7)
может получить доступ к папке.
GROUP admin r-x (5)
может получить доступ к папке.
другой гость r-x (5)
может получить доступ к папке.
guest @ host: ~ $ cd / var / www / test-dir /
guest @ host: / var / www / test-dir $
Случай 1: другой
имеет разрешения r -
, но администратор
не может получить доступ к папке:
root@host:~# chmod 574 /var/www/test-dir/
USER root rx (5)
is может получить доступ к папке.
GROUP admin rwx (7)
может получить доступ к папке.
другой гость r-- (4)
не может получить доступ к папке.
guest @ host: ~ $ cd / var / www / test-dir
bash: cd: / var / www / test-dir /: В доступе отказано
Случай 2: другой
имеет разрешения rw-
, но гость
не может получить доступ к папке:
root@host:~# chmod 656 /var/www/test-dir/
USER root rw- (6)
может для доступа к папке.
GROUP admin r-x (5)
может получить доступ к папке.
другой гость rw- (6)
не может получить доступ к папке:
Случай 3: ГРУППА
имеет разрешения r -
но admin
не может получить доступ к папке:
root@host:~# chmod 745 /var/www/test-dir/
USER root rwx (7)
может получить доступ к папке.
Администратор ГРУППЫ r-- (4)
не может получить доступ к папке.
другой гость r-x (5)
может получить доступ к папке.
Случай 4: ГРУППА
имеет разрешения rw-
, но администратор
не может получить доступ к папке:
root@host:~# chmod 467 /var/www/test-dir/
USER root r-- (4)
может получить доступ к папке.
Администратор группы rw- (6)
не может получить доступ к папке.
другой гость rwx (7)
может получить доступ к папке.
Разрешения для папки не совпадают с обычными разрешениями. В каталоге есть следующие разрешения:
r
: Можно ли перечислить содержимое каталога (например, с ls
)? w
: Можно ли изменить каталог (новый добавлены файлы, файлы удалены, переименованы и т. д.)? x
: Можно ли получить доступ к каталогу с помощью cd
и т.п.? r Разрешение
не требует установки x
для папки (вы можете ls
и r -
папка сколько хотите), но вы не будете может видеть что-либо, кроме имен файлов:
ls: cannot access 'test/..': Permission denied
ls: cannot access 'test/.': Permission denied
ls: cannot access 'test/file': Permission denied
total 0
d????????? ? ? ? ? ? ./
d????????? ? ? ? ? ? ../
-????????? ? ? ? ? ? file
Разрешение w
требует, чтобы x
было установлено во всех всех случаях. Вы не сможете изменить каталог, имея к нему доступ только rw-
.
Между тем, разрешение x
является главным. Для просмотра метаданных файла (например, разрешений), перехода к файлу или даже работы с файлами внутри папки, к которой у вас есть доступ на запись, вам потребуется разрешение x
.
См. Arch wiki для некоторых хороших примеров разрешений для каталогов.
Как обычно, учетной записи root
автоматически предоставляются все разрешения под солнцем.
Вы должны быть root или иметь разрешение на выполнение ('x') для доступа к папке.