Contact me sending an e-mail (antispam defense activated) |
Title: Gestione di utenti e gruppi Author: Sandro Tosi Last modified: 2004-12-12 (2004-10-20) (2004-06-09) Linux e` un sistema operativo multiutente. Prevede un account di amministrazione, root (per la gestione del sistema), alcuni account di sistema (per eseguire processi o demoni) e account utenti, utilizzati dagli utenti ``reali'' per accedere al sistema. La gestione di utenti e gruppi e` tipicamente un compito di root. Gestione degli utenti ===================== o Creare un utente # useradd I file da aggiungere nella home di un utente appena creato sono contenuti nella directory /etc/skel. Solitamente si tratta di file di configurazione. o Eliminare un utente # userdel E` possibile anche rimuovere i file nella home directory. o Cambiare le informazioni di un utente # usermod Cambia l'account di un utente. # chsh Cambia la shell di login di un utente. Una lista delle shell di login valide per il sistema e` contenuta in /etc/shells. # chfn Cambia le informazioni riportate da finger. o Cambiare la password # passwd Ogni utente puo` cambiare la propria password, inserendo la precedente. root puo` cambiare le password di tutti gli utenti, senza dover conoscere quella precedente. o Cambiare l'uid di un utente # usermod -u <new_uid> <user> I file che sono nella home directory dell'utente (anche quelli nelle sottodirectory di $HOME) verranno modificati per riflettere questa modifica, gli altri dovranno essere modificati manualmente; per fare questo possiamo eseguire: # find / -uid <old_uid> -print | xargs chown <new_uid> oppure # chown -R --from=<old_uid> <new_uid> / Conviene scegliere un uid maggiore di 1000, in quanto spesso quelli minori sono utilizzati da utenti di sistema. o Cambiare le impostazioni di default per i nuovi utenti # useradd -D <new_defaults> o Consentire un utente senza password Per definire un utente senza password, si definisce un utente nel modo consueto. Se le policy di sicurezza non consentono la definizione senza password se ne mette una qualsiasi e dopo la si cancella: # useradd testuser # passwd -d testuser annulla la password a questo punto l'utente ``testuser'' non ha password. Un tempo, quando veniva utilizzato solo shadow, era possibile modificare il file /etc/login.defs cercando la chiave NO_PASSWORD_CONSOLE (man login.defs per ulteriori dettagli). Ora, pero`, la fase di autenticazione viene gestita da PAM (man 7 pam) e non so se gestisca questa possibilita`. o L'utente root L'utente root e` l'unico che ha come caratteristiche uid=0 e gid=0. Se si vuole creare un utente con gli stessi permessi di root (cioe` tutti) si puo` fare con: # useradd -g root -u 0 -o newroot E` addirittura possibile cambiare il nome di root (magari facendolo diventare Administrator...): l'importante e` che esso mantenga uid=0, in quanto i permessi si basano sull'uid, non sul nome utente (sebbene alcuni applicativi potrebbero basarsi sul nome). o Creare un utente di sistema Un utente di sistema e` solitamente associato esclusivamente ad un processo: per esempio, esiste l'utente ``mysql'' associato al database MySQL. Per questo tipo di account, si vuole evitare che gli utenti possano usarli per effettuare login sulla macchina. Per fare questo, al posto della shell di login, si inserisca /bin/false. Al momento del login dell'utente non si attivera` nessuna shell e non si potra` avere accesso alla macchina. Gestione dei gruppi =================== o Creare un gruppo # groupadd Crea un nuovo gruppo. Se si vuole indicare un gid particolare e non quello che verrebbe dato di default, conviene utilizzare valori maggiori a 1000, in modo da non sovrapposti a quelli di sistema. o Eliminare un gruppo # groupdel Rimuove il gruppo indicato. o Modificare un gruppo # groupmod Consente di modificare gid e nome di un gruppo. o Modificare l'associazione (assegnare) un utente ad un gruppo Se l'utente e` in fase di creazione # useradd ... -g <gruppo_iniziale> -G <gruppo_1,...,gruppo_n> ... Se l'utente e` gia` presente nel sistema # usermod ... -g <gruppo_iniziale> -G <gruppo_1,...,gruppo_n> ... In teoria sarebbe possibile aggiungere un utente ad un gruppo modificando la riga del gruppo interessato nel file /etc/group aggiungendo il nome utente, eventualmente separato dagli altri da una virgola. Nel caso venga cambiato il gruppo iniziale, e` necessario modificare i file presenti nella home directory (e tutti quelli dell'utente in questione) per riflettere la modifica di gruppo iniziale: # chgrp -R <new_initial_group> /home/<user> L'utilizzo dei gruppi e` un modo molto efficace per gestire i permessi di utilizzo di file: se un file e` di un gruppo a cui appartiene anche l'utente corrente, allora si applicheranno i permessi per il gruppo (seconda tripletta) e non quelli per gli utenti generici (terza tripletta) solitamente piu` restrittivi. Per esempio, su un sistema Debian, abbiamo il gruppo disk, proprietario dei device di accesso ai dischi, come per la scheda audio abbiamo il gruppo audio, e cosi` via per gruppi come floppy e cdrom. Fare in modo che l'utente appartenga a questi gruppi, consente di poter utilizzare quei device. o Cambiare l'associazione di un utente ad un gruppo Se si modifica l'appartenenza di un utente a dei gruppi, sia che esso vi sia aggiunto che vi sia tolto, e se si e` loggati con quell'utente, e` necessario fare logout e di nuovo login perche` le modifiche siano visibili o Impostare una password ad un gruppo Anche per un gruppo e` possibile impostare una password: # passwd -g <group> Sinceramente, non so a cosa serva... :) |