Bonjour,
impossible d’écrire dans /var/www/html/
j’essai de faire:
echo '<?php phpinfo(); ?>' >/var/www/html/phpinfo.php
la console me répond :
-bash: /var/www/html/phpinfo.php: Permission non accordée
j’essai avec sudo :
sudo echo '<?php phpinfo(); ?>' >/var/www/html/phpinfo.php
la console me répond :
-bash: /var/www/html/phpinfo.php: Permission non accordée
Pourtant root a les droits non ?
ls -al /var/www/html
total 20
drwxr-xr-x 2 root root 4096 mars 5 23:26 .
drwxr-xr-x 3 root root 4096 mars 5 12:07 ..
-rw-r--r-- 1 root root 10701 mars 5 12:07 index.html
Quel sont les règles d’usage pour écrire dans /var/www/html/ ?
Mauvais usage de sudo causé par une méconnaissance du fonctionnement du shell. sudo est un programme comme une autre, il n’affecte pas les redirections du shell. Dans ta commande la redirection est faite par le shell utilisateur, donc avec les droits de l’utilisateur.
sudo echo "blabla" > fichier
s’interprête de la façon suivante :
- Le shell courant ouvre « fichier » en écriture.
- Le shell courant exécute le programme « sudo » avec les arguments « echo » et « blabla » et envoie sa sortie standard dans « fichier ».
- Le programme sudo exécute la commande « echo » avec l’argument « blabla ».
Ici, l’étape 1) échoue parce que l’utilisateur courant n’a pas la permission d’écrire dans le fichier de destination ou de le créer.
Les règles pour écrire dans /var/www/html sont les mêmes que dans n’importe quel autre répertoire, via les permissions Unix ou les ACL.
Merci @PascalHambourg , cela va améliorer mon apprentissage,
En faite je voulais dire: Quel sont les règles d’usage de permissions pour /var/www/html/ ?
Mettre mon user propriétaire et donner les permissions au propriétaire de lire et écrire ?
La « bonne pratique » souvent coneillée est de passer par un groupe dédié, qui a les droits d’écriture sur ce répertoire et dont ton utilisateur fait partie.
Pour ma part je n’utilise pas du tout ce répertoire, qui n’est plus approprié dès qu’on veut présenter plus d’un site Web à partir d’un même système. Pour chaque site Web proposé par mon système j’ai créé une arborescence distincte sous /srv, chacune avec ses propres règles et permissions.
Merci @anon96191775,
Pour l’instant je suis en période d’apprentissage, je me contenterais d’un seul site,
Ais-je bon si ? :
Edit: mon user devient propriétaire et le groupe www-data devient groupe propriétaire
sudo chown -R USER:www-data /var/www/html
Et que le propriétaire peut lire et écrire, le groupe peut lire, le reste ne rien faire
sudo chmod -R u=rwX,g=rx,o= /var/www/html
Presque :
sudo chown -R $USER:www-data /var/www/html
ainsi tu seras propriétaire de tout ce qui est sous /var/www/html et le groupe sera www-data
sudo chmod -R u=rwX,g=rX,o= /var/www/html
X (en majuscule) donne le droit d’entrer dans les dossiers, il n’ya aucun besoin de rendre les fichiers exécutables avec x (en minuscule).
Tu auras les droits en lecture et en écriture et www-data pourra lire les fichiers (ce qui est indispensable.
Merci @anon70622873
Ok pour $USER
Mais je peux aussi bien écrire le nom de mon user directement on est bien d’accord ?
Merci pour le X majuscule qui a toute son importance
Une petite question, si je ne me trompe pas, ce que je demandais en nodal s’écrit :750 ?
Avec le X en majuscule c’est pareil ?