Quali sono / sono i programmi CLI standard per gestire utenti e gruppi?


8

Fondamentalmente sto chiedendo informazioni sulla gestione degli utenti dalla riga di comando (ad esempio su un sistema in cui non sono disponibili strumenti grafici). In passato ho usato diversi programmi per aggiungere o Elimina utenti e gruppi o per modificare i loro attributi: adduser, useradd, usermod, gpasswd, e forse altri che ho dimenticato. Ho anche sentito un paio di volte che alcuni di questi programmi sono di basso livello e dovrebbero essere evitati per uso generale, ma non ricordo mai quale. Quindi vorrei ottenere una risposta definitiva per quali programmi sono quelli consigliati per almeno le seguenti attività:

  • Crea un nuovo utente
  • Aggiungi un utente a un gruppo
  • Rimuovi un utente da un gruppo
  • Cambia il gruppo principale di un utente
  • Modifica la shell di accesso o la home directory di un utente
  • Elimina un utente

Sto cercando strumenti standard che posso aspettarmi di essere disponibili praticamente su qualsiasi sistema Linux (di qualsiasi distribuzione).


1
anche groupmod. Non ho intenzione di farne una risposta .... ma il modo più standard è probabilmente quello di utilizzare il tuo editor di testo ... ricorda che i file interessati sono solo delimitati da testo.
xenoterracide,

È interessante notare che, prima di porre questa domanda, non avevo mai visto tanto una menzione della modifica diretta dei file. (In qualche modo ho avuto l'impressione che /etc/passwdfosse solo una parte di un sistema complesso)
David Z,

Risposte:


9

Purtroppo, nessuna di queste operazioni è mai stata standardizzata.

Alcuni sistemi operativi offrono questa funzionalità come parte del sistema operativo, come Linux, ma anche se il tuo sistema Linux li include, nel tempo e attraverso le distribuzioni Linux gli strumenti e i loro nomi sono cambiati, quindi non puoi davvero dipendere da un set standard di strumenti da fare quei compiti.

È necessario disporre di un set di strumenti per sistema operativo.


Non ho mai avuto il cambio di nome ... ma ho avuto il cambio di switch. Ricordo di aver scoperto una volta che un Linux non aveva gpasswd -a.
xenoterracide,

1
Se la memoria serve - RedHat una volta usava 'adduser' invece di 'useradd', e si comportava diversamente (penso che useradd fosse più Debianish). Successivamente hanno trasformato "adduser" in un link simbolico a "useradd". Vedi alcuni vecchi riferimenti su redhat.com/docs/manuals/linux/RHL-5.2-Manual/install-guide/…
Stefan Lasiewski,

7

Su Debian (e derivati) sistemi, addusere delusersono involucri di livello superiore vicino useradde funzionalità correlate. La creazione dell'utente di copertura, l'aggiunta e la sottrazione di appartenenza al gruppo e la cancellazione dell'utente. I comandi corrispondenti dalla creazione / eliminazione di gruppi sono, abbastanza ragionevolmente, addgroupe delgroup. usermodsembra coprire il caso d'uso rimanente che hai nominato.


6

Citi Linux nell'ultima parte della tua domanda, ma poiché il titolo è generico risponderò per FreeBSD.

FreeBSD ha comandi simili a Linux ma sono comandi passati pwall'utility:

pw useradd [user|uid] ...
pw usermod [user|uid] ...

e così via. Tuttavia, è possibile analizzare il comando in due parti: usere mod; un sostantivo e un verbo. Inoltre, si possono anche usare groupe del:

pw groupdel [group|gid] ...

per, ad esempio, eliminare un gruppo. Quindi, ecco cosa penso sia davvero interessante: l'ordine non ha importanza, né la spaziatura! Ciò significa che puoi ricordare cosa chiamare pensando a ciò che vuoi fare (comunque in inglese):

pw del user [user|uid] ...
pw mod group [group|gid] ...
pw show user [user|uid] ...
pw next user [user|uid] ...

e altro! L' pwutilità consente inoltre di bloccare e sbloccare gli account:

pw lock [user|uid] ...
pw unlock [user|uid] ...

Le opzioni e tutti i parametri che passi sono tutti standardizzati (anche se non sempre si applicano ai comandi di chiamata) quindi la memorizzazione è ridotta al minimo. Tutto sommato un bel modo di fare le cose.

Nota: le ellissi negli esempi precedenti rappresentano opzioni e parametri passati a pwutenti o gruppi non aggiuntivi.


Era una domanda Linux ma le informazioni sono comunque apprezzate. Sarebbe bello se Linux avesse qualcosa del genere.
David Z,

Nome e verbo, intendi.
Warren Young,

D'oh! Aggiustato.
gvkv,

2

Solo per completezza, nella parte bassa dello spettro menzionerei vipw (8) e vigr (8), appena sopra "vi / etc / passwd" e "cat> / etc / passwd" ma proprio sotto "useradd ". Oh, ed esistono nella maggior parte delle varianti Unix.


2

Tutti questi strumenti sono stati creati per modificare i file di testo. Se vuoi sapere come gestire utenti e gruppi su sistemi, dovresti familiarizzare con questi file di testo sottostanti. Fortunatamente per te, ce ne sono solo due, /etc/passwde /etc/group. Ci sono anche file /etc/shadowe /etc/gshadowfile complementari per l'ombreggiatura passwd e group rispettivamente.


4
... e / etc / shadow, dal momento che la maggior parte dei sistemi graccherà se sono incompatibile con / etc / passwd
codehead

1

In molte situazioni, sapere come modificare "/ etc / passwd" è ancora utile.


1
Sapere come leggere / etc / passwd è utile, ma modificarlo direttamente è una cattiva pratica. Su alcuni * ix che ho usato (SysV moderno, OS X ...) questi file non sono il luogo principale in cui sono memorizzati i dati dell'utente e del gruppo. Sono copie shadow per la compatibilità o sono fonti primarie ma esiste un database o un indice che deve essere aggiornato ogni volta che cambiano. Su quei sistemi, se non aggiorni i file tramite gli strumenti ufficiali, le modifiche non avranno immediatamente effetto, se mai lo faranno.
Warren Young,


1

Se si utilizza un back-end diverso dal back-end predefinito della macchina locale - OpenLDAP è il più comune - allora cpu (utilità di modifica password) potrebbe essere il comando che si sta cercando. Può essere eseguito su macchine diverse dal master LDAP se configurato correttamente e la sua sintassi è per lo più la stessa di useraddetc con un prefisso di cpu. Quindi per aggiungermi potrei fare

$ sudo cpu useradd hamish

Vedi la pagina man della cpu per maggiori dettagli.


Interessante, ma una risposta che si applica solo su una macchina che ottiene le informazioni dell'utente da LDAP mi è molto limitata.
David Z,

0

Se la tua domanda era limitata a

qualsiasi sistema Linux (di qualsiasi distribuzione)

ma tutti i sistemi hanno accesso alla rete a un singolo server. Puoi usare qualcosa come NIS o YP. Quindi questa risposta è limitata agli amministratori all'interno di una singola organizzazione.

Hai ancora il problema in cui quasi ogni distribuzione ha modi leggermente diversi di configurare YP, ma la configurazione avviene solo una volta. Inoltre, questo tipo di rete non è banale.

All'interno di un singolo sito / rete guadagnerai molto facendo questo. In combinazione con automount, il mio preferito è essere in grado di eseguire SSH su qualsiasi macchina * nix e di avere a disposizione tutti i miei file e strumenti domestici.

Al punto, la distribuzione scelta per il master è il sistema utilizzato per la gestione degli utenti. Avrai quindi un unico set di strumenti / documentazione per gestire utenti e gruppi.

È anche possibile usare qualcosa come LDAP e strumenti di samba sul master. L'uso di samba mi permette anche di avere i miei file home disponibili su macchine Windows.


Grazie, ma sto cercando una risposta valida anche per i sistemi non collegati in rete.
David Z,

0

La cosa più vicina ad uno standard che otterrete è vi /etc/passwd, vi /etc/shadowe vi /etc/groups. (Gli eretici possono sostituire emacs.) Da allora tutto ciò che ho trovato funzionerà solo su alcuni sistemi.

Seriamente, scopri quali strumenti ha il tuo sistema operativo e usali. Non aspettarti che funzionino allo stesso modo su tutti i sistemi. Sarebbe bello se fossero standardizzati, ma non lo sono.


L'uso di un editor di testo per modificare i file di configurazione che gli strumenti possono e dovrebbero modificare per te non è uno standard. Non utilizzare mai un editor di testo per modificare un file di configurazione, quando il sistema operativo o l'applicazione forniscono un'utilità per farlo. Ciò è particolarmente vero per /etc/passwd, /etc/shadow, /etc/group, e /etc/gshadow. Ecco a cosa servono gli strumenti. Gli esseri umani sono inclini a errori, mentre gli strumenti sono stati testati e (si spera) privi di bug.
Aaron Toponce,

Non chiamare mai un editore /etc/passwde gli amici direttamente. Utilizzare vipwe vigr, che: blocca il file dall'edizione concorrente; esegui il tuo editor preferito ( $VISUAL); non modificare il file se si commette un errore di sintassi; su alcuni sistemi (es. FreeBSD) rigenerano anche altri file che devono essere mantenuti sincronizzati.
Gilles 'SO- smetti di essere malvagio' il
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.