
Я хочу иметь возможность просматривать файлы журнала Apache как обычный пользователь. Я установил для этих файлов права 777 как root, но все равно не могу просматривать их как обычный пользователь, почему?
#I have set permissions for everyone
root@senior:/var/log/apache2# ls -l
total 200
-rwxrwxrwx 1 root root 1951 Feb 27 23:07 access.log
-rwxrwxrwx 1 root root 89508 Feb 27 23:07 error.log
-rwxrwxrwx 1 root root 101601 Feb 27 23:06 other_vhosts_access.log
#I have also set directory permission
root@senior:/var/log# ls -l
drw-rw-r-- 2 root adm 4096 Feb 27 23:08 apache2
Но все еще не могу просмотреть файлы
kubi@senior:$ ls -l /var/log/apache2/
ls: cannot access /var/log/apache2/other_vhosts_access.log: Permission denied
ls: cannot access /var/log/apache2/error.log: Permission denied
ls: cannot access /var/log/apache2/access.log: Permission denied
total 0
-????????? ? ? ? ? ? access.log
-????????? ? ? ? ? ? error.log
-????????? ? ? ? ? ? other_vhosts_access.log
kubi@senior:/$ ls /var/log/apache2/error.log
ls: cannot access /var/log/apache2/error.log: Permission denied
Я использую Debian.
решение1
Каталог должен быть 750
, а не 664
. Также, вы должны добавить пользователя в adm
группу. Это, по сути, и есть смысл adm
группы: чтение журналов.
Разрешения на каталоги немного отличаются от разрешений на файлы. Если упростить, каталог — это список имен и адресов: имя — это имя файла, адрес — это фактическое местоположение файла. Разрешение x
контролирует доступ к этому списку: чтобы найти адрес определенного файла, вам нужен бит выполнения на его родительском каталоге, на родительском каталоге этого каталога и т. д. r
Затем разрешение контролируетлистингфайлы: Если у вас есть --x
, вы можете получить доступ к файлу, если знаете его имя, но вы не можете ls
. Наконец, w
управляет созданием, переименованием и удалением файлов. Таким образом, чтобы получить доступ к файлу, вам всегда нужен бит x
.
Также: НЕ устанавливайте файлы журнала на 777. Они должны быть 644 или 640, одно из двух. Две причины: во-первых, они не исполняемые, поэтому бит x
должен быть выключен. Во-вторых, что более важно, обычные пользователи должныникогдаписать в файлы журнала Apache, только читать. Это потенциальная дыра в безопасности сервера.
решение2
Вам необходимо установить флаг выполнения для каталогов, чтобы иметь возможность просматривать список содержащихся в них файлов.
Но лучшее решение — не менять права доступа к файлу, а добавить пользователя в группу администраторов (adm).