Redémarrer nginx sans sudo?
Donc, je veux être en mesure de pac:déployer sans avoir à taper de mot de passe. J'ai mis en place toutes les clés privées afin que je puisse obtenir pour les serveurs distants fine, et je suis maintenant en utilisant svn via ssh, donc pas de mot de passe il.
J'ai un dernier problème, j'ai besoin d'être en mesure de redémarrer nginx. Droit maintenant, j'ai sudo /etc/init.d/nginx recharger. C'est un problème b/c il utilise le capistrano mot de passe, celui que j'ai juste enlevé le b/c je suis en utilisant les touches. Toutes les idées sur la façon de redémarrer nginx w\un mot de passe?
- Ce type de question serait mieux d'adresse sur serverfault.com. Aussi, jetez un oeil à courtesan.com/sudo/man/sudoers.html#nopasswd_and_passwd pour savoir comment supprimer les mots de passe de certaines commandes à l'aide de sudo.
- Avez-vous vraiment besoin de redémarrer Nginx? Si vous utilisez des Passagers pour servir une application Rack tels que les Rails de, la course
touch tmp/restart.txt
dans le répertoire de sortie devrait laisser les Passagers sais qu'il a besoin de redémarrer.
Vous devez vous connecter pour publier un commentaire.
Je viens de passé une bonne heure à regarder sudoer des caractères génériques et la comme essayer de résoudre ce problème exact. En vérité, tous vous avez vraiment besoin est une racine script exécutable qui redémarrage de nginx.
L'ajouter au fichier /etc/sudoers
Écrire un script en tant que root
De rendre le script exécutable
Test.
Il y a un meilleure réponse sur un Débordement de Pile qui n'implique pas l'écriture d'un script personnalisé:
Instructions:
Dans toutes les commandes, remplacer myuser avec le nom de votre utilisateur que vous souhaitez utiliser pour redémarrer nginx sans sudo.
Ouvrir le fichier sudoers pour votre utilisateur:
Éditeur s'ouvre. Il vous collez la ligne suivante. Cela permettra à l'utilisateur d'exécuter nginx démarrer, redémarrer et arrêter:
Enregistrer en appuyant sur la touche ctrl+o. Il va vous demander où vous souhaitez enregistrer, appuyez simplement sur entrée pour confirmer le défaut. Ensuite sortir de l'éditeur, avec ctrl+x.
Maintenant, vous pouvez redémarrer (et de démarrer et d'arrêter) de nginx sans mot de passe. Nous allons essayer.
Ouvrir une nouvelle session (dans le cas contraire, vous risquez tout simplement de ne pas être demandé de saisir votre mot de passe sudo parce qu'il n'a pas expiré):
Arrêter de nginx
Confirmer que nginx est arrêté par la vérification de votre site web ou de l'exécution
ps aux | grep nginx
Début de nginx
Confirmer que nginx a commencé par la vérification de votre site web ou de l'exécution
ps aux | grep nginx
PS: assurez-vous d'utiliser
sudo /usr/sbin/service nginx start|restart|stop
, et passudo service nginx start|restart|stop
./usr/sbin/
bien. Au moins il fonctionne dans ma env sans.Créer une tâche rake en
Rails_App/lib/capistrano/tasks/nginx.rake
et collez code ci-dessous.Puis ssh à votre serveur distant et ouvrir le fichier
et le coller cette ligne (après la ligne
%sudo ALL=(ALL:ALL) ALL
)Ou, comme dans votre cas,
Ici, je suis en supposant que votre déploiement de l'utilisateur est
deploy
.Vous pouvez ajouter ici d'autres commandes de trop pour lequel vous n'avez pas besoin d'entrer de mot de passe. Par exemple