52 votes

Comment donner à nopasswd l'accès à plusieurs commandes via sudoers ?

Voici ce que je sais :

Je dois ajouter la ligne suivante dans sudoers pour donner des droits à l'utilisateur pour une tâche particulière.

user_name ALL=NOPASSWD: /usr/bin/apt-get install

Dans ce cas, je veux donner l'accès à cet utilisateur pour redémarrer 2 services (i.e. Apache y MySQL ) avec tous les droits d'installation.

En utilisant la ligne ci-dessus, je lui ai donné tous les droits d'installation, dois-je maintenant ajouter la même ligne deux fois de plus pour donner les droits pour les services ? Ou puis-je simplement ajouter ces commandes sur la même ligne, en les séparant par une virgule ou quelque chose comme ça ?

60voto

Hrish Points 2213

J'ai résolu le problème en créant un nouveau groupe avec des droits d'administration limités... le nom de ce groupe est LimitedAdmins J'ai ensuite mis à jour le sudoers comme suit.

La ligne que j'ai ajoutée est la suivante :

%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

Il s'agit de la version complète /etc/sudoers fichier :

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

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL

# 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  

#includedir /etc/sudoers.d
%domain_name\\administrators ALL=(ALL) ALL
%LimitedAdmins ALL=NOPASSWD: /usr/bin/apt-get*, /etc/init.d/apache2 restart

Il fonctionne parfaitement, que votre système soit de type domaine ou non.

15voto

Karthik T Points 1951

Il semble que la virgule soit ce qu'il vous faut.

Cmnd_Alias PRINTING = /usr/sbin/lpc, /usr/bin/lprm
...
user3 ALL= PRINTING

Source

3voto

Chris Browet Points 131

A titre d'information, je me posais la même question que l'OP, et il semble que l'on puisse tout aussi bien se contenter de dupliquer les lignes, par ex.

user_name ALL=NOPASSWD: cmd1
user_name ALL=NOPASSWD: cmd2
user_name ALL=NOPASSWD: cmd3

2voto

Benoît Points 5598

Ce que j'ai fini par faire est (similaire à ce que vous recherchez) :

## PRTG monitoring
Cmnd_Alias PRTG = /bin/cat /proc/loadavg, /bin/df, /var/prtg/scripts/check_proc.sh
prtg ALL = NOPASSWD: PRTG

A l'intérieur : /etc/sudoers.d/666-prtg

(666, parce que... eh bien... prtg EST un outil de surveillance basé sur Windows, vous savez)

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