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

45

Voici ce que je sais:

Je dois ajouter cette ligne ci-dessous dans le sudoersfichier 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 souhaite donner à cet utilisateur accès au redémarrage de 2 services (c'est Apache-à- dire et 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 aux services? Ou puis-je simplement ajouter ces commandes dans la même ligne, séparées par une virgule ou quelque chose?

Hrish
la source

Réponses:

48

J'ai résolu le problème en créant un nouveau groupe avec des droits d'administrateur limités ... le nom de ce groupe est LimitedAdminscelui après lequel j'ai mis à jour le sudoersfichier comme ci-dessous.

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

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

Ceci est le /etc/sudoersfichier 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   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

Cela fonctionne parfaitement au cas où votre système est un domaine ou non.

Rishee
la source
Vous n'êtes pas censé mettre des trucs après la #includedirligne, n'est-ce pas?
Hamstar
@hamstar Hey Salut! Oui, vous avez raison, vous utilisez ce fichier de configuration dans mon entreprise depuis maintenant plus de 2 ans et il fonctionne parfaitement. Je te recommande même de mettre les deux dernières lignes avant #includedir.
Hrish
3
Ou mieux, placez ces deux lignes dans un nouveau fichier sous /etc/sudoers.d au lieu de modifier / etc / sudoers.
Tgharold
@tgharold Oui mon pote !! Vous avez raison ... c’est vraiment une meilleure option que ce que j’ai suggéré ... :) Appréciez votre idée que vous allez essayer de mettre en œuvre chez moi également.
Hrish
Est-ce que #includedir est un commentaire? Ou l'inclinaison est-elle automatique et le commentaire nous le rappelle?
HeatfanJohn
12

Vous avez besoin d'une virgule.

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

La source

Karthik T
la source
J'ai donné les droits comme vous l'avez mentionné, mais j'ai reçu le message d'erreur ci-dessous. <br/> E: impossible d'ouvrir le fichier de verrouillage / var / lib / dpkg / lock - open (13: autorisation refusée) <br/> E: impossible de verrouiller le répertoire d'administration (/ var / lib / dpkg /), vous enracinez? ... Quelqu'un peut-il aider à ce sujet?
Hrish
@Rishee, je vais essayer une fois chez moi
Karthik T
mon fichier sudores contient les éléments mentionnés ci-dessous.
Hrish
# Spécification de privilèges utilisateur root ALL = (ALL: ALL) ALL # Les membres du groupe d'admin peuvent obtenir les privilèges root% admin ALL = (ALL) ALL # Autoriser les membres du groupe sudo à exécuter une commande% sudo ALL = (ALL: ALL) ALL #includedir /etc/sudoers.d $ sudo nano / etc / sudoers% nom_domaine \\ administrateurs ALL = (ALL) ALL% nom_domaine \\ utilisateur.nom ALL = NOPASSWD: / usr / bin / apt-get install, / etc /init.d/apache2 restart
Hrish
2

Ce que j'ai fini par faire était (semblable à 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

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

(666, parce que ... bien ... prtg EST un outil de surveillance sous Windows que vous connaissez)

Mark Maas
la source