Domanda Un comando per elencare tutti gli utenti? E come aggiungere, cancellare, modificare gli utenti?


Ho bisogno di un comando per elencare tutti gli utenti nel terminale. E come aggiungere, cancellare, modificare gli utenti dal terminale.

Questo potrebbe aiutare ad amministrare i tuoi account facilmente per terminale.


699
2018-01-24 20:23


origine


risposta sed sed 's/:.*//' /etc/passwd - Avinash Raj
lista utenti: awk -F: '{ print $1 }' /etc/passwd - saviour123


risposte:


Per elencare tutto Locale utenti che puoi usare:

cut -d: -f1 /etc/passwd

Per elencare tutti gli utenti in grado di autenticare (in qualche modo), incluso non locale, vedere questa risposta: https://askubuntu.com/a/414561/571941

Alcuni comandi di gestione utenti più utili (anche limitati a) Locale utenti):

Per aggiungere un nuovo utente puoi usare:

sudo adduser nuovo nome utente

o:

sudo useradd nuovo nome utente

Guarda anche: Qual è la differenza tra adduser e useradd?

Per rimuovere / eliminare un utente, in primo luogo è possibile utilizzare:

sudo userdel nome utente

Quindi potresti voler cancellare la directory home per l'account utente eliminato:

sudo rm -r / home /nome utente

(Usare con cautela il comando sopra!)

Per modificare il nome utente di un utente:

usermod -l nuovo nome utente vecchio nome utente

Per cambiare la password per un utente:

sudo passwd nome utente

Per cambiare la shell per un utente:

sudo chsh nome utente

Per modificare i dettagli per un utente (ad esempio il nome reale):

sudo chfn nome utente

E, naturalmente, vedi anche: man adduser, man useradd, man userdel... e così via.


937
2018-01-24 19:28



Radu ha dimenticato di menzionare sudo chfn <username> che cambia i dettagli dell'utente (ad esempio il nome reale). Ho provato ad aggiungere questo come commento, ma ho avuto errore nel dirmi che devo avere una reputazione di +50 per farlo. - Mikaela
Penso che dovrebbe essere sottolineato che la risposta corretta alla domanda collegata è askubuntu.com/a/381646/16395 --- altrimenti devi prendere in considerazione le politiche di Ubuntu GID / UID a mano. La risposta accettata non è così chiara. - Rmano
sudo userdel DOMAIN \\ johndoe mi dà l'errore: "userdel: impossibile rimuovere la voce 'DOMAIN \ johndoe' da / etc / passwd - Ho cercato in / etc / passwd e non sono nemmeno lì, probabilmente perché è un" dominio "account? - 00fruX
@ 00fruX Sì ... Se utilizzi un database utente centralizzato, dovrai occupartene direttamente. - Oli♦
+1 per Qual è la differenza tra adduser e useradd? - sonlexqt


Basta premere Ctrl+alt+T sulla tastiera per aprire Terminal. Quando si apre, esegui i comandi seguenti:

cat /etc/passwd

O

less /etc/passwd
more /etc/passwd

Puoi anche usare awk:awk

awk -F':' '{ print $1}' /etc/passwd

73
2018-01-24 19:38



come aggiungere utenti per comando? - nux
Puoi usare useradd comando. - Mitch♦
@nux Un po 'tardi per la festa, ma dalla riga di comando adduser anziché, useradd dovrebbe essere limitato agli script in cui l'autore sa davvero cosa sta facendo. - flindeberg


Il modo più semplice per ottenere questo tipo di informazioni è getent - vedi manpage per il getent comando Manpage icon. Mentre quel comando dà lo stesso risultato di cat /etc/passwd è utile ricordare perché ti fornirà elenchi di diversi elementi nel sistema operativo.

Per ottenere un elenco di tutti gli utenti digitati (dato che gli utenti sono elencati in /etc/passwd)

getent passwd

Per aggiungere un utente nuovo utente al sistema che avresti digitato

sudo adduser newuser

per creare un utente con tutte le impostazioni predefinite applicate.

Bonus: per aggiungere qualsiasi utente (ad esempio anyuser) a un gruppo (ad esempio cd rom) genere

sudo adduser anyuser cdrom

Si elimina un utente (ad esempio obsoleto) con

sudo deluser obsolete

Se vuoi cancellare anche la sua home directory / mail, digita

sudo deluser --remove-home obsolete

E

sudo deluser --remove-all-files obsolete

rimuoverà l'utente e tutti i file di proprietà di questo utente sull'intero sistema.


52



È utile ricordare che getent non stampa solo l'output degli utenti in / etc / passwd ma tutti gli utenti in tutti i backdb userdb configurati su un dato sistema, sia esso / etc / passwd o LDAP, ecc. - Marcin Kaminski


Puoi usare compgen anche incorporato:

compgen -u

Elenca tutti gli utenti.


21





Questo dovrebbe ottenere, nella maggior parte delle situazioni normali, tutti gli utenti normali (non di sistema, non strani, ecc.):

awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd

Funziona da:

  • leggendo dentro /etc/passwd
  • utilizzando : come delimitatore
  • se il terzo campo (il numero ID utente) è maggiore di 1000 e non 65534, viene stampato il primo campo (il nome utente dell'utente).

Questo perché su molti sistemi Linux, i nomi utente superiori a 1000 sono riservati agli utenti non privilegiati (si potrebbe dire normali). Alcune informazioni su questo Qui:

Un ID utente (UID) è un intero positivo univoco assegnato da un tipo Unix   sistema operativo per ogni utente. Ogni utente è identificato nel sistema   dal suo UID, e i nomi utente sono generalmente usati solo come interfaccia per   gli esseri umani.

Gli UID sono memorizzati, insieme ai rispettivi nomi utente e altri   informazioni specifiche dell'utente, nel file / etc / passwd ...

Il terzo campo contiene l'UID e il quarto campo contiene il   ID gruppo (GID), che per impostazione predefinita è uguale a UID per tutti gli ordinari   utenti.

Nei kernel Linux 2.4 e successivi, gli UID sono interi a 32 bit senza segno   che può rappresentare valori da zero a 4.294.967.296. Tuttavia, lo è   consigliabile mantenere i valori solo fino a 65.534   compatibilità con sistemi che utilizzano kernel o filesystem più vecchi che possono   supporta solo UID a 16 bit.

L'UID di 0 ha un ruolo speciale: è sempre l'account di root (ad es.   l'utente amministrativo onnipotente). Anche se il nome utente può essere   modificato su questo account e possono essere creati account aggiuntivi con   lo stesso UID, nessuna azione è saggia dal punto di vista della sicurezza.

L'UID 65534 è comunemente riservato a nessuno, un utente senza sistema   privilegi, al contrario di un utente ordinario (cioè non privilegiato).   Questo UID viene spesso utilizzato per le persone che accedono al sistema da remoto   tramite FTP (protocollo di trasferimento file) o HTTP (trasferimento ipertestuale   protocollo).

Gli UID da 1 a 99 sono tradizionalmente riservati agli utenti di sistemi speciali   (a volte chiamati pseudo-utenti), come wheel, daemon, lp, operator,   notizie, mail, ecc. Questi utenti sono amministratori che non hanno bisogno di un totale   poteri di root, ma che svolgono alcuni compiti amministrativi e quindi hanno bisogno   più privilegi di quelli dati agli utenti ordinari.

Alcune distribuzioni Linux (cioè, le versioni) iniziano gli UID per   utenti non privilegiati a 100. Altri, come Red Hat, iniziano con   500, e altri ancora, tali Debian, li iniziano a 1000. A causa del   differenze tra le distribuzioni, può essere necessario l'intervento manuale   se più distribuzioni vengono utilizzate in una rete in un'organizzazione.

Inoltre, può essere conveniente riservare un blocco di UID per gli utenti locali,   come 1000 a 9999 e un altro blocco per utenti remoti (ad es.   utenti in altre parti della rete), ad esempio da 10000 a 65534. L'importante   la cosa è decidere su uno schema e aderire ad esso.

Tra i vantaggi di questa pratica di riservare blocchi di numeri   per particolari tipi di utenti è che rende più conveniente   cercare nei log di sistema attività sospette dell'utente.

Contrariamente alla credenza popolare, non è necessario che ogni voce nel   Il campo UID è unico. Tuttavia, UID non univoci possono causare sicurezza   problemi, e quindi gli UID dovrebbero essere mantenuti unici nel loro complesso   organizzazione. Allo stesso modo, dovrebbe essere il riciclaggio degli UID degli ex utenti   evitato il più a lungo possibile.


19





elenco di tutti gli utenti che possono accedere (nessun utente di sistema come: bin, deamon, mail, sys, ecc.)

awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow

Inserisci nuovo utente

sudo adduser new_username

o

sudo useradd new_username

Elimina/ rimuovi nome utente

sudo userdel username

Se si desidera eliminare la directory home (predefinita la directory / home / nomeutente)

sudo deluser --remove-home username

o

sudo rm -r /path/to/user_home_dir

Se si desidera eliminare tutti i file dal sistema da questo utente (non solo il file di casa)

sudo deluser --remove-all-files

15



Forse dovresti spiegare la differenza tra adduser e useradd. Un anche aggiungere il sudo-prefix al primo comando. Il file shadow della password può essere letto solo come root. - s3lph
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadow mi ha mostrato tutti gli utenti compresi bin, demone, ecc. e ho lanciato questo avvertimento: sequenza di escape \$' treated as plain $ 'Ho trovato questo post stackoverflow.com/a/25867768/847954  e ha aggiunto un altro backslash e ha funzionato bene: awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow - jeff musk


Ok ecco un trucco che ti aiuterà a sistemare questo. Il terminale ha un completamento automatico se si digita utente e si preme il tasto Tab due volte per elencare tutti i comandi che esistono con l'utente come i primi 4 caratteri.

user (tab tab)

mi dà le opzioni possibili     useradd userdel usermod users users-admin
se vuoi saperne di più su un comando google o digita man     man useradd dà     useradd: crea un nuovo utente o aggiorna le nuove informazioni utente predefinite     ...     ...

per elencare gli utenti si dovrebbe andare con quello che ha detto Mitch.

La speranza che mi aiuti ad amare il completamento delle schede in bash mi salva dal ricordare le cose.


7





Per scoprire gli utenti che dispongono di directory home nella cartella / home sulla macchina, eseguire i seguenti comandi

cd /home
ls 

È quindi possibile visualizzare gli utenti che dispongono dell'autorizzazione per accedere al server. Se vogliamo esaminare i file di qualsiasi utente, devi essere l'utente root.


6



Questo mostra solo il contenuto di /home. Mentre Ubuntu mette le directory utente lì per impostazione predefinita, non è assolutamente obbligatorio. - David Foerster