Home Page

Tips page
c
cellulari
debian
egittologia
emacs
emacs-latex
hardware
html
inglese
java
latex
linux

*Alcuni comandi utili utilizzando find
*ARP e MAC address
*Ascoltare un CD audio
*Attivare il NumLock (BlocNum)
*Attivare i tasti i tasti Magic SysRq
*AWK, use an environment variable inside a script
*Bash e Argument list too long
*BogoMIPS
*Cancellare file e non recuperare spazio
*Capacita` dell'hard disk
*Come cambiare i font delle applicazioni con librerie GTK
*Come cambiare l'hostname
*Come tentare di recuperare file, filesystem e partizioni
*Compilare in parallelo
*Condividere una partizione
*Configure proxy for shells
*Continuous disk access
*Controllare la salute di hard disk e filesystem
*Convertire ext2 in ext3 (e viceversa)
*Convertire un file di testo dalla codifica DOS a quella UNIX
*Cosa fare quando si perde la password di root
*Cosa significa l'errore ``TCP
*Creare un boot floppy
*Creare un file temporaneo
*Deframmentazione di un filesystem
*Delete last chars from a string
*Determinare lo spazio libero sul disco
*Eliminare il beep
*Emettere un beep da script
*Enable PPP connection on boot
*Exclude a directory with rsync
*Execute telnet from a script
*Gestione dei file di log
*Gestione dei file .iso
*Gestione della data/ora
*Gestione di utenti e gruppi
*Hash md5 di una stringa
*Identificare la distribuzione installata
*I file ps e pdf
*Il file /etc/fstab
*Il file /etc/issue[.net] e /etc/motd
*Il filesystem SysFs
*I link soft ed hard
*Il path delle applicazioni
*Il sistema tutto in maiuscolo
*I moduli del kernel
*Impostare piu` IP per una scheda di rete
*Introduzione a LVM
*Inviare messaggi agli altri utenti
*I permessi della directory root, /
*La gerarchia del filesystem di Linux
*La memoria Ram sotto Linux
*La memoria swap
*Limitare la possibilita` di diventare root
*Limitazioni alla dimensione del file
*Log dei login utente
*Modificare il comportamento di ctrl+alt+canc
*Modificare le variabili della parent shell
*Montare o rimontare un filesystem come read-only
*More columns in a shell output
*Negare il login durante la manutenzione del sistema
*NoHUP
*Obtain the exact process start time
*Ottenere uno snapshot dello schermo
*Partizionamento di un sistema Linux
*Perche' si usa ./ per avviare alcuni eseguibili
*Permanent PPP connection
*PID of a process
*Programmare l'esecuzione dei programmi
*Quale processo utilizza un certo file o porta
*Quali vantaggi si hanno dalla ricompilazione
*Remove from find results
*Ricreare velocemente /tmp al boot
*Ridirezione dell'output
*Rimappare la tastiera
*Ripristinare i caratteri sballati in console
*Riscrivere l'MBR
*Salvarsi da un ``rm'' di troppo...
*Save MBR
*Scrivere in modo sincrono su filesystem
*Scrivere nel log di sistema di Linux
*Separazione dei comandi nella shell
*Separazione delle parole nella shell
*Share the internet connection
*Shell configuration files
*Single quote character escape with sed
*Spostare una directory in un'altra partizione
*Stimare il carico di lavoro della macchina
*Undelete di un file
*Usare le pendrive USB sotto Linux
*Usare partizioni primarie o estese
*Use md5sum to verify saved files
*Use ssh and scp without password
*Utilizzare hdparm per controllare gli hard disk
*Verificare un file video
*What is a zombie process
*What is the file System.map?
*What is the shebang? (Shell scripts)
*What shared libraries a program uses
*Yesterday date

matlab
misc
mysql
network
octave
programming
python
security
sed
tech
webapps
windows

University Page

Programming

Debian & Linux

Some works

About me

Del.icio.us Bookmarks

BOINC Combined Statistics

Site Statistics

Contact me sending an e-mail (antispam defense activated)

debian

hacker emblem

blogger

GeoURL

View Sandro Tosi's profile on LinkedIn

This is my Google PageRank

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... :)