web-dev-qa-db-fra.com

Comment supprimer un utilisateur d'un groupe?

Quelle commande dois-je utiliser pour supprimer un utilisateur d'un groupe dans Debian?

Lors de l'ajout d'un utilisateur à un groupe, cela peut être fait avec:

usermod -a -G group user

Cependant, je n'ai pas pu trouver une commande similaire (accepter un groupe et un utilisateur comme arguments) pour supprimer l'utilisateur du groupe. Le plus proche que j'ai pu obtenir est:

usermod -G all,existing,groups,except,for,group user

Existe-t-il une commande comme usermod OPTION group user avec OPTION une option pour que usermod (ou un programme similaire) supprime l'utilisateur du groupe?

372
Lekensteyn

Vous pouvez utiliser gpasswd:

# gpasswd -d user group

alors la nouvelle configuration de groupe sera assignée à la prochaine connexion, au moins sur Debian. Si l'utilisateur est connecté, les effets de la commande ne sont pas visibles immédiatement.

443
user13742

Sur Debian, le paquetage adduser contient un programme deluser qui supprime un utilisateur d'un groupe si vous passez les deux en arguments:

deluser user group

Si votre distribution n'a pas adduser, vous pouvez modifier /etc/group et /etc/gshadow manuellement.

vigr
vigr -s
usermod -G "" username

supprime tous les groupes secondaires/supplémentaires de username, les laissant comme membre de leur groupe principal uniquement. cela a fonctionné dans Solaris 5.9

74
user208145

C'est l'approche "old school" ...

La plupart des systèmes * nix conservent les informations de groupe dans un fichier texte brut /etc/group , où

  • chaque ligne contient les champs

    • nom de groupe
    • mot de passe
    • GID, et
    • liste d'utilisateur

    délimité par le : personnage.

  • le champ user_list est une liste de noms d'utilisateurs, séparés par des virgules.

Supposons maintenant que vous souhaitiez supprimer un utilisateur nommé thisuser d'un groupe nommé thatgroup. Commencez par sauvegarder /etc/group, puis utilisez l'éditeur de votre choix avec les privilèges su pour éditer le fichier /etc/group et supprimez la référence thisuser de l'entrée de ligne thatgroup, par exemple,

la ligne d'origine ressemble à ceci:

thatgroup:x:1274:someuser,thisuser,anotheruser

après modification doit être laissé comme ceci:

thatgroup:x:1274:someuser,anotheruser

Comme pour toutes les autres réponses, cela n'affectera pas les sessions actuelles de l'utilisateur, le cas échéant (c'est-à-dire si l'utilisateur est actuellement connecté). La modification prendra effet la prochaine fois que l'utilisateur se connectera.

15
p57

Vous pouvez utiliser la commande ci-dessous sur les distributions SUSE (et, apparemment, pas d'autres).

usermod -R groupenom d'utilisateur

group est le groupe dont vous souhaitez supprimer l'utilisateur et user_name l'utilisateur que vous souhaitez supprimer du groupe. Par exemple,

usermod -R root imnottheroot

Considérer:

  • nom d'utilisateur: abc2
  • nom de groupe: newgroup11

  • Tâche: suppression de l'utilisateur abc2 du groupe newgroup11

[root@home1 ~]# groups abc2
abc2 : abc2
[root@home1 ~]# usermod -G newgroup11 abc2
[root@home1 ~]# groups abc2
abc2 : abc2 newgroup11
[root@home1 ~]# usermod -G newgroup11 abc2
[root@home1 ~]# usermod -G abc2 abc2
[root@home1 ~]# groups abc2
abc2 : abc2

** Veuillez me corriger si je me trompe. **

1
new user

Vous pouvez supprimer un utilisateur du groupe en exécutant la commande usermod sans l'option -a. Par exemple, en exécutant "usermod -G nom d'utilisateur group1", l'utilisateur sera ajouté au groupe1 et le supprimera de tous les autres groupes où il se trouve. N'oubliez pas que vous pouvez conserver l'utilisateur dans différents groupes en répertoriant les noms des groupes, séparés par une virgule.

1
Helper

Pour continuer à utiliser usermod dans une distribution (comme Fedora) qui n'a pas d'option de suppression, où user = bob et group = deletethisgroup, la commande serait:

usermod -G `cat /etc/group |  grep bob | grep -v deletethisgroup | cut -d ':' -f 1 | tr '\n' ',' | sed 's/,$//'` bob

Les canaux (1) récupèrent toutes les entrées de groupe auxquelles appartient l'utilisateur, (2) suppriment celle qui doit être supprimée, (3) renvoie la première colonne (nom du groupe), remplace la nouvelle ligne par une virgule et supprime la virgule de fin.

Bien sûr, vous pouvez mettre tout cela dans un script bash qui prend l'utilisateur et le groupe à supprimer comme paramètres. awk pourrait être utilisé pour raccourcir la fin mais je voulais m'en tenir à grep, cut, tr et sed.

0
Stephen

Supposons que sername = student et groupname = research, donc pour supprimer l'utilisateur student du groupe research, il faut procéder comme suit:

gpasswd -d student research
0
ravi