Démarrer ou arrêter Apache sans avoir à donner un mot de passe?

Sur Ubuntu, vous pouvez faire quelque chose comme ceci :

sudo adduser {username} www-data 

Cela ne fonctionne pas sur OS X et peut ne pas être la meilleure approche de toute façon. Sur OS X, comment pouvez-vous démarrer ou arrêter Apache sans avoir à saisir un mot de passe?

Ouvrez le terminal et entrez sudo visudo pour modifier le file / etc / sudoers .

Changer la partie:

 ## User privilege specification ## root ALL=(ALL) ALL %admin ALL=(ALL) ALL 

à

 ## User privilege specification ## root ALL=(ALL) ALL %admin ALL=(ALL) ALL your_username ALL=(ALL) NOPASSWD: /usr/sbin/apachectl 

et enregistrez le file.

Si vous ne connaissez pas vi : après avoir entré sudo visudo vous devez passer en mode insertion en touchant i . Entrez la ligne supplémentaire comme indiqué ci-dessus. Pour quitter le mode insertion, appuyez sur esc . Ensuite, entrez : w q et la touche Entrée pour écrire le file modifié sur le disque et quittez vi.

Démarrer et arrêter Apache avec sudo apachectl start ou sudo apachectl stop ne nécessite plus de mot de passe.


apachectl requirejs que root / sudo l'exécute. Seul l'user root peut exécuter la command sans entrer de mot de passe. Ni l'ajout d'un user au groupe administrateur ni à un autre groupe (par exemple _www) permet d'exécuter (sudo )apachectl sans mot de passe.

Donc, la méthode la less intrusive consiste à append un user – même un user standard – dans le file sudoers et à restreindre le count à exécuter / usr / sbin / apachectl uniquement. L'user ajouté n'est pas autorisé à exécuter une autre command comme sudoer!