2 votes

Problème de Sudo sans mot de passe

J'ai un problème avec sudo. Comme l'utilisateur forge Je veux être capable d'exécuter sudo service php5-fpm reload sans avoir à taper un mot de passe. J'ai essayé toutes les variantes ci-dessous.

forge   ALL=NOPASSWD: /usr/bin/service php5-fpm reload
forge   ALL=NOPASSWD: /usr/bin/service
forge   ALL=(ALL:ALL) NOPASSWD: /usr/bin/service
forge   ALL=(ALL:ALL) NOPASSWD: /usr/bin/service php5-fpm reload

Mais il continue à me demander un mot de passe. J'ai essayé de me connecter et de me déconnecter.

# tail /var/log/auth.log
Sep 16 09:28:19 apps sudo: pam_unix(sudo:auth): conversation failed
Sep 16 09:28:19 apps sudo: pam_unix(sudo:auth): auth could not identify password for [forge]

C'est le dossier complet.

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

# Host alias specification

# User alias specification

# Cmnd alias specification
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig

# User privilege specification
root    ALL=(ALL:ALL) ALL
#forge  ALL=NOPASSWD: /usr/bin/service

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Utilisation d'Ubuntu 14.04.1 LTS

$ which service
/usr/sbin/service

Le problème :

$ sudo service 
[sudo] password for forge: 

Voilà ce qui a marché.

visudo :

# Cmnd alias specification
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig/, /usr/bin/service, /usr/sbin/service

/etc/sudoers.d/forge :

forge   ALL = (ALL) NOPASSWD:   SERVICES

J'ai essayé de déplacer le contenu de la page forge dans visudo mais ça n'a pas marché.

2voto

MadHatter Points 77602

Vous donnez le mauvais PATH au binaire. Le site which La sortie montre que c'est /usr/sbin/service mais vous continuez à spécifier /usr/bin/service dans votre sudoers entrées.

Essayez

forge   ALL=(ALL)     NOPASSWD: /usr/sbin/service

1voto

alexus Points 12076

Essayez de suivre :

/etc/sudoers :

# grep -B1 'Cmnd_Alias SERVICES' /etc/sudoers
## Services
Cmnd_Alias SERVICES = /sbin/service, /sbin/chkconfig
# 

/etc/sudoers.d/forge :

# cat /etc/sudoers.d/forge
forge   ALL = (ALL) NOPASSWD:   SERVICES
# 

test

[forge@localhost ~]$ sudo service
Usage: service < option > | --status-all | [ service_name [ command | --full-restart ] ]
[forge@localhost ~]$ 

Ajuster CORRECT le chemin vers votre service si nécessaire, cela peut varier en fonction de votre distribution, pour trouver le chemin correct, exécutez ce qui suit :

$ which service
/sbin/service
$

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X