Question Fichier toujours non imprimable dans / var / www / html après la commande chmod


J'ai du mal à installer certaines applications sur mon système Linux. On dit que les fichiers de mon répertoire / var / www / html / xxx, où je les ai placés, ne sont pas accessibles en écriture. La commande chmod 777 xxx a été essayé de le faire fonctionner, mais l'erreur persiste lorsque j'ai à nouveau ouvert les applications.

Pour être précis, je veux installer phpFreeChat sur mon système, donc je mets ces fichiers dans le répertoire / var / www / html / freechat, cd là et tapé chmod 777 data/private, chmod 777 data/public sur bash. Voici le résultat de 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

Tout cela me semblait bien, jusqu'à ce que je tape http://localhost/freechat dans mon navigateur. Voici le résultat:

phpFreeChat ne peut pas être initialisé,   veuillez corriger ces erreurs:

/var/www/html/freechat/src/../data/private   n'est pas inscriptible   /var/www/html/freechat/src/../data/private/cache   ne peut pas être créé   /var/www/html/freechat/src/../data/private/cache   n'est pas inscriptible   /var/www/html/freechat/src/../data/private/cache   n'est pas lisible ne peut pas créer   /var/www/html/freechat/src/../data/public/themes/default   Ne peut créer   /var/www/html/freechat/src/../data/public/themes/default   /var/www/html/freechat/src/../data/private/chat   ne peut pas être créé   /var/www/html/freechat/src/../data/private/chat   n'est pas inscriptible   /var/www/html/freechat/src/../data/private/chat   n'est pas lisible   /var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada   ne peut pas être créé   /var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada   n'est pas inscriptible   /var/www/html/freechat/src/../data/private/chat/s_d0ba868e1391b6c0d897996049a68ada   n'est pas lisible

Je suis assez confus avec ceci parce que cette situation ne s'est pas produite seulement dans l'installation de cette application mais tout. Les erreurs doivent être faites par moi, mais qu'est-ce que c'est?


2
2018-06-17 07:42


origine


Faire chmod 777 est faux. Je vous suggère de regarder dans les répertoires mod_userdir et utilisateur. - vtest


Réponses:


Ce problème a été résolu par commande setenforce 0, qui fermerait SELinux.

Comme je suis bête! Je n'ai jamais pensé à ça.

Merci Flimzy et njd de toute façon.


1
2018-06-18 02:38





Vous devez faire un chmod récursif pour affecter tous les fichiers et sous-répertoires contenus dans data / private et data / public:

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

Maintenant, après avoir dit cela, vous devriez NE PAS utiliser le mode 777. Notamment si quelqu'un d'autre que vous a un compte de connexion sur ce serveur. 777 signifie monde en lecture, écriture et exécutable. Essentiellement, tout utilisateur de votre système peut lire, écrire, supprimer ou utiliser ces fichiers.

Au minimum, vous devriez changer cela en mode 774, ce qui signifie que seuls les utilisateurs et les groupes (qui sont tous les deux root pour le moment) peuvent écrire les fichiers, mais n'importe quel utilisateur peut les lire.

Idéalement, vous devez également faire en sorte que les fichiers appartiennent tous au même utilisateur non root qui exécute le logiciel freechat, et ne lui donnent que des droits de lecture / écriture pour cet utilisateur / groupe.

Au minimum, changez votre mode à 770, afin que seuls l'utilisateur root et le groupe racine aient


0
2018-06-17 07:49



Merci, mais l'erreur persiste même si j'utilise la méthode récursive pour le faire en mode 777. - lastland
Eux soit le chmod la commande n'a pas fonctionné, car vous l'avez exécutée en tant qu'utilisateur normal et non en tant qu'utilisateur root; ou vous devez vous assurer que les répertoires précédents (/ var / www / html / freechat et ainsi de suite jusqu'à /) sont au moins consultables (exécuter un indicateur) par le compte utilisé pour le service httpd. - njd
Il y a une raison de croire que chmod commande a travaillé pour ces répertoires sont en effet drwxrwxrwx, sauf si ls -al m'a trompé. :) - lastland
Et j'ai essayé chown ces répertoires à apache.apache, qui est défini par /etc/httpd/conf/httpd.conf. Le résultat n'a pas changé au moins. - lastland


Si vous examinez les autorisations sur chaque répertoire:

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

et notez la première colonne, vous devriez voir les lignes commençant comme ceci:

drwxr-xr-x  

Au minimum, il devrait y avoir un X à la fin de la première colonne: sans cela, le serveur Web ne pourra pas accéder au contenu du répertoire freechat.

Donc, vous devrez peut-être

chmod o+x /var/www/html

et même

chmod o+x /var/www

0
2018-06-17 09:34



dr-xr-xr-x est le / répertoire et drwxr-xr-x sont les autres. Non X manquant dans n'importe quel répertoire. - lastland


La bonne façon de le faire sans tuer SE est de le faire

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

restorecon -R / var / www / html / freechat / data   Explication rapide:

Le premier bit dit "tout ce qui commence par / var / www / html / freechat / data doit avoir le contexte par défaut" httpd_sys_rw_content_t ""

L'autre dit "définir tous les contextes des fichiers / répertoires dans httpd_sys_rw_content_t (récursivement) sur les paramètres par défaut (qui viennent d'être modifiés)"


0
2017-08-07 16:43