Come posso cambiare il gruppo predefinito di un utente in Linux?


41

Essendo nuovo nell'amministrazione Linux, sono un po 'confuso riguardo ai seguenti comandi:

useradd
usermod
groupadd
groupmod

Ho appena finito di leggere il manuale di amministrazione dell'utente nel manuale dell'amministratore di Linux / Unix, ma alcune cose sono ancora un po 'confuse.

Fondamentalmente useraddsembra abbastanza semplice:

useradd -c "David Hilbert" -d /home/math/hilbert -g faculty -G famous -m -s /bin/sh hilbert

Posso aggiungere "David Hilbert" con nome utente hilbert, impostando la sua directory predefinita, shell e gruppi. E penso che -gsia il suo gruppo principale / predefinito e -Ggli altri suoi gruppi.

Quindi queste sono le mie prossime domande:

  1. Questo comando funzionerebbe ancora se i gruppi facultye famousnon esistessero? Li creerebbe semplicemente?
  2. In caso contrario, quale comando devo usare per creare nuovi gruppi?
  3. Se rimuovo l'utente hilberte non ci sono altri utenti in quei gruppi, rimarranno comunque? Devo rimuoverli?
  4. Dopo aver eseguito il useraddcomando sopra, come posso rimuovere David dal famousgruppo e riassegnare il suo gruppo principale a hilbertcui non esiste ancora?

Risposte:


27

Il usermodcomando ti permetterà di cambiare il gruppo primario di un utente, il gruppo supplementare o un numero di altri attributi. Lo -gswitch controlla il gruppo primario.

Per le tue altre domande ...

  1. Se si specifica un gruppo, groupnameche non esiste durante la useraddfase, si riceverà un errore - useradd: nome gruppo sconosciuto

  2. Il groupaddcomando crea nuovi gruppi.

  3. Il gruppo rimarrà se si rimuovono tutti gli utenti contenuti all'interno. Non è necessario rimuovere necessariamente il gruppo vuoto.

  4. Crea il hilbertgruppo tramite groupadd hilbert. Quindi spostare il gruppo principale di David utilizzando usermod -g hilbert hilbert. (Si noti che il primo hilbertè il nome del gruppo e il secondo hilbertè il nome utente. Questo è importante nei casi in cui si sta spostando un utente in un gruppo con un nome diverso)

Tuttavia, potresti complicare un po 'le cose qui. In molte distribuzioni Linux, un semplice useradd hilbertcreerà l'utente hilberte un gruppo con lo stesso nome del primario. Vorrei aggiungere gruppi supplementari specificati insieme utilizzando l' -Ginterruttore.


1
Grazie. se lo faccio usermod -g hilbert hilbertrimuoverò gli altri gruppi di Hilbert? In tal caso, come terrei questi altri gruppi? In caso contrario, wow lo rimuoverei dagli altri suoi gruppi?
Cwd,

Provalo e vedi per il tuo ambiente particolare.
ewwhite,

@ Risposta di Mick ottiene il mio upvote perché egli sottolinea che è necessario utilizzare -a con -G (altrimenti qualsiasi gruppo si lascia fuori verrà rimosso )
Jeff

9

Devi leggere man usermodciò che spiega cosa succede con le varie opzioni:

usermod -g hilder hilder

sostituirà il tuo gruppo di accesso da "facoltà" a "generatore", a condizione che esista il gruppo "generatore". Se non esiste, devi prima crearlo con groupadd.

Quando si utilizza l' -Gopzione, è necessario utilizzare anche l' -aopzione per aggiungere nuovi gruppi all'elenco corrente di gruppi supplementari a cui appartiene l'utente 'hilder'. Senza l' -aopzione sostituirai gli attuali gruppi supplementari con un nuovo gruppo. Pertanto utilizzare questo con cautela.


5

Per modificare il gruppo principale di un utente in Linux:

  • usermod -g new_group user_name
  • termina tutte le sessioni attive di user_name

Per testare le modifiche, esegui ide osserva il valore digid=

Se il comando viene eseguito senza errori ma il gid non è cambiato, hai perso la parte in grassetto del passaggio 2.


1

la risposta n. 1 è buona, tuttavia potresti anche scegliere di emettere quanto segue per aggiungere un nuovo gruppo:

# nano /etc/group

Il rovescio della medaglia della modifica /etc/groupdiretta è che dovrai trovare un GID (numero ID gruppo) inutilizzato.

Quanto segue ti consentirà di cambiare il gruppo primario di un utente. # nano /etc/passwd

Individua la riga dell'utente e cambi il GID (numero del gruppo, cercalo in /etc/group), tieni presente che la sintassi è la seguente:

 <name>:*:<UID>:<GID>:<comment>:<directory>:<shell>

Non v'è alcun aspetto negativo che posso pensare a questo approccio (a condizione di sapere il GID), è quello che spesso uso per gli utenti locali, soprattutto perché io uso molti sistemi UNIX differenti con diversi usermod, addusere useraddopzioni di comando.

È un po 'più manuale, tuttavia fa il lavoro. Nota che puoi usare viiso nanoper modificare i file, se lo sai vi.


0

Per modificare in modo permanente il gruppo principale dell'utente, eseguire:

  • usermod -g nome utente nome gruppo

Oppure potresti usare newgrpper piccoli ambienti e situazioni temporanee.

Crea un nuovo bob utente e un nuovo gruppo dodo.

useradd bob

Quindi in RedHat / Centos abbiamo UID = (ID_number) bob; GID = (ID_number) bob come gruppo primario per impostazione predefinita

groupadd dodo

Aggiungi il bob utente al dodogruppo:

usermod -aG dodo bob -make sure to use "a"

Prossimo utilizzo newgrpper cambiare proprietà:

newgrp dodo

Fai attenzione al tuo account per avere una password ed essere membro del futuro gruppo primario. E il newgrp apre una nuova shell; fintanto che l'utente rimane in quella shell, il gruppo primario non cambierà. Per riportare il gruppo primario sull'originale, è possibile lasciare la nuova shell eseguendo il comando exit.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.