Question:
Est-ce une faute grave d'administrer un serveur web en ROOT plutôt qu'avec un compte utilisateur?
anonymous
2017-12-29 22:56:11 UTC
Je fais tout en ROOT car avec mon compte utilisateur il y a des commandes qui ne fonctionnent pas, par exemple celle-ci :

php bin/magento setup:upgrade
Quatre réponses:
oyubir
2017-12-29 23:19:39 UTC
Les commandes qui ne fonctionnent pas sans être root ont probablement besoin d'être root.

Je ne connais pas magento, donc je ne peux pas être sûr. Mais à vue de net, un truc qui continent "setup:upgrade" est probablement quelque chose qui installe de nouveaux logiciels, donc typiquement quelque chose qui doit être fait en root.



Ce qui serait une faute grave, c'est d'être root pour créer les fichiers eux mêmes (les fichiers php, etc, par exemple). Car s'ils appartiennent au root, ça veut dire soit qu'il faut leur donner une visibilité universelle (ce qui n'est pas terrible), soit, pire, qu'il faut que le serveur tourne lui même avec les droits root.



Auquel cas, la première injection de code venue pourra avoir des conséquences bien plus catastrophiques que la normale (la différence entre le hacker qui arrive à entrer des valeurs bidons, et le hacker qui arrive à voler les mots de passe, ou effacer toute la machine, voire à utiliser votre serveur comme base arrière pour d'autres actions plus graves. Pour prendre une analogie "yahoo q/r" : la différence entre le hacker qui arrive à s'autoattribuer 12 peh, et le hacker qui efface tout yahoo, après avoir piqué les mots de passe de tout l emonde).



Mais bon, habituellement, les actions d'administrations sont faites comme root. Il en faut bien. Si on pouvait tout faire sans être root, cela serait grave aussi (si ne pas être root protège contre les bêtises, c'est bien parce qu'il y a des actions qui ne peuvent être faites que en étant root)



EDIT: ok, dans le cas précis de magento, il semble quand même que toutes les commandes "bin/magento" ne font que modifier des fichiers applicatifs (et pas installer du logiciel au niveau système). Donc en théorie, il ne devrait pas y avoir besoin d'être root pour taper les commandes. On est même dans le cas que je citais : si on est root pour taper le "upgrade", ça veut dire soit que les fichiers magento sont publics, soit que le serveur tourne en tant que root. Aucun des deux n'est génial (et le deuxième est vraiment une mauvaise idée).



Donc il serait mieux d'essayer de comprendre pourquoi ça ne marche pas sans être root



Etes-vous sur que votre compte utilisateur est le bon compte ?

Bien souvent il y a un compte ad-hoc créé pour. Il faut alors exécuter les commandes ni en tant que root ni en tant que vous, mais en tant que ce compte ad-hoc

genre

sudo -u magento php bin/magento etc



(sudo -u magento signifiant "exécuter en tant que magento")



Si c'est pas un problème de compte, êtes vous sur que l'ensemble du repertoire appartient bien à l'utilisateur en question ?

C'est un des inconvénients d'exécuter ces commandes comme root : il suffit de l'avoir fait une fois pour que certains et fichiers et répertoires appartiennent à root, et ne puissent donc plus être modifiés par personne d'autre que root.

Donc ça a un côté irreversible : faites-le une fois comme root, et ensuite vous êtes obligés de le faire tout le temps comme root.

Bon, pas si irréversible que ça. Si le problème est celui-là, un "chown" bien senti devrait régler définitivement le problème (à condition de ne pas recommencer ensuite)







En d'autres termes : quand une commande telle que celle que vous avez donnée ne fonctionne pas, quel est le message d'erreur ?
A
2017-12-30 00:33:26 UTC
Bin il faut juste regarder quels sont les droits et le propriétaire du dossier dans lequel magento veut écrire pour faire sa mise à jour.

Par exemple si le propriétaire du dossier de magento c'est "www-data", tu peux faire un:

#su www-data

... puis lancer ta commande



Sinon, si tu veux lancer la commande avec ton utilisateur normal, il y a aussi la possibilité de mettre ton utilisateur dans le groupe "www-data" (si le dossier de magento est dans le groupe "www-data"):

sudo adduser mon_utilisateur www-data



et du coup tu auras les droits d'écriture sur le dossier si les droits sont au minimum "760".



Donc la question à mille euros: quels sont les droits du dossier de magento?
La Diablesse
2017-12-29 23:33:22 UTC
Alors là mon cher Au secours vous avez trouvé l'homme de la situation (oyubir). Et c'est pas peu dire car en Linux, il sait de quoi il parle.

Bravo oyubir.

Mais je crains que notre cher Au secours en soit à ses débuts dans l'utilisation de Linux, et il faut y passer quelques nuits blanches avant de dompter la bête. Mais tu vas y arriver, faut dire aussi que là tu passes directement dans la cour des grands en tripatouillant un serveur sous Linux.

Je laisse là place au maître de ce domaine.



Excuse oyubir pour cette avalanche de compliments mais c'est mérité.
?
2017-12-29 23:06:27 UTC
Oui !


Ce contenu a été initialement publié sur Y! Answers, un site Web de questions-réponses qui a fermé ses portes en 2021.
Loading...