Erreur de lien symbolique

Bonjour,

En apprentissage de développement web, je m’amuse à créer différents petits site.
Tous mes dossiers sont dans mon dossier personnel et ensuite je fais un lien symbolique vers /var/www/html

sauf que là ça fait deux fois que ça m’en donne pas les droits depuis mon navigateur et je ne comprend pas pourquoi

ça concerne Blog et joomla. D’ailleurs pourquoi c’est en rouge ?

voilà ma ligne de commande : texas24@srvdebian:~/www$ sudo ln -s /home/texas24/www/joomla /var/www/html/joomla

Que faire ?

Quand c’est en rouge ça veut dire que ton lien n’est pas bon. Peut être une faute dans le chemin cible, ou manque de droit. Pour ton “blog” il manque peut être le sous répertoire “www”.
Pour les droits je ne pense pas car tes liens ont été fait par le root CE QUI N’EST PAS BIEN !!!
Il est préférable de mettre les droits minimaux, donc «www-data» en général, ce qui largement suffisant pour un serveur web.

D’ailleurs j’en profite pour te dire que même si tu es en apprentissage, tu ne devrais pas prendre l’habitude de travail avec root, mais plutôt avec l’utilisateur www-data, ou un utilisateur spécifique pour le site.

Attention le choix d’utiliser un utilisateur spécifique réclame une gestion des droits fine et l’appartenance de cete utilisateur à différents à au moins le groupe www-data.

De cette manière ce sera déjà un bon réflexe … attention de plus au droits des dossiers qui font peur du 777 :open_mouth:

Bonjour,

merci pour les informations j’ai enlevé blog et renomé le répertoire /home/“user”/www/myBlog

et ma commande -> ln -s myBlog /var/www/html
résultat -> ln: impossible de créer le lien symbolique « /var/www/html/myBlog »: Permission non accordée
Alors qu’avec sudo j’ai permission, ce qui est normal.

Du coup que faire et comment ?

Je suppose fortement que ton répertoire /var/www/html est la propriété du root, donc si tu n’a pas accordé les droits d’écriture c’est normal qu’il te refuse.
Faire un sudo pour faire le lien n’est pas interdit (même si pas vraiment recomandé) mais le laissé la propriété du root ça non. Un «chown www-data» est fortement recommandé

Bonjour Mimozza,

je ne connais pas “www-data” !! Quel lacune me diras-tu ? Je sais je viens de m’en rendre compte pour le sujet Joomla

Qu’est-ce que c’est ? comment ça marche ? comment ça s’implante ? Quel est le mot de passe ? Comment je m’en sert ?

Au secours…

Tranquille, y’a pas de honte a ne pas tout connaitre … on en apprend tous les jours.
«www-data» est un utilisateur système, c’est à dire que tu ne peux pas te connecter avec, qui sert a isoler les droits des application qui on un lien avec un serveur web.
En général quand tu install Apache, Nginx ou autre ils sont lancé avec l’utilisateur spéciale «www-data». Ça permet de limiter leurs actions possibles.
Donc tu n’as rien a faire de particulier pour l’utiliser. Juste que pour tout ce que vas lire/écrire ton serveur web les mettre la propriété du profile «www-data» est suffisant. Pas en root avec «rwx» comme tu nous a montré.

Comment je fais ça ?

En gros, tout ce qui doit être accédé par le serveur HTTP/S (ton dossier /var/www/html si j’ai bien compris) doit appartenir à l’utilisateur www-data. Pour changer un fichier/dossier de propriétaire : chown www-data:www-data fichier.

Regarde la doc de «chown» pour éviter de faire ça fichier par fichier :grin:

J’ai failli préciser l’option -R, mais je me suis dit qu’il trouverait ou demanderait quand il en aurait marre ;-).

D’ailleurs petite astuce, il n’est pas nécessaire de mettre le groupe, celui du propriétaire est automatiquement mis par défaut.

C’est l’utilisateur système qui est créé par défaut, en effet !
Rien n’empêche d’en créer un autre, ayant les mêmes droits … pour faire fonctionner le serveur web.

Comme tu le verras avec la commande système ‘getent passwd www-data’, tu verras ces informations suivantes :

 $ getent passwd www-data
www-data:x:33:33:www-data:/var/www:/usr/sbin/nologin

Chaque information est “partagée” entre le symbole ‘:’ …

  1. Le premier élément est son nom …
  2. ‘x’ concerne l’information passwd cachée, car stockée ailleurs dans un autre fichier.
  3. L’ID utilisateur correspondant
  4. L’ID group correspondant
  5. Le nom du groupe correspondant
  6. Son répertoire “maison”
  7. Son “shell” utilisateur …

https://doc.ubuntu-fr.org/adduser … pour mieux comprendre

Les informations concernant le groupe s’obtienne avec la commande équivalente :

$ getent group www-data
www-data:x:33:

L’usage, en mode console, de la commande suivante : man getent te permettra d’en savoir un peu plus sur le contexte de la commande getent .
De même, pour les commandes adduser, deluser, usermod, groupadd, delgroup, groupmod …

Merci pour ces informations sur www-data.

je rassure le -R je l’avais déja dans les tuyaux

Bonne journée