2

У меня возникли проблемы при попытке установить некоторые приложения в моей системе Linux. Говорят, что файлы в моем каталоге /var /www /html /xxx, куда я их положил, недоступны для записи. Была предпринята попытка заставить команду chmod 777 xxx работать, но ошибка остается, когда я снова открываю приложения.

В частности, я хочу установить phpFreeChat в моей системе, поэтому я поместил эти файлы в каталог /var /www /html /freechat, вставил туда cd и набрал chmod 777 data/private , chmod 777 data/public на bash. Вот результат list -al data:

drwxr-xr-x.  4 root root 4096  Jun 17 15:07 .
drwxr-xr-x. 13 root root 4096  Jun 17 15:22 ..
drwxrwxrwx.  2 root root 4096  Jun 17 15:07 private
drwxrwxrwx.  3 root root 4096  Jun 17 15:07 public

Все это мне казалось правильным, пока я не набрал http://localhost/freechat в моем браузере. Вот результат:

phpFreeChat не может быть инициализирован, пожалуйста исправьте эти ошибки:

/var/www/html/freechat/src/../data/private недоступно для записи /var/www/html/freechat/src/../data/private/cache не может быть создано /var /www /html /freechat/src/../data/private/cache недоступна для записи /var/www/html/freechat/src/../data/private/cache недоступна для чтения, не может создать /var /www /html /freechat /src /../data/public/themes/default не может создать /var/www/html/freechat/src/../data/public/themes/default /var/www/html/freechat/src/../data/ приват / чат не может быть создан /var/www/html/freechat/src/../data/private/chat недоступен для записи /var/www/html/freechat/src/../data/private/chat is недоступно для чтения недоступно для записи /var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada недоступно для чтения

Я довольно смущен этим, потому что эта ситуация произошла не только при установке этого приложения, но и все. Ошибки должны быть сделаны мной, но что это?

4 ответа4

1

Эта проблема была решена с помощью команды setenforce 0 , которая отключала SELinux.

Как я глупа! Я никогда не думал об этом.

Спасибо, Флимзи и NJD в любом случае.

0

Вам нужно выполнить рекурсивный chmod, чтобы повлиять на все файлы и подкаталоги, содержащиеся в data/private и data/public:

chmod -R 777 /var/www/html/freechat/private
chmod -R 777 /var/www/html/freechat/public

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

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

В идеале, вы также должны сделать файлы принадлежащими тому же самому пользователю без полномочий root, который запускает программное обеспечение freechat, и дать этому пользователю / группе только разрешение на чтение / запись.

Как минимум, измените свой режим на 770, чтобы только пользователь root и корневая группа имели

0

Правильный способ сделать это без убийства SE состоит в том, чтобы сделать это

semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/html/freechat/data(/.*)»

restorecon -R /var/www/html/freechat/data Краткое объяснение:

Первый бит говорит, что «каждая вещь, начинающаяся с /var /www /html /freechat /data, должна иметь контекст по умолчанию« httpd_sys_rw_content_t »»

Другой говорит «установить все контексты в файлах / каталогах в httpd_sys_rw_content_t (рекурсивно) на значения по умолчанию (которые были только что изменены)»

0

Если вы посмотрите на разрешения для каждого каталога:

ls -ld / /var /var/www /var/www/html /var/www/html/freechat

и обратите внимание на первый столбец, вы должны увидеть строки, начинающиеся так:

drwxr-xr-x  

По крайней мере, в конце первого столбца должен быть символ x : без этого веб-сервер не сможет получить доступ к содержимому каталога freechat.

Так что вам может понадобиться

chmod o+x /var/www/html

и даже

chmod o+x /var/www

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .