gpasswd -a user plusieurs_groups

6 réponses
Avatar
jp willm
Bonjour à toutes et à tous,


Je cherche depuis un moment comment ajouter ou supprimer un utilisateur
à plusieurs groupes :

sudo gpasswd -a user group1,group2 ne fonctionne pas ni
sudo gpasswd -a user group1, group2

J'ai essayé de séparer avec des ";" mais non, cela ne va pas mieux :-/


Avec sudo usermod -aG group1,group2 user on peut ajouter un utilisateur
à plusieurs groupes, mais je ne sais pas comment faire l'inverse...

Est-ce que ce serait sudo usermod -aW group1,group2 user ?
Je n'ai pas osé...


D'avance merci pour vos lumières !

--
jp willm
http://perso.orange.fr/willms/index.html

6 réponses

Avatar
Benoit Izac
Bonjour,
Le 03/04/2019 à 11:48, jp willm a écrit dans le message
<q81vhd$smr$ :
Je cherche depuis un moment comment ajouter ou supprimer un
utilisateur à plusieurs groupes :
sudo gpasswd -a user group1,group2 ne fonctionne pas ni
sudo gpasswd -a user group1, group2
J'ai essayé de séparer avec des ";" mais non, cela ne va pas mieux :-/

« ; » marque la fin d'une ligne en shell donc c'est rarement utilisé (je
ne vois que find(1) qui en fait l'usage).
Avec sudo usermod -aG group1,group2 user on peut ajouter un
utilisateur à plusieurs groupes, mais je ne sais pas comment faire
l'inverse...

Ta demande n'est pas très claire... veux-tu :
1) ajouter un utilisateur dans plusieurs groupes ?
=> usermod -aG group1,group2 user
2) ajouter plusieurs utilisateurs dans un groupe ?
=> for u in user1 user2 user3; do usermod -aG group $u; done
3) autre chose ?
Est-ce que ce serait sudo usermod -aW group1,group2 user ?
Je n'ai pas osé...

J'en doute : « -W, --del-subgids FIRST-LAST ».
--
Benoit Izac
Avatar
jp willm
Le 03/04/2019 à 19:42, Benoit Izac a écrit :
« ; » marque la fin d'une ligne en shell donc c'est rarement utilisé (je
ne vois que find(1) qui en fait l'usage).

Ok.
Avec sudo usermod -aG group1,group2 user on peut ajouter un
utilisateur à plusieurs groupes, mais je ne sais pas comment faire
l'inverse...

Ta demande n'est pas très claire... veux-tu :
1) ajouter un utilisateur dans plusieurs groupes ?
=> usermod -aG group1,group2 user

Oui, mais j'aimerais également pouvoir faire l'inverse, c'est-à-dire
retirer un utilisateur dans plusieurs groupes.
2) ajouter plusieurs utilisateurs dans un groupe ?
=> for u in user1 user2 user3; do usermod -aG group $u; done

Non, mais je note néanmoins la formule 8-)
3) autre chose ?

Non.
Est-ce que ce serait sudo usermod -aW group1,group2 user ?
Je n'ai pas osé...

J'en doute : « -W, --del-subgids FIRST-LAST ».

Ok, j'oublie :-)
--
jp willm
http://perso.orange.fr/willms/index.html
Avatar
Benoit Izac
Bonjour,
Le 03/04/2019 à 21:16, jp willm a écrit dans le message
<q830qq$1d43$ :
1) ajouter un utilisateur dans plusieurs groupes ?
=> usermod -aG group1,group2 user

Oui, mais j'aimerais également pouvoir faire l'inverse, c'est-à-dire
retirer un utilisateur dans plusieurs groupes.

for g in group1 group2 group3; do gpasswd -d user $g; done
--
Benoit Izac
Avatar
jp willm
Bonjour,
Le 04/04/2019 à 07:10, Benoit Izac a écrit :
retirer un utilisateur dans plusieurs groupes.

for g in group1 group2 group3; do gpasswd -d user $g; done

C'est tout simplement génial et je crois que j'ai même compris la formule !
Je l'ai adaptée en ajoutant sudo et elle fonctionne avec les deux
options -a et -d 8-)
C'est une boucle C je crois, comme on en voit également dans les
programmes Arduino:
<https://ryanstutorials.net/bash-scripting-tutorial/bash-loops.php>
<https://www.tutorialspoint.com/arduino/arduino_loops.htm>
On aurait dû m'apprendre cela en primaire.
Merci !
--
jp willm
http://perso.orange.fr/willms/index.html
Avatar
Lucas Levrel
Bonjour,
Le 4 avril 2019, à 11:02, jp willm a écrit :
Le 04/04/2019 à 07:10, Benoit Izac a écrit :
for g in group1 group2 group3; do gpasswd -d user $g; done

C'est tout simplement génial et je crois que j'ai même compris la formule !

...
C'est une boucle C je crois, comme on en voit également dans les programmes
Arduino:
<https://ryanstutorials.net/bash-scripting-tutorial/bash-loops.php>
<https://www.tutorialspoint.com/arduino/arduino_loops.htm>
On aurait dû m'apprendre cela en primaire.

Pourquoi C ? C'est une boucle for, comme il y en a dans à peu près tous
les langages de programmation... chacun avec sa syntaxe.
Pour occuper tes longues soirées d'hiver (zut il vient de finir) :
man bash ;-)
--
LL
Ἕν οἶδα ὅτι οὐδὲν οἶδα (Σωκράτης)
C'est mieux avé les accents (F. Patte)
Avatar
jp willm
Le 05/04/2019 à 22:54, Lucas Levrel a écrit :
Pourquoi C ? C'est une boucle for, comme il y en a dans à peu près tous
les langages de programmation... chacun avec sa syntaxe.

J'ai l'air pas malin du tout :-/
Pour occuper tes longues soirées d'hiver (zut il vient de finir) :
man bash ;-)

J'ai quand même regardé et l’exemple de cette boucle for y figure.
Une chose est sûre, je ne vais pas m'ennuyer l'hiver prochain. :-)
--
jp willm
http://perso.orange.fr/willms/index.html