Comment rendre une commande possible en 'user'

Je développe :
Sur mon serveur, il y a une commande que je passe assez fréquemment et dont proprio et groupe sont ‘root’.
Cette commande est :
/etc/init.d/apache restart
Quand je bricole sur mon site, je le fais en ‘user’ et pour que chaque modif soit prise en compte, je suis obligé de régénérer apache, et donc de me loguer en tant que ‘root’.
Problème : mon pass root est trèssssssssssssss long et chiant, ce qui est logique et préférable.
droits actuels : rwxr-xr-x
Est-ce que si je crée un groupe “machin”,
que j’attribue à apache “machin” comme groupe (à la place de l’actuel = root),
que je modifie les droits en rwxrwxr-x
que je mette mon ‘user’ dans le groupe “machin”,
1/ ça fonctionnerait :question:
2/ ça ne poserait pas trop de problèmes de sécurité :question:

Je reprécise que je ne veux pas de sudo sur le serveur.

Autre méthode ? je suis preneur.

Qu’est-ce qui te dérange avec sudo ?

Ben maximum de sécurité sur le serveur. mon pass user est assez costaud mais le pass root l’est encore bien plus.
Sinon, je me sers de sudo sur mes machines de travail, seulement pour la machine serveur.

Je ne vois vraiment pas le soucis.
Sudo permet de limiter les commandes possibles.
Indiques via visudo que seul ton utilisateur machin a le droit d’utiliser le script d’init d’apache.

je pense que le mieux et le plus simple pour toi c’est de faire un script avec le suid qui face ce que tu veux
comme ça ya que ton user qui pourra juste redemarrer ton apache et rien d’autre (tu donne juste le droit d’executer au user pas ecriture)

[quote=“bobzer”]je pense que le mieux et le plus simple pour toi c’est de faire un script avec le suid qui face ce que tu veux
comme ça ya que ton user qui pourra juste redemarrer ton apache et rien d’autre (tu donne juste le droit d’executer au user pas ecriture)[/quote]
On a le droit de mettre le suid sur un script ? Je crois qu’on ne peux que pour les binaires.

Il est possible, qu’à l’installation d’apache un groupe “apache” ai était créé. Il suffit que ton utilisateur soit dans ce groupe pour que ça marche (on a pas attendu sudo pour faire de la sécurité et de la délégation de privilège).

a tester mais je pense que oui
enfin sinon je n’etais pas au courant

[quote=“bobzer”]je pense que le mieux et le plus simple pour toi c’est de faire un script avec le suid qui face ce que tu veux
comme ça ya que ton user qui pourra juste redemarrer ton apache et rien d’autre (tu donne juste le droit d’executer au user pas ecriture)[/quote]
Non, pas de SUID possible dans les scripts.
Pour l’emploi de sudo, ça ne règlerait pratiquement pas mon problème, car même s’il est plus facile (relatif), ça m’obligerait quand même à entrer un pass.
Ou alors, en y réfléchissant, il faudrait que je gère sudoers de façon à ce qu’il n’accepte :
que ricardo
que pour une commande bien précise
et sans pass pour ladite commande
C’est ptet la solution ?

Sinon, ma première idée de création de groupe mais je ne suis pas sûr que apache accepte qu’on modifie son groupe ? (@ MisterFreez : il n’y a pas de groupe apache créé en natif)

Salut,

Voilà, la bonne réponse a été donné par Gérard, «sudo» est fait pour ça, te donner l’accès à une commande précise sans passer par une authentification root.

Pourquoi les serveurs comme apache ou postgresql, ne se créent pas un groupe et les membres de ce groupe pourraient les manipuler. Ce serait plus simple puisque ce serait géré par le (ou les) paquets en question ?

Salut,

A mon sens, je pense également que Gérard a donné la meilleur réponse.

Sinon, avec MisterFreez, nous nous étions penché sur une demande similaire dans la section programmation et avions apporté une ébauche d’une alternative

apache écoute sur un port 80 < 1024. Pour que apache tourne en temps que programme simple utilisateur, la solution est de le faire écouter sur un port >= 1024 et de faire une redirection de port. Sinon, il faudra utiliser un suid root sur apache plus dangereux à mon avis. (Seul root peut ouvrir un port < 1024)

Avec les “capabilities” et plus particulièrement CAP_NET_BIND_SERVICE (plus toutes celles qui sont nécéssaires), ça devrait se faire sans problème.

Gérard et Niloo au début du fil.
C’est ce que je vais faire en fin de compte, car je crains que le modification du groupe de ‘apache’ pose des problèmes ailleurs.
Merci à tous pour les réponses.

si cela peut te servir ?? : web.mit.edu/rhel-doc/4/RH-DOCS/r … leges.html

J’ouvre ‘ssh’ sur un port > 1024 et en ‘user’ :017

Avec les “capabilities” et plus particulièrement CAP_NET_BIND_SERVICE (plus toutes celles qui sont nécéssaires), ça devrait se faire sans problème.[/quote]
Exact, c’est plus simple et il suffit d’un noyau >= 2.6.24 je crois.

http://www.wensley.org.uk/info#setpcaps

J’ouvre ‘ssh’ sur un port > 1024 et en ‘user’ :017[/quote]
je vais peut être dire une connerie mais je pense qu’il s’agit plutôt du démon sshd dont il est question qui lui, tourne en root. :think:

Sympa ces pages du “chapeau rouge” :023