Ho bisogno di un comando per elencare tutti gli utenti nel terminale. E come aggiungere, eliminare, modificare utenti dal terminale.
Ciò potrebbe aiutare ad amministrare facilmente i tuoi account tramite terminale.
awk -F: '{ print $1 }' /etc/passwd
Ho bisogno di un comando per elencare tutti gli utenti nel terminale. E come aggiungere, eliminare, modificare utenti dal terminale.
Ciò potrebbe aiutare ad amministrare facilmente i tuoi account tramite terminale.
awk -F: '{ print $1 }' /etc/passwd
Risposte:
Per elencare tutti gli utenti locali è possibile utilizzare:
cut -d: -f1 /etc/passwd
Per elencare tutti gli utenti in grado di autenticarsi (in qualche modo), inclusi quelli non locali, vedere questa risposta .
Alcuni comandi di gestione degli utenti più utili (limitati anche agli utenti locali ):
Per aggiungere un nuovo utente è possibile utilizzare:
sudo adduser new_username
o:
sudo useradd new_username
Vedi anche: Qual è la differenza tra adduser e useradd?
Per rimuovere / eliminare un utente, è innanzitutto possibile utilizzare:
sudo userdel username
Quindi potresti voler eliminare la home directory per l'account utente eliminato:
sudo rm -r / home / nome utente
Si prega di utilizzare con cautela il comando sopra!
Per modificare il nome utente di un utente:
usermod -l new_username old_username
Per modificare la password per un utente:
sudo passwd username
Per modificare la shell per un utente:
sudo chsh username
Per modificare i dettagli per un utente (ad esempio il nome reale):
sudo chfn username
Per aggiungere un utente al sudogruppo:
adduser username sudo
o
usermod -aG sudo username
E, naturalmente, si veda anche: man adduser, man useradd, man userdel... e così via.
sudo chfn <username>quali modifiche ai dettagli dell'utente (ad esempio il nome reale). Ho provato ad aggiungere questo come commento, ma ho riscontrato un errore nel dirmi che devo avere +50 reputazione per farlo.
Premi Ctrl+ Alt+ Tsulla tastiera per aprire Terminale. Quando si apre, esegui i seguenti comandi:
cat /etc/passwd
O
less /etc/passwd
more /etc/passwd
Puoi anche usare awk: awk
awk -F':' '{ print $1}' /etc/passwd
adduser, useradddovrebbe essere limitato agli script in cui l'autore sa davvero cosa sta facendo.
Il modo più semplice per ottenere questo tipo di informazioni è getent: consultare la manpage per il getentcomando
. Mentre quel comando fornisce lo stesso output cat /etc/passwdche è utile ricordare perché ti darà elenchi di diversi elementi nel sistema operativo.
Per ottenere un elenco di tutti gli utenti digitati (poiché gli utenti sono elencati in /etc/passwd)
getent passwd
Per aggiungere un utente newuser al sistema è necessario digitare
sudo adduser newuser
per creare un utente a cui sono state applicate tutte le impostazioni predefinite.
Bonus: per aggiungere qualsiasi utente (ad esempio anyuser ) a un tipo di gruppo (ad esempio cdrom )
sudo adduser anyuser cdrom
Si elimina un utente (ad esempio obsoleto ) con
sudo deluser obsolete
Se vuoi cancellare anche la sua home directory / mail scrivi
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.
getent passwdil comando giusto
Ciò dovrebbe ottenere, nelle situazioni più normali , tutti gli utenti normali (non di sistema, non strani, ecc.):
awk -F'[/:]' '{if ($3 >= 1000 && $3 != 65534) print $1}' /etc/passwd
Questo funziona da:
/etc/passwd:come delimitatoreQuesto perché su molti sistemi Linux, i nomi utente sopra 1000 sono riservati agli utenti non privilegiati (si potrebbe dire normali). Alcune informazioni su questo qui :
Un ID utente (UID) è un numero intero positivo univoco assegnato da un sistema operativo simile a Unix a ciascun utente. Ogni utente viene identificato nel sistema dal suo UID e i nomi utente vengono generalmente utilizzati solo come interfaccia per l'uomo.
Gli UID sono memorizzati, insieme ai rispettivi nomi utente e altre informazioni specifiche dell'utente, nel file / etc / passwd ...
Il terzo campo contiene l'UID e il quarto campo contiene l'ID gruppo (GID), che per impostazione predefinita è uguale all'UID per tutti gli utenti ordinari.
Nei kernel Linux 2.4 e versioni successive, gli UID sono numeri interi a 32 bit senza segno che possono rappresentare valori da zero a 4.294.967.296. Tuttavia, è consigliabile utilizzare solo valori fino a 65.534 al fine di mantenere la compatibilità con i sistemi che utilizzano kernel o filesystem meno recenti che possono contenere solo UID a 16 bit.
L'UID di 0 ha un ruolo speciale: è sempre l'account root (ovvero l'utente amministrativo onnipotente). Sebbene il nome utente possa essere modificato su questo account e sia possibile creare 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 privilegi di sistema, al contrario di un utente ordinario (cioè non privilegiato). Questo UID viene spesso utilizzato per le persone che accedono al sistema in remoto tramite FTP (protocollo di trasferimento file) o HTTP (protocollo di trasferimento ipertestuale).
Gli UID da 1 a 99 sono tradizionalmente riservati agli utenti di sistemi speciali (a volte chiamati pseudo-utenti), come wheel, daemon, lp, operator, news, mail, ecc. Questi utenti sono amministratori che non hanno bisogno di poteri di root totali, ma che svolgono alcune attività amministrative e quindi necessitano di più privilegi rispetto a quelli assegnati agli utenti ordinari.
Alcune distribuzioni Linux (ovvero versioni) iniziano UID per utenti non privilegiati a 100. Altri, come Red Hat, li iniziano a 500, e altri ancora, come Debian, li avviano a 1000. A causa delle differenze tra le distribuzioni, il manuale l'intervento può essere necessario se più distribuzioni sono utilizzate in una rete in un'organizzazione.
Inoltre, può essere conveniente riservare un blocco di UID per gli utenti locali, come da 1000 a 9999, e un altro blocco per gli utenti remoti (ad esempio, gli utenti in altri punti della rete), come da 10000 a 65534. L'importante è 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 è più conveniente cercare nei registri di sistema attività sospette degli utenti.
Contrariamente alla credenza popolare, non è necessario che ogni voce nel campo UID sia unica. Tuttavia, gli UID non univoci possono causare problemi di sicurezza e pertanto gli UID devono essere mantenuti univoci nell'intera organizzazione. Allo stesso modo, il riciclaggio degli UID degli ex utenti dovrebbe essere evitato il più a lungo possibile.
getentinvece di leggere direttamente /etc/passwde cercare UID_MIN/ UID_MAXinvece di codificare i valori:getent passwd | awk -F: "{if (\$3 >= $(awk '/^UID_MIN/ {print $2}' /etc/login.defs) && \$3 <= $(awk '/^UID_MAX/ {print $2}' /etc/login.defs)) print \$1}"
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
aggiungi 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 (impostazione predefinita directory / home / nome utente)
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 la directory home)
sudo deluser --remove-all-files
addusere useradd. Un aggiunge anche sudo-prefix al primo comando. Il file shadow della password può essere letto solo come root.
awk -F':' '$2 ~ "\$" {print $1}' /etc/shadowmi ha mostrato tutti gli utenti inclusi bin, demone, ecc. e ha lanciato questo avviso: sequenza escape \$' treated as plain $ 'Ho trovato questo post stackoverflow.com/a/25867768/847954 e ho aggiunto un altro backslash e ha funzionato bene:awk -F':' '$2 ~ "\\$" {print $1}' /etc/shadow
Ok, ecco un trucco che ti aiuterà a risolvere questo problema. Il terminale ha il completamento automatico se si digita l'utente e si preme due volte il tasto Tab che elencherà tutti i comandi esistenti con l'utente come i primi 4 caratteri.
user (tab tab)
mi dà le opzioni possibili useradd userdel usermod utenti 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 informazioni predefinite di un nuovo utente ... ...
per elencare gli utenti dovresti andare con quello che ha detto Mitch.
Spero che mi aiuti ad amare il completamento delle schede in bash mi salva dal ricordare le cose.
Per scoprire gli utenti che hanno directory home nella cartella / home sul computer, eseguire i comandi seguenti
cd /home
ls
È quindi possibile visualizzare gli utenti che dispongono dell'autorizzazione per accedere al server. Se vogliamo esaminare i file di tutti gli utenti, devi essere l'utente root.
/home. Mentre Ubuntu mette lì le directory degli utenti per impostazione predefinita, non è in alcun modo obbligatorio.
ls /homepuò contenere anche directory utenti di utenti eliminati.
sed 's/:.*//' /etc/passwd