Comment ajouter un utilisateur à un groupe en ligne de commande?

15

Avec Linux / Unix, je peux utiliser useradd -G developers vivekpour ajouter vivek au groupe de développeurs. Comment puis-je faire la même chose avec Mac OS X?

Ensuite, comment puis-je vérifier si vivek fait partie du groupe de développeurs?

prosseek
la source
Non, ce n'est pas un doublon. Le "doublon" lié concerne la création d'un utilisateur. Cette question concerne la gestion des groupes d'un utilisateur existant.
JL Peyret

Réponses:

12

J'ai utilisé ce one-liner:

sudo dscl localhost -append /Local/Default/Groups/thegroupname GroupMembership theusername
hotpaw2
la source
30

Pour ajouter un utilisateur à un groupe:

dseditgroup -o edit -a vivek -t user developers

(Remarque: vous pouvez également le faire avec dsclcomme dans la réponse de @hobs, mais vous devez vraiment à la fois ajouter le nom abrégé de l'utilisateur à la liste GroupMembership et également ajouter le GeneratedUID de l'utilisateur à la liste GroupMembers. Fait les dseditgroupdeux en une seule opération.)

Pour vérifier l'adhésion:

dseditgroup -o checkmember -m vivek developers

Ou:

dsmemberutil checkmembership -U vivek -G developers

Pour supprimer un utilisateur d'un groupe:

dseditgroup -o edit -d vivek -t user developers

(Encore une fois, vous pouvez le faire avec dscl, mais vous devez supprimer l'utilisateur de GroupMembership et GroupMembers. Fait les dseditgroupdeux.)

Gordon Davisson
la source
Confirmé. dscl ajoute seulement sans vérifier que l'utilisateur est déjà dans le groupe. ça ajoute juste. & il peut créer une adhésion en double pour le même utilisateur du groupe.
risyasin
Ok c'est frustrant. Lorsque j'essaie d'utiliser la première commande, il est indiqué "Le nom d'utilisateur et le mot de passe doivent être fournis". Lorsque j'utilise "-u michael", la page de manuel indique qu'il devrait me demander un mot de passe, mais il imprime à nouveau le message précédent!
Michael
@Michael si vous spécifiez un utilisateur administrateur avec -u, il devrait vous demander le mot de passe. Quelle version d'OS X utilisez-vous? Essayez également avec sudo(ie sudo dseditgroup -o ...) et cela devrait fonctionner.
Gordon Davisson
dseditgroup -o edit -a vivek -t user developersC'est la clé. Beaucoup de gens suggèrent, dseditgroup -o edit -a vivek -t developersmais seulement cela dseditgroup -o edit -a vivek -t user developersfonctionne
Lingasamy Sakthivel
8

Deux façons: depuis le terminal

Tout ici doit être fait sur la ligne de commande Commencez par démarrer dscl comme ceci:

$ dscl localhost

Ensuite, accédez au nœud Groupes:

cd / Local / Par défaut / Groupes

Vous pouvez voir tous les groupes à l'aide de ls. Une fois que vous avez trouvé le groupe qui vous intéresse, vous pouvez afficher toutes ses propriétés avec cat groupname. Lorsque vous êtes prêt à ajouter un utilisateur (nom d'utilisateur) au groupe (nom de groupe), utilisez la commande suivante:

ajouter le nom de groupe GroupMembership nom d'utilisateur

Si vous souhaitez supprimer un membre d'un groupe, utilisez la commande suivante (attention!):

supprimer le nom de groupe GroupMembership nom d'utilisateur

Lorsque vous avez terminé vos modifications, quittez dscl en tapant exit.

Et la manière officielle de la pomme:

Choisissez le menu Apple> Préférences Système, puis cliquez sur Comptes. Ouvrir les préférences des comptes Étape 2

Si le volet des préférences est verrouillé, cliquez sur l'icône de verrouillage et entrez un nom d'administrateur et un mot de passe. Étape 3

Cliquez sur le bouton Ajouter (+), situé sous la liste des comptes, pour créer un nouveau compte. Étape 4

Sélectionnez un groupe dans le menu local Nouveau compte. Étape 5

Entrez un nom pour le groupe, puis cliquez sur Créer un groupe. Étape 6

Cochez les cases des comptes pour être membres du groupe.

ConstantineK
la source