Почему я не могу считать файл?

Посмотрите на вывод:

deploy@li445-201:~$ sudo ls -al /var/log/nginx/
total 152
drw-rw-r--  2 root     adm      4096 Mar 26 16:08 .
drwxrwxr-x 14 root     syslog   4096 Mar 26 06:25 ..
-rw-r--r--  1 root     root        0 Mar 26 16:08 access.log
-rwxrwxrwx  1 www-data adm    108849 Mar 26 06:10 access.log.1
-rw-rw-r--  1 www-data adm     14206 Mar 25 06:17 access.log.2.gz
-rw-rw-r--  1 www-data adm     14067 Mar 24 05:31 access.log.3.gz
-rw-r--r--  1 root     root        0 Mar 26 16:08 error.log
-rw-rw-r--  1 www-data adm      2522 Mar 24 17:13 error.log.1

Я пытаюсь читать, файл журнала развертывают пользователя:

deploy@li445-201:~$ cat /var/log/nginx/access.log.1
cat: /var/log/nginx/access.log.1: Permission denied

Почему я не могу считать файл журнала? Я установил даже 777 разрешений на нем

0
задан 26 March 2019 в 09:15

1 ответ

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

drw-rw-r--  2 root     adm      4096 Mar 26 16:08 .
# ^ /var/log/nginx 'bad'
drwxrwxr-x 14 root     syslog   4096 Mar 26 06:25 ..
# ^ /var/log 'good'

Для пользователя, чтобы смочь перечислить файлы в каталоге, Вы должны читать и полномочия на исполнение. Существует хорошее объяснение того, почему Вам нужен выполнить бит, о котором можно читать здесь. Необходимо смочь получить доступ к inodes, который является, где требование происходит. Я всегда думал, что Вы могли считать файл, но не перечислить каталог, но кажется необходимостью в выполнить бите для чтения файлов в большинстве ситуаций.

И это основанное на каталоге ограничение идет полностью до /. Это то, почему 777 файлов в Вашем /home/$USER к каталогу не может получить доступ другой пользователь, потому что Ваш корневой каталог не имеет никакого чтения, ни полномочий на исполнение для 'другого'.

0
ответ дан 25 October 2019 в 23:19

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

Похожие вопросы: