6 votes

Vérifiez si un utilisateur OS X est un administrateur?

Dans un script, comment puis-je vérifier si l'utilisateur "Bill" est membre du groupe d'administrateurs (groupe 80) ?

Je prévois d'utiliser ceci dans un script pour vérifier s'il l'est et s'il ne l'est pas, le rendre utilisateur administrateur.

10voto

jherran Points 12554

Une autre façon :

if groups username | grep -q -w admin; 
then 
    echo "Est admin"; 
else 
    echo "Pas admin"; 
fi
  • groups username affichera tous les groupes de l'utilisateur.
  • grep -q -w admin recherchera (sans sortie -q) le mot admin dans la liste des groupes de l'utilisateur.

Comme suggéré par David Koontz, groups a été obsolète par l'utilitaire id. Ainsi, la phrase if devrait ressembler à ce qui suit pour faire la même chose :

if id -Gn username | grep -q -w admin;

8voto

Consultez la page de l'homme pour id.

id -G utilisateur

affichera une liste des groupes séparés par des espaces pour un utilisateur particulier. Vous devrez détecter 80 dans la liste de sortie.

1voto

klanomath Points 63400

Voici un script simple pour vérifier si l'utilisateur est dans le groupe admin et l'ajouter s'il ne l'est pas :

#!/bin/bash

echo "Ce script ajoutera un utilisateur non-admin au groupe admin"
echo "Veuillez entrer le nom d'utilisateur"
read username
if groups $username | grep -q -w admin; 
    then 
        echo "L'utilisateur '$username' est déjà dans le groupe admin"; 
    else 
        dscl . -append /Groups/admin GroupMembership $username;
    echo "L'utilisateur '$username' a été ajouté au groupe admin !"; 
    echo "Veuillez redémarrer votre Mac pour appliquer les modifications."; 
fi

Enregistrez le script quelque part et rendez-le exécutable en ouvrant le Terminal et en entrant :

chmod 755 /chemin/vers/le/script

Exécutez le script avec sudo /chemin/vers/le/script.

Étant donné que l'administrateur par défaut d'un serveur OS Mac est membre de plusieurs groupes admin (par exemple _lpadmin, access_bpf, _appserveradm, etc.), vous pouvez les ajouter également dans le script.

Exemple :

ajoutez la ligne suivante au script pour ajouter l'utilisateur au groupe 'App Server Admins'

 dscl . -append /Groups/_appserveradm GroupMembership $username;

Pour améliorer le script, vous pouvez également ajouter une condition pour vérifier si l'utilisateur saisi existe tout simplement.

LesApples.com

LesApples est une communauté de Apple où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres utilisateurs d'appareils Apple, poser vos propres questions ou résoudre celles des autres.

Powered by:

X