Je veux ajouter l'utilisateur Apache (www-data) à la audio groupe. J'ai lu la page de manuel pour useradd, mais je n'ai pas de chance. J'utilise xubuntu 11.10. Voici ce que je fais:
$ sudo useradd -G audio www-datauseradd: user 'www-data' already exists
Si je laisse de côté le -G option, bash, imprime les informations d'aide pour useradd:
$ sudo useradd audio www-dataUsage: useradd [options] LOGINOptions: -b, --base-dir BASE_DIR base directory for the home directory...
Il n'est pas clair pour moi à partir de la page de manuel quelles options je devrais utiliser pour que cela fonctionne.
Le useradd la commande va essayer d'ajouter un nouvel utilisateur. Puisque votre utilisateur existe déjà, ce n'est pas ce que vous voulez.
Au lieu de cela: Pour modifier un utilisateur existant, comme l'ajout de cet utilisateur à un nouveau groupe, utilisez le usermod commande.
Essayez ceci:
sudo usermod -a -G groupName userName
Le -a le commutateur (append) est essentiel. Sinon, l'utilisateur sera supprimé de tous les groupes, pas dans la liste.
Le -G switch prend une liste (séparée par des virgules) de groupes supplémentaires auxquels attribuer l'utilisateur.
En général (pour l'interface graphique, ou pour les processus déjà en cours d'exécution, etc.), utilisateur vous devrez vous déconnecter et vous reconnecter pour voir leur nouveau groupe ajouté. Pour la session shell en cours, vous pouvez utiliser newgrp:
newgrp groupName
newgrp ajoute le groupe à la session shell en cours.
Je poste ceci comme réponse parce que je n'ai pas assez de réputation pour commenter. Comme @ dpendolino l'a mentionné, pour que les effets de cette commande persistent:
Cependant, si vous avez besoin d'un raccourci pour commencer à utiliser votre nouvelle appartenance à un groupe immédiatement (et vous avez le bon sudo 1) J'ai trouvé cette solution de contournement:
$ sudo su -# su [userName]$ groups
Explication:
sudo su - vous donnera un shell racine
su [userName] vous renvoie à un shell avec votre utilisateur
groups lorsque run now affichera le groupe que vous avez ajouté avec le usermod -aG commande
Dans mon cas, j'essayais d'ajouter le groupe 'docker' à mon utilisateur
Sur Ubuntu, depuis se connecter en tant que root n'est pas activé, utilisateurs dans le sudo le groupe peut élever les privilèges pour certaines commandes restreintes. Toute commande restreinte doit être précédée de sudo pour élever le privilège.
sudo usermod -a -G groupeutilisateur
ajoutera l'utilisateur existant user à un groupe supplémentaire nommé group. Le groupe principal de l'utilisateur restera inchangé.
Pour ajouter définitivement un utilisateur à un groupe, exécutez cette commande:
sudo usermod -a -G <groupname> <username>
Ensuite, déconnectez-vous et reconnectez-vous (ou redémarrez si nécessaire).
Explication:
Le usermod commande modifiera le /etc/group fichier pour répertorier le nom d'utilisateur spécifié dans la ligne correspondant à ce groupe. Si tu cours grep <groupname> /etc/group, vous devriez voir votre nom d'utilisateur dans la sortie.
Sous Linux, chaque processus est affecté à un utilisateur et à des groupes, et tous les processus enfants héritent de l'utilisateur et des groupes du processus parent. Donc, pour que ce changement prenne effet et se propage, vous devez vous déconnecter et vous reconnecter (à quel point /etc/group est lu et utilisé). Sur Wayland, j'ai trouvé qu'un redémarrage complet était nécessaire.
Si vous exécutez la commande groups, vous pouvez voir si le processus en cours a les groupes attendus ou non.