478
1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche Università di Modena e Reggio Emilia http://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

  • Upload
    others

  • View
    5

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

1

Lezione 7Gestione degli utentiSistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016Dipartimento di Scienze Fisiche, Informatiche e MatematicheUniversità di Modena e Reggio Emiliahttp://weblab.ing.unimo.it/people/andreolini/didattica/sistemi-operativi

Page 2: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

2

Quote of the day(https://xkcd.com/149/)

Page 3: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

3

INTRODUZIONE

Page 4: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

4

Lo scenario(Sistema multi-utente)

Molteplicità di utenti. Più utenti possono usare i servizi messi a disposizione dall'host nello stesso istante.

Principio del minimo privilegio. Ispira le decisioni del SO nelle assegnazioni delle risorse.

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Utente 1 Utente 2 Utente N

Host

Page 5: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

5

Problema 1/4(Identificare l'utente per chi è veramente)

Un utente legittimo si identifica onestamente presso il SO, senza spacciarsi per qualcun altro.Un utente malizioso potrebbe invece presentarsi al SO nelle vesti di un altro utente e fare danni, addossando la colpa ad un altro.Il SO è in grado di impedire la “sostituzione di persona”?

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Utente 1 Utente 2 Utente N

HostUtente 1

X

Page 6: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

6

Problema 2/4(Limitare a specifici utenti l'accesso ad una risorsa hw/sw)

Il SO espone risorse hw/sw agli utenti perché possano fruirne.Tuttavia, non tutte le risorse hw/sw sono fruibili a tutti gli utenti.

Esempio: file delle password(è modificabile solo da unamministratore).

Il SO è in grado di applicare restrizioni di accesso alle risorse?

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Utente 1 Utente 2 Utente N

Host

X

Admin Guest

File password

Page 7: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

7

Problema 3/4(Eseguire operazioni con privilegi specifici)

Alcune operazioni critiche sono impedite agli utenti normali.

Accensione periferica.Formattazione disco.Modifica password.

Tuttavia, un utente vorrebbe poter eseguire tali operazioni (pena un'esperienza d'uso fortemente degradata).Può l'utente eseguire comandi con privilegi specifici, in maniera controllata?

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Utente 1 Utente 2 Utente N

Host

File password

User

Page 8: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

8

Problema 4/4(Fornire strumenti per la gestione degli utenti ed il controllo degli accessi)

Il SO mette a disposizione gli strumenti per la gestione degli utenti?Il SO mette a disposizione gli strumenti per il controllo degli accessi alle risorse?Il SO mette a disposizione gli strumenti per la limitazione del consumo di risorse da parte di un utente?

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Utente 1 Utente 2 Utente N

Host

File password

Student 1

File tesiX

Student 2Hacker

X

Forkbomb

Page 9: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

9

Page 10: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

10

Autenticazione(Risposta al Problema 1/4)

I SO moderni forniscono astrazioni software per l'autenticazione.Autenticazione (login): è la procedura con cui il SO conferma la veridicità di una informazione data per vera da una entità.L'autenticazione si svolge in due operazioni.

Identificazione. Nel momento in cui una entità sipresenta, Il SO prova ad associarla ad un nome dilogin a lui noto.Verifica delle credenziali di accesso. Il SO chiedeall'utente una informazione che solo lui può dare.

Page 11: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

11

Fattori di autenticazione(Le tipologie di informazioni fornite dall'utente)

Le informazioni fornite da un utente per verificare la propria identità prendono il nome di fattori di autenticazione (authentication factor).I fattori di autenticazione si riferiscono ad informazioni

che solo l'utente è supposto conoscere (password);che solo l'utente è supposto avere (dati memorizzatiin un badge personale);che solo l'utente è supposto saper fare o forniregeneticamente (firma, impronta digitale).

Page 12: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

12

Una avvertenza(Non si può spiegare tutto in 36 lezioni/72 ore)

In questo corso introduttivo si considererà esclusivamente la password come fattore di autenticazione. In realtà, ne esistono altri:

chiave pubblica GPG.codice numerico OTP a 6 cifre (One Time Pad).impronta del pollice.

I sistemi moderni possono prevedere una forma di autenticazione a fattori multipli (solitamente, due).

Google, Facebook: two factor authentication converifica delle credenziali tramite password ed un codice di6 lettere inviato al proprio smartphone.

Page 13: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

13

L'astrazione software “utente”(Rappresenta un utente del sistema, umano o non)

Il SO fornisce una astrazione software dal nome utente (user). L'utente rappresenta una entità qualunque (umana o non) abilitata ad usufruire dei servizi dell'host.

Non tutti i servizi.Solo quelli per cui è autorizzata.

Page 14: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

14

Informazioni associate all'utente(Le più importanti)

Identificatore utente (user id): un numero intero non negativo univoco per un utente. È usato dal nucleo del SO per distinguere utenti diversi.Nome di login (username, login name): stringa alfanumerica di lunghezza non nulla. È una rappresentazione ad alto livello dell'identificatore utente (per l'utente umano).Password: una sequenza alfanumerica per la verifica delle credenziali.Shell di login: il percorso dell'interprete dei comandi.Home directory: la directory in cui si trova l'utente subito dopo aver fatto il login.

Page 15: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

15

Account utente(Account = insieme di informazioni riguardanti l'utente)

Un account utente (user account, account) è l'insieme di tutte le informazioni riguardanti un dato utente.

Nome di login.Password.Home directory.Shell di login.…

Page 16: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

16

Classificazione degli utenti: normali(Utente normale identificatore utente in [1000, 2→ 64-1))

Alcuni utenti rappresentano umani.Identificatore utente: nell'intervallo [1000, 264-1].Nome utente: una stringa alfanumerica che ricorda unnome di persona.

Questi utenti possono eseguire una shell interattiva al loro login.

/bin/bash (ma può essere cambiata).Questi utenti hanno una home directory.

/home/username (può essere cambiata).Questi utenti non possono configurare o alterare direttamente le risorse hw/sw.

Devono elevare i loro privilegi in qualche modo.

Page 17: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

17

Page 18: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

18

Classificazione degli utenti: superutente(Superutente identificatore utente = 0)→

Nei sistemi UNIX (GNU/Linux non fa eccezione), uno degli utenti può fare tutto.

L'utente amministratore (o superutente).Identificatore utente: 0.Nome utente: root.

L'utente amministratore può eseguire una shell interattiva al login.

Tipicamente, /bin/bash (ma può essere cambiata).L'utente amministratore ha una home directory.

/root (può essere cambiata).L'utente root può configurare o alterare direttamente le risorse hw/sw.

Dischi, schede di rete, file delle password…

Page 19: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

19

Classificazione degli utenti: di sistema(Superutente identificatore utente = 0)→

Infine, alcuni sistemi non rappresentano umani, bensì impersonificazioni di servizi in esecuzione.

Identificatore utente: >0 (tipicamente, anche < 1000).Nome utente: una stringa alfanumerica che ricorda unnome di servizio.

Tali utenti non usano mai una shell interattiva al login, che viene pertanto disabilitata.Tali utenti possono non avere una home directory.Tali utenti possono accedere a risorse specifiche dei servizi (per il resto, non possono fare altro).

File di configurazione, file di log.

Page 20: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

20

Il file /etc/passwd(Per l'identificazione degli utenti)

Il file /etc/passwd contiene l'elenco degli utenti noti al SO.

È una base di dati primordiale.Elenco di record (uno per riga).I campi di un record sono separati dal carattere :.

Questo file è:leggibile da tutti gli utenti.Modificabile solo dall'utente root.

Page 21: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

21

I campi di /etc/passwd(Informazioni associate agli utenti; man 5 passwd per tutti i dettagli)

Nome di login.Password cifrata (nelle distribuzioni GNU/Linux attuali è conservata in un altro file, per motivi di sicurezza).Identificatore utente.Identificatore del gruppo di lavoro primario (usato per il controllo degli accessi).Nome e cognome veri.Home directory.Interprete dei comandi usato.

Page 22: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

22

Il file /etc/shadow(Per la verifica delle credenziali dell'utente con password)

Il file /etc/shadow contiene informazioni sulle password associate a ciascun nome di login.

È una base di dati primordiale.Elenco di record (uno per riga).I campi di un record sono separati dal carattere :.

Questo file è leggibile e modificabile dal solo utente root.

Notate la separazione in un file separato (e benprotetto) delle informazioni riguardanti le password.

→ Il principio del minimo privilegio è in azione!

Page 23: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

23

I campi di /etc/shadow(Informazioni associate alla password utente; man 5 shadow per i dettagli)

Nome di login.Password cifrata.Data ultimo cambio password.Età minima e massima della password.Periodo di avviso password.Periodo di inattività password.Data scadenza account.

Page 24: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

24

Una considerazione di efficienza(È doveroso ribadirla)

Per motivi legati all'efficienza, il nucleo del SO mantiene nelle sue strutture di controllo una sola informazione fra tutte quelle ora viste: l'identificatore dell'utente.

Il nucleo preferisce lavorare con numeri interial posto delle stringhe (è più efficiente).Il nucleo preferisce lasciare alle applicazioni di sistemala conduzione della procedura di autenticazione ededicarsi ad altre faccende più urgenti (gestione I/O,processi, memoria, …).

Page 25: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

25

Il file /var/log/wtmp(Contiene un log dei tentativi di login effettuati)

Il file /var/log/wtmp contiene un log di tutti i login effettuati con successo.Il file è in formato binario e non è leggibile in maniera diretta.

È necessario usare strumenti opportuni.

Page 26: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

26

Cosa succede al login?(Uno schema semplificato che tiene conto di un solo fattore di autenticazione)

Che cosa succede esattamente quando un utente prova ad autenticarsi presso un terminale di tipo testuale?

Dispositivo /dev/ttyX.Accessibile tramite la sequenzadi tasti Ctrl-Alt-Fx.

L'autenticazione grafica funziona in maniera analoga.

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

ApplicazioniHost

Page 27: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

27

Cosa succede al login?(L'utente “Mauro Andreolini” fornisce il nome di login)

L'utente “Mauro Andreolini” digita il proprio nome di login (la stringa andreoli).La stringa andreoli viene letta dallo STDIN del processo che implementa la procedura di login con password.

Il processo /bin/login.

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Mauro Andreolini

Host

/bin/login

andreoli

STDIN

Page 28: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

28

Cosa succede al login?(/bin/login chiede al SO le informazioni di andreoli in /etc/passwd)

Il processo /bin/login chiede al SO il record del file /etc/passwd relativo all'utente andreoli./bin/login ottiene una struttura dati rappresentante la riga di /etc/passwd richiesta.Il SO si accorge che il campo password è vuoto.

→ Occorre leggere /etc/shadow.

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Mauro Andreolini

Host

Gestoreutenti

andreoli andreoli:x:…

/bin/login

Page 29: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

29

Cosa succede al login?(L'utente con nome di login andreoli fornisce la password)

L'utente il cui nome di login è andreoli digita il proprio nome di login (la stringa andreoli).La stringa andreoli viene letta dallo STDIN del processo che implementa la procedura di login con password.

Il processo /bin/login.PS: la password del vero utente andreoli docente non è voodie5m…

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Mauro Andreolini

Host voodie5m

Gestoreutenti

STDIN/bin/login

Page 30: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

30

Don't even think about it, say no go!(Bruteforcing your lovely teacher's account? Guys, please…)

Page 31: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

31

Cosa succede al login?(/bin/login chiede al SO le informazioni di andreoli in /etc/shadow)

Il processo /bin/login chiede al SO il record del file /etc/shadow relativo all'utente andreoli./bin/login ottiene una struttura dati rappresentante la riga di /etc/shadow richiesta.

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Mauro Andreolini

Host

Gestoreutenti

andreoli andreoli:pwd:…

/bin/login

Page 32: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

32

Cosa succede al login?(/bin/login verifica che la password immessa sia corretta)

Il processo /bin/login verifica che la password immessa coincida con il valore contenuto nel record di /etc/shadow.Se coincide, /bin/login genera un processo figlio con l'interprete utente (/bin/bash).Se non coincide, /bin/login esce con uno stato di errore e viene fatto ripartire.

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Mauro Andreolini

Host

Gestoreutenti

voodie5m =?= pwd di andreoli

/bin/login

Page 33: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

33

Cosa succede al login?(/bin/login verifica che la password immessa sia corretta)

In caso di login riuscito, il SO aggiorna il log dei login (il file /var/log/wtmp) tramite una funzione di libreria.

SistemaOperativo

Hardware

CPU Disco

Memoria PortaUSB

Bus

Applicazioni

Mauro Andreolini

Host

Gestoreutenti

/bin/login

/bin/bash

/var/log/wtmp

Page 34: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

34

Autorizzazione(Risposta al Problema 2/4)

I SO moderni forniscono astrazioni software per l'autorizzazione.Autorizzazione (access control): è la procedura con cui il SO controlla se un processo lanciato da un utente ha i privilegi di accesso sufficienti per accedere ad una risorsa hw/sw.

Page 35: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

35

Le astrazioni principali in gioco(Nella procedura di autorizzazione)

Le astrazioni principali in gioco nella procedura di autorizzazione sono le seguenti.Gruppo di lavoro. Specifica un insieme di utenti con privilegi di accesso identici su una risorsa.Attributi di un file. Specificano i privilegi minimi di accesso alla risorsa che gli utenti devono fornire per poter usufruire della stessa.Credenziali di processo.Specificano le credenziali con cui il processo si presenta ad accedere alla risorsa.

Page 36: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

36

L'astrazione software “gruppo di lavoro”(Rappresenta un insieme di utenti con privilegi identici su un file)

Il SO fornisce una astrazione software dal nome gruppo (group). Un gruppo rappresenta un insieme di utenti che condividono specifici privilegi di accesso verso file e directory.Il gruppo è una delle tante informazioni di un account utente.

Utente Gruppo

Utente

Utente…

… Filespeciale

/dev/sda

Page 37: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

37

Informazioni associate al gruppo(Le più importanti)

Identificatore gruppo (group id): un numero intero non negativo univoco per un gruppo. È usato dal nucleo del SO per distinguere gruppi diversi.Nome del gruppo (groupname): stringa alfanumerica di lunghezza non nulla. È una rappresentazione ad alto livello dell'identificatore del gruppo (per l'utente umano).Password: una sequenza alfanumerica per la verifica delle credenziali.Lista utenti: un elenco dei nomi di login appartenenti al gruppo.

Page 38: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

38

Una password per il gruppo?(Eh?)

Anche i gruppi hanno password?Ebbene, sì.È possibile aggiungersi ad un nuovo gruppo durante una sessione di lavoro.È possibile configurare il SO in modo tale da effettuare una autenticazione con password a tal scopo.Nella maggior parte dei casi, la password usata è quella nulla.

Page 39: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

39

Il file /etc/group(Per l'identificazione dei gruppi)

Il file /etc/group contiene l'elenco dei gruppi di utenti noti al SO.

È una base di dati primordiale.Elenco di record (uno per riga).I campi di un record sono separati dal carattere :.

Questo file è:leggibile da tutti gli utenti.Modificabile solo dall'utente root.

Page 40: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

40

I campi di /etc/group(Informazioni associate ai gruppi; man 5 group per tutti i dettagli)

Nome del gruppo.Password cifrata (nelle distribuzioni GNU/Linux attuali è conservata in un altro file, per motivi di sicurezza).Identificatore gruppo.Lista degli utenti appartenenti al gruppo.

Page 41: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

41

Il file /etc/gshadow(Per la verifica delle credenziali del gruppo con password)

Il file /etc/gshadow contiene informazioni sulle password associate a ciascun gruppo.

È una base di dati primordiale.Elenco di record (uno per riga).I campi di un record sono separati dal carattere :.

Questo file è leggibile e modificabile dal solo utente root.

Notate la separazione in un file separato (e benprotetto) delle informazioni riguardanti le password.

→ Il principio del minimo privilegio è in azione!

Page 42: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

42

I campi di /etc/gshadow(Informazioni associate al gruppo utente; man 5 gshadow per i dettagli)

Nome del gruppo.Password cifrata.Utenti amministratori del gruppo.Utenti membri del gruppo.

Page 43: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

43

“Shadow”? “Ombra”? Eh?(Passwords get invisible, just like a shadow in the dark)

Page 44: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

44

Accesso alle risorse tramite file(In UNIX, everything is a file)

In GNU/Linux, le risorse hw/sw sono accessibili mediante file.

“In UNIX, everything is a file”.Periferiche fisiche: accessibili tramite file speciali nella directory /dev.Dispositivi virtuali: accessibili tramite file speciali nella directory /dev.Archivi di dati: accessibili tramite file regolari nel file system.

Ken Thompson(1943-)Autore del SO UNIXCoautore del CInventore di UTF8

Page 45: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

45

Gruppo primario, gruppi secondari(La differenza è spiegata nella slide successiva)

Un utente può far parte di uno o più gruppi. → L'utente ha diversi privilegi che può far valere

quando accede alle risorse.Ad ogni istante, uno dei gruppi di lavoro può essere battezzato come primario. Gli altri gruppi sono detti secondari.

Utente Gruppo

Gruppo

Gruppoprimario

/dev/sda

/dev/sr0

/home/andreoli/*

Page 46: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

46

Gli attributi di un file(Utente creatore, gruppo di lavoro primario, permessi)

Ciascun file espone agli utenti tre attributi per il controllo degli accessi.Utente creatore: nome di login dell'utente che ha creato fisicamente il file.Gruppo dell'utente creatore: il nome del gruppo primario di lavoro dell'utente nell'istante di creazione del file.

→ Il gruppo primario di un utente imposta il gruppodell'utente creatore in un file.

Insieme di permessi: una rappresentazione sintetica dei privilegi di accesso al file.

Page 47: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

47

Privilegi di accesso(Tre insiemi di utenti; tre azioni possibili su file)

I privilegi di accesso ad un file/directory sono specificati per tre insiemi di utenti.

L'utente creatore del file.Gli utenti appartenenti al gruppo dell'utente creatore.Tutti gli altri utenti.

I privilegi di accesso ad un file/directory specificano le operazioni possibili fra le seguenti.

Lettura.Scrittura.Esecuzione (file) o accesso (directory).

Page 48: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

48

Rappresentazione dei permessi(Nove caratteri per i tre insiemi di utenti)

La rappresentazione dei permessi fornita dalle applicazioni di sistema agli utenti è una stringa di 9 caratteri.

I primi 3 caratteri indicano le azioni permesse perl'utente creatore del file.I secondi 3 caratteri indicano le azioni permesse pergli utenti del gruppo primario dell'utente creatore.Gli ultimi 3 caratteri indicano le azione permesse pertutti gli altri utenti.

---------Creatore Gruppo Altri

Page 49: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

49

Rappresentazione dei permessi(I bit R, W, X specificano lettura, scrittura, esecuzione/accesso)

All'interno di ogni insieme:il primo carattere specifica se è abilitato l'accesso inlettura (r) oppure no (-).il primo carattere specifica se è abilitato l'accesso inscrittura (w) oppure no (-).il primo carattere specifica se è abilitata l'esecuzioneo l'accesso (x) oppure no (-).

---------Creatore Gruppo Altri

Page 50: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

50

Rappresentazione dei permessi(Esempio di permessi per l'utente creatore)

Ad esempio, rwx per l'utente creatore indica:abilitazione accesso in lettura (r).abilitazione accesso in scrittura (w).abilitazione all'esecuzione/accesso (x).

→ L'utente creatore può fare tutto!

rwx------Creatore Gruppo Altri

Page 51: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

51

Rappresentazione dei permessi(Esempio di permessi per l'utente creatore)

Ad esempio, r-x per il gruppo dell'utente creatore indica:

abilitazione accesso in lettura (r).disabilitazione accesso in scrittura (-).abilitazione all'esecuzione/accesso (x).

→ Gli utenti del gruppo creatore possono leggere ed eseguire/accedere, ma non scrivere!

rwxr-x---Creatore Gruppo Altri

Page 52: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

52

Rappresentazione dei permessi(Esempio di permessi per l'utente creatore)

Ad esempio, r-x per tutti gli altri utenti indica:abilitazione accesso in lettura (r).disabilitazione accesso in scrittura (-).abilitazione all'esecuzione/accesso (x).

→ Tutti gli altri utenti del sistema possono leggere ed eseguire/accedere, ma non scrivere!

rwxr-xr-xCreatore Gruppo Altri

Page 53: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

53

Credenziali di un processo(Con quali privilegi si presenta un processo quando chiede l'accesso?)

Finora sono state introdotte strutture dati di natura “statica” (non mutano da sole).

credenziali di un utente.gruppi di un utente.attributi di un file.

Anche i processi hanno credenziali, che sono di natura “dinamica” (il processo le acquisisce nel momento in cui parte):

identificatore utente.identificatore gruppo primario.identificatori gruppi secondari.

Page 54: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

54

Identificatore utente di un processo(Quale utente ha lanciato il processo?)

L'identificatore utente (user identifier) di un processo è l'identificatore numerico dell'utente che ha lanciato un processo.Tale campo è presente nel descrittore di processo.

L'identificatore utente del processo viene confrontato con l'identificatore utente del creatore del file. Se corrispondono, i permessi accordati al processo sono quelli della prima terna.

Page 55: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

55

Identificatore gruppo primario(Qual è il gruppo di lavoro primario dell'utente che ha lanciato il processo?)

L'identificatore del gruppo primario (primary group identifier) è l'identificatore numerico del gruppo primario di lavoro dell'utente nel momento che ha lanciato un processo.Tale campo è presente nel descrittore di processo.

L'identificatore di gruppo del processo viene confrontato con l'identificatore di gruppo del creatore del file. Se corrispondono, i permessi accordati al processo sono quelli della seconda terna.

Page 56: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

56

Identificatore gruppi secondari(Quali sono i gruppi di lavoro secondari dell'utente che ha lanciato il processo?)

Gli identificatori dei gruppi secondari (secondary group identifiers) sono gli identificatori numerici dei gruppo secondari di lavoro dell'utente nel momento che ha lanciato un processo.Tale campo è presente nel descrittore di processo.

Gli identificatori di gruppo del processo sono confrontati uno per uno con l'identificatore di gruppo del creatore del file. Se uno di essi corrisponde, i permessi accordati al processo sono quelli della seconda terna.

Page 57: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

57

Domanda(Che succede se gli identificatori non corrispondono?)

Che cosa succede se:l'identificatore utente di un processo non corrispondeall'identificatore utente del creatore del fileEl'identificatore gruppo di un processo noncorrisponde all'identificatore gruppo primario delcreatore del file

?

→ I permessi accordati al processo sono quelli della terza terna.

Page 58: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

58

Domanda(Che succede se gli identificatori non corrispondono?)

Che cosa succede se:l'identificatore utente di un processo non corrispondeall'identificatore utente del creatore del fileEl'identificatore di gruppo di un processo noncorrisponde all'identificatore gruppo primario delcreatore del file

?

→ I permessi accordati al processo sono quelli della terza terna.

Page 59: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

59

“Guardi, guardi, lo vede il dito?”(“Lo vede che stuzzica, e prematura anche?”)

Page 60: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

60

Credenziali di accesso e percorso file(Un piccolo dettaglio da ricordare)

La procedura di controllo degli accessi va applicata ad ogni componente del percorso assoluto di un file.Se, ad esempio, un file ha percorso assoluto:

/dev/sdala procedura di controllo degli accessi va applicata ai seguenti percorsi:

//dev/dev/sda

Page 61: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

61

Esempio di accesso ad una risorsa(L'utente andreoli vuole aprire il file /dev/sda e leggere i blocchi del disco)

Supponiate che l'utente andreoli voglia leggere il file speciale di nome /dev/sda, per esempio lanciando il comando seguente:

less -Mr -f /dev/sda

Il file speciale /dev/sda rappresenta il primo disco rigido. Leggendo /dev/sda si leggono i blocchi del disco abasso livello.Come funziona l'algoritmo di accesso alla risorsa?

Page 62: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

62

Esempio di accesso ad una risorsa(I preliminari, parte I)

Il file / ha i seguenti attributi:rwxr-xr-x root root

Il file /dev ha i seguenti attributi:rwxr-xr-x root root

Il file /dev/sda ha i seguenti attributi:rw-rw---- root disk

Permessi Utente creatore Gruppo utente

Permessi Utente creatore Gruppo utente

Permessi Utente creatore Gruppo utente

Page 63: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

63

Esempio di accesso ad una risorsa(I preliminari, parte II)

I gruppi dell'utente andreoli sono i seguenti:andreoli cdrom floppy audio dip video plugdev netdev scanner bluetooth vboxsf

Gli identificatori utente/gruppo del processo less sono andreoli/andreoli.

Page 64: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

64

Esempio di accesso ad una risorsa(Apertura di /dev/sda)

Modosupervisore

Modoutente

Il processo less apre il file /dev/sda con la chiamata di sistema open(). Parte la procedura di autorizzazione.

Hardware

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

GestoreFile System/dev/sda

UID creatore: rootGID creatore: diskPermessi: rw-rw----

less -Mr /dev/sda

PCB

open()

Page 65: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

65

Controllo accessi /(Identificatore utente di processo =?= Identificatore utente creatore del file)

Modosupervisore

Modoutente

L'identificatore utente del processo less (andreoli) è uguale all'identificatore utente del creatore del file (root)? NO Bisogna controllare il gruppo primario.→

Hardware

GestoreFile System

/

UID creatore: rootGID creatore: rootPermessi: rwxr-xr-x

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 66: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

66

Controllo accessi /(Identificatore gruppo di processo =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

L'identificatore di gruppo del processo less (andreoli) è uguale all'identificatore del gruppo primario del creatore del file (root)? NO Bisogna controllare i gruppi secondari.→

Hardware

GestoreFile System

/

UID creatore: rootGID creatore: rootPermessi: rwxr-xr-x

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 67: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

67

Controllo accessi /(Identificatore gruppo secondario =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

Tra gli identificatori dei gruppi secondari del processo less (cdrom floppy audio dip video plugdev netdev scanner bluetooth vboxsf) ce ne è uno uguale all'identificatore del gruppo primario del creatore del file (root)? NO Si applica l'ultima terna.→

Hardware

GestoreFile System

/

UID creatore: rootGID creatore: rootPermessi: rwxr-xr-x

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 68: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

68

Controllo accessi /(I permessi accordati a less sono quelli della terza terna: r-x)

Modosupervisore

Modoutente

I privilegi ammissibili per less sulla directory / sono lettura (r) ed accesso (x).less vuole aprire / (r) ed entrarci (x), per aprire /dev.Gli viene accordato il permesso.

Hardware

GestoreFile System

/

UID creatore: rootGID creatore: rootPermessi: rwxr-xr-x

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 69: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

69

Controllo accessi /dev(Identificatore utente di processo =?= Identificatore utente creatore del file)

Modosupervisore

Modoutente

L'identificatore utente del processo less (andreoli) è uguale all'identificatore utente del creatore del file (root)? NO Bisogna controllare il gruppo primario.→

Hardware

GestoreFile System

/dev

UID creatore: rootGID creatore: rootPermessi: rwxr-xr-x

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 70: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

70

Controllo accessi /dev(Identificatore gruppo di processo =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

L'identificatore di gruppo del processo less (andreoli) è uguale all'identificatore del gruppo primario del creatore del file (root)? NO Bisogna controllare i gruppi secondari.→

Hardware

GestoreFile System

/dev

UID creatore: rootGID creatore: rootPermessi: rwxr-xr-x

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 71: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

71

Controllo accessi /dev(Identificatore gruppo secondario =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

Tra gli identificatori dei gruppi secondari del processo less (cdrom floppy audio dip video plugdev netdev scanner bluetooth vboxsf) ce ne è uno uguale all'identificatore del gruppo primario del creatore del file (root)? NO Si applica l'ultima terna.→

Hardware

GestoreFile System

/dev

UID creatore: rootGID creatore: rootPermessi: rwxr-xr-x

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 72: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

72

Controllo accessi /dev(I permessi accordati a less sono quelli della terza terna: r-x)

Modosupervisore

Modoutente

I privilegi ammissibili per less sulla directory / sono lettura (r) ed accesso (x).less vuole aprire / (r) ed entrarci (x), per aprire /dev/sda.Gli viene accordato il permesso.

Hardware

GestoreFile System

/dev

UID creatore: rootGID creatore: disPermessi: rwxr-xr-x

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 73: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

73

Controllo accessi /dev/sda(Identificatore utente di processo =?= Identificatore utente creatore del file)

Modosupervisore

Modoutente

L'identificatore utente del processo less (andreoli) è uguale all'identificatore utente del creatore del file (root)? NO Bisogna controllare il gruppo primario.→

Hardware

GestoreFile System/dev/sda

UID creatore: rootGID creatore: diskPermessi: rw-rw----

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 74: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

74

Controllo accessi /dev/sda(Identificatore gruppo di processo =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

L'identificatore di gruppo del processo less (andreoli) è uguale all'identificatore del gruppo primario del creatore del file (disk)? NO Bisogna controllare i gruppi secondari.→

Hardware

GestoreFile System/dev/sda

UID creatore: rootGID creatore: diskPermessi: rw-rw----

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 75: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

75

Controllo accessi /dev/sda(Identificatore gruppo secondario =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

Tra gli identificatori dei gruppi secondari del processo less (cdrom floppy audio dip video plugdev netdev scanner bluetooth vboxsf) ce ne è uno uguale all'identificatore del gruppo primario del creatore del file (disk)? NO Si applica l'ultima terna.→

Hardware

GestoreFile System/dev/sda

UID creatore: rootGID creatore: diskPermessi: rw-rw----

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Page 76: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

76

Controllo accessi /dev/sda(I permessi accordati a less sono quelli della terza terna: ---)

Modosupervisore

Modoutente

I privilegi ammissibili per less sulla directory / sono nulli (---).less vuole aprire in lettura /dev/sda (r).Gli viene negato il permesso.

Hardware

GestoreFile System

/dev

UID creatore: rootGID creatore: diskPermessi: rw-rw----

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

X

Page 77: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

77

BIG FAT WARNING(You have been warned)

Lo schema ora proposto è una semplificazione della realtà.Sono stati omessi dettagli molto importanti.

L'obiettivo dello schema attuale è quello di introdurvi dolcemente (si spera) i concetti principali dello schema dei permessi.

Page 78: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

78

Domanda da 1M USD(Rivolta a voi, cari studenti)

Quali credenziali avrebbe dovuto presentare l'utente andreoli per poter accedere al file speciale /dev/sda?

Page 79: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

79

Un limite dello schema dei permessi(La suddivisione degli utenti in classi di privilegio è grossolana)

Un limite dello schema standard dei permessi è la sua grossolanità nell'assegnazione dei privilegi. Un permesso può essere assegnato a tre insiemi di utenti:

il creatore;un solo gruppo di lavoro specifico;i rimanenti utenti.

Il modello concettuale delle categorie di utenti è separato in sole tre classi.

Page 80: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

80

Un esempio(Scomodo da realizzare coi permessi standard; provateci)

Un'applicazione gestisce documenti per una scuola superiore.

Alcuni utenti pubblicano contenuti (w), altri utentili leggono (r), altri ancora possono leggere escrivere (rw).Gli utenti sono divisi in gruppi (classe di studenti,docenti, dirigente, amministratore, lettori, scrittori,lettori e scrittori).

Provate ad implementare questo schema di autorizzazione con i permessi…

Page 81: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

81

Liste di controllo degli accessi(Mitigano la scomodità appena vista)

Per risolvere il problema, Il SO fornisce una autorizzazione basata su liste di controllo degli accessi (Access Control List, ACL).Ogni file/directory è munito di una tabella che contiene l'elenco di singoli utenti e gruppi autorizzati ad accederlo (con i relativi permessi).

→ Immaginate un file che espone permessi per utenti e gruppi diversi.

Page 82: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

82

Un esempio di ACL(Specifica permessi per singoli utenti e gruppi)

Classe di utenti UID/GID Permessi

Utente creatore - rwx

Utente 1007 r--

Utente 1010 rwx

Gruppo primario - rwx

Gruppo 102 r--

Gruppo 103 -w-

Gruppo 109 rw-

Altri - r--

Corrisponde alpermesso per

l'utente creatore

Corrisponde alpermesso per

il gruppo primario

Corrisponde alpermesso pergli altri utenti

Page 83: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

83

Controllo degli accessi con le ACL(Concettualmente analogo al controllo dei permessi)

Il controllo degli accessi con le ACL è identico concettualmente al controllo degli accessi tramite permessi.Quando un processo apre un file, per ogni componente del suo percorso assoluto si verifica se le credenziali di processo (identificatori utente, gruppo, gruppi secondari) siano elencate nella ACL corrispondente, nell'ordine seguente:

utente creatore, utente, gruppo primario,gruppo, altri.

Si applicano i permessi della prima riga che corrisponde alle credenziali di processo.

Page 84: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

84

Esempio di accesso ad una risorsa(L'utente studente vuole aprire il file /tmp/doc.txt)

Supponiate che l'utente marco voglia leggere il documento contenuto nel file di nome /tmp/doc.txt, per esempio lanciando il comando seguente:

less -Mr /tmp/doc.txt

Come funziona l'algoritmo di accesso alla risorsa tramite le ACL?

Page 85: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

85

Esempio di accesso ad una risorsa(I preliminari, parte I)

ACL della directory /Classe di utenti UID/GID Permessi

Utente creatore - rwx

Gruppo primario - r-x

Altri - r-x

L'ACL mostra credenzialicoincidenti con quelle delloschema standard dei permessi.

Page 86: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

86

Esempio di accesso ad una risorsa(I preliminari, parte II)

ACL della directory /tmpClasse di utenti UID/GID Permessi

Utente creatore - rwx

Gruppo primario - rwx

Altri - rwx

Nella directory /tmptutti possono faretutto.

Page 87: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

87

Esempio di accesso ad una risorsa(I preliminari, parte III)

ACL del file /tmp/doc.txtClasse di utenti UID/GID Permessi

Utente creatore(admin)

-rwx

Utente 1005(carlo) rwx

Gruppo primario(staff)

-rwx

Gruppo 1010(studenti) r--

Altri - ---

L'utente carlo èun amministratore.Lui può fare tuttocon il file.

Gli utenti del gruppostudenti nonpossono modificareil documento.

Page 88: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

88

Esempio di accesso ad una risorsa(I preliminari, parte IV)

I gruppi dell'utente marco sono i seguenti:users cdrom floppy audio dip video plugdev netdev scanner bluetooth studenti

Gli identificatori utente/gruppo del processo less sono marco/users.

Page 89: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

89

Esempio di accesso ad una risorsa(Apertura di /tmp/doc.txt)

Modosupervisore

Modoutente

Il processo less apre il file /tmp/doc.txt con la chiamata di sistema open(). Parte la procedura di autorizzazione.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp/doc.txt

less -Mr /tmp/doc.txt

PCB

open()

ACL /tmp/doc.txt

Page 90: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

90

Controllo accessi /(Identificatore utente di processo =?= Identificatore utente creatore del file)

Modosupervisore

Modoutente

L'identificatore utente del processo less (marco) è uguale all'identificatore utente del creatore del file (admin)? NO Bisogna →controllare le restrizioni in ACL su altri utenti.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/

less -Mr /tmp/doc.txt

PCBACL /Classe UID/GID PermessiCreatore - rwx

open()

Page 91: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

91

Controllo accessi /(Esistono restrizioni per altri utenti nella ACL?)

Modosupervisore

Modoutente

Esistono restrizioni specifiche per altri utenti nella ACL della directory /? NO si passa al gruppo primario. →

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/

less -Mr /tmp/doc.txt

PCBACL /Classe UID/GID Permessi

open()

Page 92: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

92

Controllo accessi /(Identificatore gruppo di processo =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

L'identificatore di gruppo del processo less (users) è uguale all'identificatore del gruppo primario del creatore del file (root)? NO →Bisogna controllare i gruppi secondari.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/

less -Mr /tmp/doc.txt

PCBACL /Classe UID/GID PermessiGr. pr. - r-x

open()

Page 93: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

93

Controllo accessi /(Identificatore gruppo secondario =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

Tra gli identificatori dei gruppi secondari del processo less (cdrom floppy audio dip video plugdev netdev scanner bluetooth studenti) ce ne è uno uguale all'identificatore del gruppo primario del creatore del file (root)? NO Bisogna controllare le →restrizioni in ACL su altri gruppi.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/

less -Mr /tmp/doc.txt

PCBACL /Classe UID/GID PermessiGr. pr. - r-x

open()

Page 94: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

94

Controllo accessi /(Esistono restrizioni per altri gruppi nella ACL?)

Modosupervisore

Modoutente

Esistono restrizioni specifiche per altri gruppi nella ACL della directory /? NO Si applicano i permessi della riga “Altri” nella ACL.→

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/

less -Mr /tmp/doc.txt

PCBACL /Classe UID/GID Permessi

open()

Page 95: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

95

Controllo accessi /(I permessi accordati a less sono quelli della terna di “Altri”: r-x)

Modosupervisore

Modoutente

I privilegi ammissibili per less sulla directory / sono lettura (r) ed accesso (x).less vuole aprire / (r) ed entrarci (x), per aprire /tmp.Gli viene accordato il permesso.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/

less -Mr /tmp/doc.txt

PCBACL /Classe UID/GID PermessiAltri - r-x

open()

Page 96: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

96

Controllo accessi /tmp(Identificatore utente di processo =?= Identificatore utente creatore del file)

Modosupervisore

Modoutente

L'identificatore utente del processo less (marco) è uguale all'identificatore utente del creatore del file (admin)? NO Bisogna →controllare le restrizioni in ACL su altri utenti.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp

less -Mr /tmp/doc.txt

PCBACL /tmpClasse UID/GID PermessiCreatore - rwx

open()

Page 97: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

97

Controllo accessi /tmp(Esistono restrizioni per altri utenti nella ACL?)

Modosupervisore

Modoutente

Esistono restrizioni specifiche per altri utenti nella ACL della directory /tmp? NO si passa al gruppo primario. →

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp

less -Mr /tmp/doc.txt

PCBACL /tmpClasse UID/GID Permessi

open()

Page 98: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

98

Controllo accessi /tmp(Identificatore gruppo di processo =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

L'identificatore di gruppo del processo less (users) è uguale all'identificatore del gruppo primario del creatore del file (staff)? NO →Bisogna controllare i gruppi secondari.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp

less -Mr /tmp/doc.txt

PCBACL /tmpClasse UID/GID PermessiGr. pr. - rwx

open()

Page 99: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

99

Controllo accessi /tmp(Identificatore gruppo secondario =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

Tra gli identificatori dei gruppi secondari del processo less (cdrom floppy audio dip video plugdev netdev scanner bluetooth studenti) ce ne è uno uguale all'identificatore del gruppo primario del creatore del file (staff)? NO Bisogna controllare le →restrizioni in ACL su altri gruppi.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp

less -Mr /tmp/doc.txt

PCBACL /tmpClasse UID/GID PermessiGr. pr. - rwx

open()

Page 100: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

100

Controllo accessi /tmp(Esistono restrizioni per altri gruppi nella ACL?)

Modosupervisore

Modoutente

Esistono restrizioni specifiche per altri gruppi nella ACL della directory /tmp? NO Si applicano i permessi della riga “Altri” nella ACL.→

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp

less -Mr /tmp/doc.txt

PCBACL /tmpClasse UID/GID Permessi

open()

Page 101: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

101

Controllo accessi /tmp(I permessi accordati a less sono quelli della terna di “Altri”: rwx)

Modosupervisore

Modoutente

I privilegi ammissibili per less sulla directory /tmp sono lettura (r), scrittura (w) ed accesso (x).less vuole aprire /tmp (r) ed entrarci (x), per aprire /tmp/doc.txt.Gli viene accordato il permesso.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp

less -Mr /tmp/doc.txt

PCBACL /tmpClasse UID/GID PermessiAltri - rwx

open()

Page 102: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

102

Controllo accessi /tmp/doc.txt(Identificatore utente di processo =?= Identificatore utente creatore del file)

Modosupervisore

Modoutente

L'identificatore utente del processo less (marco) è uguale all'identificatore utente del creatore del file (admin)? NO Bisogna →controllare le restrizioni in ACL su altri utenti.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp/doc.txt

less -Mr /tmp/doc.txt

PCBACL /tmp/doc.txtClasse UID/GID PermessiCreatore - rwx

open()

Page 103: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

103

Controllo accessi /tmp/doc.txt(Esistono restrizioni per altri utenti nella ACL?)

Modosupervisore

Modoutente

Esiste una restrizione specifica sull'utente carlo nella ACL del file /tmp/doc.txt.L'identificatore utente del processo less (marco) è uguale all'identificatore utente nell'ACL (carlo)? NO si passa al gruppo →primario.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp/doc.txt

less -Mr /tmp/doc.txt

PCBACL /tmp/doc.txtClasse UID/GID Permessi

open()

carlo 1005 rwx

Page 104: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

104

Controllo accessi /tmp/doc.txt(Identificatore gruppo di processo =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

L'identificatore di gruppo del processo less (users) è uguale all'identificatore del gruppo primario del creatore del file (staff)? NO →Bisogna controllare i gruppi secondari.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp/doc.txt

less -Mr /tmp/doc.txt

PCBACL /tmp/doc.txtClasse UID/GID PermessiGr. pr. - rwx

open()

Page 105: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

105

Controllo accessi /tmp/doc.txt(Identificatore gruppo secondario =?= Identificatore gruppo primario creatore)

Modosupervisore

Modoutente

Tra gli identificatori dei gruppi secondari del processo less (cdrom floppy audio dip video plugdev netdev scanner bluetooth studenti) ce ne è uno uguale all'identificatore del gruppo primario del creatore del file (staff)? NO Bisogna controllare le →restrizioni in ACL su altri gruppi.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp/doc.txt

less -Mr /tmp/doc.txt

PCBACL /tmp/doc.txtClasse UID/GID PermessiGr. pr. - rwx

open()

Page 106: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

106

Controllo accessi /tmp/doc.txt(Esistono restrizioni per altri gruppi nella ACL?)

Modosupervisore

Modoutente

Esiste una restrizione specifica sul gruppo studenti nella ACL del file /tmp/doc.txt.L'identificatore di gruppo del processo less (users) è uguale all'identificatore di gruppo nell'ACL (studenti)? NO Bisogna →controllare i gruppi secondari.

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp/doc.txt

less -Mr /tmp/doc.txt

PCBACL /tmp/doc.txtClasse UID/GID Permessi

open()

1010 r--Gruppo

Page 107: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

107

Controllo accessi /tmp/doc.txt(Identificatore gruppo secondario =?= Identificatore gruppo IN acl)

Modosupervisore

Modoutente

Tra gli identificatori dei gruppi secondari del processo less (cdrom floppy audio dip video plugdev netdev scanner bluetooth studenti) ce ne è uno uguale all'identificatore del gruppo specificato nella ACL (studenti)? SÌ Si assegna il permesso → di lettura (r).

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp/doc.txt

less -Mr /tmp/doc.txt

PCBACL /tmp/doc.txtClasse UID/GID Permessi

open()

1010 r--Gruppo

Page 108: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

108

Controllo accessi /tmp/doc.txt(I permessi accordati a less sono quelli della riga dell'ACL: r--)

I privilegi ammissibili per less sulla directory /tmp sono di sola lettura (r).less vuole aprire /tmp/doc.txt (r) per leggerlo.Gli viene accordato il permesso.

Modosupervisore

Modoutente

Hardware

UID processo: marcoGID processo: usersGID secondari: cdrom …

GestoreFile System

/tmp

less -Mr /tmp/doc.txt

PCBACL /tmp/doc.txtClasse UID/GID Permessi

open()

1010 r--Gruppo

Page 109: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

109

Three… Two… One(Ignition!)

Page 110: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

110

Una domanda (im)pertinente(Di quelle che fanno guadagnare punti bonus)

Sono stati discussi due sistemi di autorizzazione:Permessi UNIX.Access Control List.

Supponiamo siano entrambi attivi.

Sono usati tutti e due i sistemi?Se sì, in che ordine?

Oppure ne viene usato solo uno?Se sì, quale?

Page 111: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

111

La risposta(Dovrebbe essere sufficientemente chiara)

Sono usati entrambi i sistemi di autorizzazione.

Prima i permessi.Poi le ACL.

Page 112: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

112

Cambio di privilegio(Risposta al Problema 3/4)

I SO moderni forniscono astrazioni software per il cambio di privilegio.Casi tipici:

un utente lancia un processo (spesso, bash) con iprivilegi di un altro utente (spesso, root).un utente lancia un processo che assumeautomaticamente privilegi superiori.

Page 113: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

113

Avvio processo con privilegi diversi(Banale dal punto di vista teorico)

L'avvio di un processo con privilegi diversi è banale dal punto di vista della teoria.Il SO mette a disposizione programmi di sistema che permettono eseguire un comando cambiando l'utente o il gruppo di lavoro primario.

Posto che abbiate le credenziali per farlo!

Page 114: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

114

Elevazione dei privilegi di un comando(Molto più interessante)

Lo scenario di gran lunga più interessante è il secondo: un utente lancia un comando, che assume automaticamente privilegi superiori.

Il tutto, in maniera controllata dal SO!

Come fare?

Page 115: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

115

L'idea di fondo(Prevedere due personalità di esecuzione in modo utente)

L'idea di fondo è quella di prevedere, per un processo in esecuzione in modo utente, due distinte “personalità”.

Una personalità normale, corrispondente ad unprocesso che può fare cose normali (no superpoteri).Una personalità “eroe”, corrispondente ad un processoche può fare tutte (sì superpoteri).

E se si usassero due coppie distinte di UID/GID per rappresentare tali personalità?

Page 116: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

116

Utente e gruppo effettivi(La personalità ”eroe”)

Il SO fornisce due ulteriori astrazioni software dal nome identificatore di utente effettivo (effective user id) e identificatore di gruppo effettivo (effective group id).Queste due astrazioni sono credenziali di processo, associate al processo in esecuzione.

Non ai file.Non all'account.

I relativi campi delle strutture dati di controllo sono memorizzati nel descrittore di processo.

Page 117: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

117

Utenti e gruppo “reali”(La personalità “normale”)

Vi ricordate le credenziali di processo introdotte pochi minuti fa?

Identificatore utente.Identificatore gruppo.

Nella realtà, queste due credenziali prendono il nome di:

Identificatore reale di utente (real user id).Identificatore reale di gruppo (real group id).

Il motivo? Per distinguerle dagli identificatori di utente e gruppo effettivi.

Page 118: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

118

Orrore!(Danny is scared by all these IDs…)

Page 119: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

119

Domande(Indotte dalla confusione)

Quando e come un processo passa dalla personalità “normale” alla personalità “eroe”?

Il controllo degli accessi ai file non avviene esibendo gli identificatori reali? Che senso ha introdurre quelli effettivi?

Page 120: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

120

Una tragica confessione del docente(Che sta cercando di indorare la pillola amarissima)

Ricordate le procedure di controllo degli accessi viste poco fa?

Permessi.Liste di controllo degli accessi.

Le procedure sono state raccontate in maniera semplificata, per non turbarvi troppo.Sono state omesse due informazioni importanti. È giunta l'ora di dirvele.

Page 121: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

121

“Com'è umano Lei…”(Ugo è contentissimo di scoprire che quello che ha studiato non è tutto vero…)

Page 122: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

122

UID reale = 0 Accesso garantito→(Subito, senza controllo)

Se il processo si presenta con un identificatore di utente reale uguale a 0

ossia, se è stato lanciato dall'utente rootallora il nucleo non effettua alcun controllo!

Niente controllo di permessi!Niente controllo delle ACL!

Page 123: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

123

L'utente root è accontentato sempre(Controllo accessi /dev/sda: non c'è se è root a lanciare il processo)

Modosupervisore

Modoutente

Hardware

GestoreFile System/dev/sda

less -Mr /dev/sda

PCB

open()

Utente root

Page 124: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

124

UID reale ≠ 0 Controllo→(Le credenziali del processo usate nel controllo sono quelle effettive)

Se il processo si presenta con un identificatore di utente reale diverso da 0

ossia, se è stato lanciato da un utente diverso daroot

allora il nucleo effettua il controllo di autorizzazione.

Prima sui permessi.Poi sulle ACL.

Le credenziali di processo usate per effettuare il controllo non sono quelle reali.SONO QUELLE EFFETTIVE!

Page 125: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

125

L'utente normale subisce i controlli(Controllo accessi /dev/sda)

Modosupervisore

Modoutente

Hardware

GestoreFile System/dev/sda

UID creatore: rootGID creatore: diskPermessi: rw-rw----

less -Mr /dev/sda

PCB

open()

UID processo: andreoliGID processo: andreoliGID secondari: cdrom …

Utentenon root

Page 126: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

126

Le credenziali di processo sono diverse(Sono quelle effettive, non quelle reali)

Modosupervisore

Modoutente

Hardware

GestoreFile System/dev/sda

UID creatore: rootGID creatore: diskPermessi: rw-rw----

less -Mr /dev/sda

PCB

open()

UID processo EFFETTIVO: andreoliGID processo EFFETTIVO: andreoliGID secondari EFFETTIVI: cdrom …

Utentenon root

Page 127: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

127

La differenza tra “reale” ed ”effettivo”(In condizioni normali)

Quando un processo è creato, di solito:l'identificatore utente effettivo è posto ugualeall'identificatore utente reale.l'identificatore di gruppo effettivo è posto ugualeall'identificatore di gruppo reale.

Ripeto: in condizioni normali…

Page 128: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

128

La differenza tra “reale” ed ”effettivo”(In condizioni non normali)

In una situazione ben specifica, invece:l'identificatore utente effettivo è posto ugualeall'identificatore utente del creatore del file.l'identificatore di gruppo effettivo è posto ugualeall'identificatore di gruppo del creatore del file.

Page 129: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

129

La conseguenza(Guardate un po' i comandi nella directory /usr/bin…)

Se vi studiate gli attributi dei file eseguibili nella directory /usr/bin (in altre parole, i comandi):

ls -l /usr/binscoprirete che utente creatore del file e gruppo del file sono root e root.

→ In condizioni non normali, l'utente potrebbe eseguire questi comandi con privilegi di root.

Interessante…

Page 130: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

130

Il bit “setuid” dei permessi (Il bit che abilita la condizione non normale)

Le azioni disponibili su un file non sono solo:r: letturaw: scritturax: esecuzione

Ve ne è un'altra, sostituta di x, applicabile alla prima terna nel caso di file.

s: esecuzione con i privilegi dell'utente creatore delfile.

Il bit s prende il nome di set user ID (setuid).

Page 131: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

131

Il bit “setuid” all'opera (Analisi dei permessi del comando /usr/bin/passwd)

Osservate gli attributi del file eseguibile /usr/bin/passwd:

ls -l /usr/bin/passwdUtente creatore: root.Gruppo primario del file: root.Permessi: rwsr-xr-x.

Notate la s applicataalla prima terna di permessi

Page 132: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

132

Il bit “setuid” all'opera (Esecuzione del comando passwd)

Quando l'utente lancia il comando passwd, accade questo:

viene creato un nuovo processo.utente e gruppo reali rimangono quelli dell'utentedi partenza (ad es., andreoli).utente e gruppo effettivi diventano quelli dell'utentecreatore del file (root e root).viene caricata in memoria l'immagine dell'eseguibile/usr/bin/passwd.

→ passwd esegue come se fosse lanciato dall'utente root.

Page 133: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

133

Pro e contro del bit setuid(Una comodità che può costare molto cara)

Pro: il processo esegue con le credenziali di root e può eseguire operazioni delicate.

Senza che l'utente debba tramutarsi prima in unamministratore.

→ Comodità d'uso.Contro: il processo esegue con i massimi privilegi possibili.

Se il programma è scritto male, è possibile farglicompiere azioni spregevoli, non ultima l'esecuzione dicodice arbitrario!

Page 134: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

134

Il bit “setgid” dei permessi (Analogo al bit setuid, per i gruppi)

Le azioni disponibili su un file non sono solo:r: letturaw: scritturax: esecuzione

Ve ne è un'altra, sostituta di x, applicabile alla seconda terna nel caso di file.

s: esecuzione con i privilegi gruppo delfile.

Il bit s prende il nome di set group ID (setgid).

Valgono tutte le considerazioni svolte per il bit setuid.

Page 135: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

135

Il problema dell'elevazione dei privilegi(O non si può fare nulla, o si può fare tutto; non c'è una via di mezzo)

Il vero problema dello schema di permessi visto finora è il seguente.Un processo non ha alcun privilegio particolare oppure, quando diventa amministratore, acquisisce tutti i privilegi possibili per l'intera esecuzione!

Non esiste una via di mezzo.

Page 136: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

136

Una domanda (im)pertinente(Di quelle che fanno guadagnare punti bonus)

È oramai chiaro che il modello di permessi visto finora è di tipo “o tutto o niente”.Ciò non va bene per diversi motivi.

Il processo mantiene i pieni privilegi anche dopo aversvolto le operazioni critiche.Il processo ottiene i pieni privilegi laddove neservivano di meno.

In entrambi i casi si viola il principio del minimo privilegio!Si può raffinare lo schema dei permessi in tal senso?

Page 137: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

137

La risposta(Dovrebbe essere sufficientemente chiara)

SÌ!*Si possono addirittura risolvere entrambi i problemi proposti!

*

Page 138: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

138

Identificatore setuid/setgid salvato(Risolve il problema del mantenimento dei privilegi per l'intera esecuzione)

L'identificatore setuid salvato (saved setuid identifier) di un processo è una copia del valore dell'identificatore di utente effettivo all'inizio dell'esecuzione.Tale campo è presente nel descrittore di processo.

L'identificatore setgid salvato (saved setgid identifier) di un processo è una copia del valore dell'identificatore di gruppo effettivo all'inizio dell'esecuzione.Tale campo è presente nel descrittore di processo.

Page 139: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

139

Rilascio temporaneo dei privilegi(Il processo riduce la sua “potenza” da utente effettivo a utente reale)

Per un processo setuid/setgid in esecuzione, il SO permette (tramite una chiamata di sistema opportuna) il rilascio temporaneo dei privilegi effettivi (privilege drop).

Il processo invoca la chiamata di sistema.Il nucleo scrive negli identificatori effettivi i valoridegli identificatori reali.

Poiché gli utenti reali sono meno privilegiati degli utenti effettivi, si ottiene un rilascio di privilegio.

Page 140: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

140

Motivazione(Del rilascio temporaneo)

Perché un processo dovrebbe effettuare il rilascio temporaneo dei privilegi?La risposta è semplice e diretta.Le porzioni critiche del programma sono eseguite con i privilegi più elevati possibile (gli effettivi).

Porzione critica aggiornamento file password,→accesso ad una periferica, …

Le porzioni non critiche del programma sono eseguite con i privilegi originari (i reali).

Porzione non critica Stampa menu help, …→

Page 141: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

141

Recupero dei pieni privilegi(Il processo ripristina la sua “potenza” da utente reale a utente effettivo)

Per un processo setuid/setgid in esecuzione, il SO permette (tramite una chiamata di sistema opportuna) il ripristino dei privilegi effettivi (privilege restore).

Il processo invoca la chiamata di sistema.Il nucleo scrive negli identificatori effettivi i valoridegli identificatori salvati.

Ecco a cosa servivano gli identificatori salvati!

Page 142: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

142

Capability(Risolvono il problema dei troppi privilegi associati all'account root)

Il SO GNU/Linux fornisce il meccanismo delle capability. In sostanza, i pieni privilegi dell'utente root sono suddivisi in tanti singoli sotto-privilegi acquisibili separatamente dai processi.

→ Non è più necessario acquisire i pieni poteri. Si acquisiscono i poteri strettamente necessari per risolvere uno specifico problema.

Page 143: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

143

Quali capability esistono?(man 7 capabilities ve lo dice)

Di capability ne esistono tante.man 7 capabilities per tutti i sordidi dettagli.

Esempi di capability:forgiare e spedire pacchetti di rete arbitrari.impostare interfacce di rete.montare e smontare dischi.riavviare il sistema.…

Page 144: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

144

Capability di processo(Permesse, effettive, ereditabili)

Capability permesse (permitted capability).Queste sono le capability cui è concesso l'uso al processo (dal nucleo) durante la sua esecuzione.Alcune di queste capability possono essere superflue; il processo può abbandonarle.

Attenzione! Una volta abbandonate, il processo nonpuò più riprenderle!

Page 145: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

145

Capability di processo(Permesse, effettive, ereditabili)

Capability effettive (effective capability).Queste sono le capability non abbandonate, con cui il processo può operare durante l'esecuzione.Il processo può rilasciare temporaneamente i propri privilegi disabilitando le opportune capability permesse.Il processo può recuperare i pieni privilegi attivando nuovamente le opportune capability permesse.

Page 146: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

146

Capability di processo(Permesse, effettive, ereditabili)

Capability ereditabili (inheritable capability).Queste sono le capability trasferibili all'insieme delle capability permesse se il processo carica in memoria una nuova immagine con la chiamata di sistema opportuna.

Page 147: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

147

Capability di file(La naturale estensione del bit setuid)

Un file può contenere (oppure no) informazioni riguardanti le capability.Se le contiene, queste informazioni sono usate dal nucleo per stabilire gli insiemi di capability possedute da un processo che esegue quel file.

Un file espone tre insiemi di capability.

Page 148: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

148

Capability di file(Permesse, effettive, ereditabili)

Capability permesse (permitted capability).Queste capability sono inserite nell'insieme delle capability permesse al processo all'inizio della sua esecuzione.

Page 149: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

149

Capability di file(Permesse, effettive, ereditabili)

Capability effettive (effective capability).Questo è un singolo bit.Se è abilitato, durante il lancio del processo le capability permesse sono tutte abilitate di default.

Page 150: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

150

Capability di file(Permesse, effettive, ereditabili)

Capability ereditabili (inheritable capability).Queste capability sono messe in AND bit a bit con le capability ereditabili del processo.Il risultato è l'insieme di capability che il processo farà ereditare se deciderà di lanciare un nuovo programma.Logicamente, tale insieme conterrà l'intersezione delle capability:

offerte dal processo;presenti nel file.

Page 151: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

151

Elevazione privilegi con le capability(Che capability ottiene un processo quando va in esecuzione?)

Il nucleo stabilisce le capability a disposizione di un processo durante il suo avvio, nel momento in cui è caricata in memoria l'immagine di un file eseguibile.

Page 152: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

152

Alcune definizioni(Necessarie per illustrare le operazioni del nucleo)

Siano:P → un insieme di capability del processo prima del

caricamento dell'immagineP' → un insieme di capability del processo dopo il

caricamento dell'immagineF → un insieme di capability del fileM → una maschera di capability (inizialmente

contenente tutte le capability) da cui il processopuò depennare quelle che non vuole far ereditareai suoi figli

Page 153: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

153

Calcolo dell'insieme P'(permitted)(Le capability permesse del processo, dopo l'esecuzione dell'immagine)

P'(permitted) = (P(inheritable) & F(inheritable))|(F(permitted) & cap_bset)

Capability permesse delprocesso dopo l'esecuzionedell'immagine

Capability ereditabilidel processo primadell'esecuzionedell'immagine

Capabilityereditabilidel file

ANDbit a bit Capability

richiestedal processoe presentinel fileOR

bit a bit

Capabilitypermessedel file

ANDbit a bit

Mascheradi capability(inizialmentecompleta)

Capabilitypermessedel file enon filtratedallamaschera

Page 154: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

154

Calcolo dell'insieme P'(effective)(Le capability effettive del processo, dopo l'esecuzione dell'immagine)

P'(effective) = F(effective) ? P'(permitted) : 0

Capability permesse delprocesso dopo l'esecuzionedell'immagine

Bit presentenel file

Sì le capability→effettive del processosono tutte quellepermesse

Vale 1? No nessuna→capabilityeffettiva

Page 155: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

155

Calcolo dell'insieme P'(inheritable)(Le capability ereditabili del processo, dopo l'esecuzione dell'immagine)

P'(inheritable) = P(inheritable)

Capability ereditabili delprocesso dopo l'esecuzionedell'immagine

Sono esattamente quelleereditabili prima dellaesecuzione dell'immagine

Page 156: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

156

Una domanda (im)pertinente(Di quelle che fanno guadagnare punti bonus)

Sono stati discussi due sistemi di elevazione dei privilegi:

Bit setuid/setgid.Capability.

Supponiamo siano entrambi attivi.Sono usati tutti e due i sistemi?

Se sì, in che ordine?Oppure ne viene usato solo uno?

Se sì, quale?

Page 157: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

157

La risposta(Dovrebbe essere sufficientemente chiara)

Sono usati entrambi i sistemi di elevazione dei privilegi.

Prima i bit setuid/setgid (che già danno l'intero insieme dei privilegi).Poi le capability.

Page 158: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

158

Strumenti a disposizione degli utenti(Problema 4/4)

Il SO mette a disposizione strumenti per:la gestione degli utenti e dei gruppi (creazione,modifica, cancellazione).la gestione dei permessi su file e directory.l'esecuzione di comandi con privilegi opportuni(esecuzione con un nuovo identificatore utente ogruppo, con capability definite).la limitazione delle risorse consumate da un utente(tempo di CPU, file aperti, memoria prenotata, …).

Page 159: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

159

GESTIONE DEGLI UTENTI

Page 160: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

160

Scenario e domande(Come sono gestiti gli utenti? È possibile visionare le proprietà di un utente?)

Scenario: in un SO moderno (time sharing, multi-utente), un amministratore vuole creare, modificare, rimuovere utenti.

Domande:Esistono strumenti per creare, modificare, rimuovere utenti?Esistono strumenti per prendere visione delle caratteristiche di un utente?

Page 161: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

161

Creazione di un utente in Debian(Semplicissima, grazie al comando adduser)

Debian GNU/Linux e derivate semplificano molto la procedura di creazione di un nuovo utente.È sufficiente eseguire il comando seguente da amministratore:

adduser nome_di_loginAd esempio:

adduser prova

Il comando adduser è interattivo; il SO chiede informazioni all'utente, che le deve immettere.

Page 162: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

162

Immissione dei campi(Pochi e immediati: password, nome completo, stanza, numeri di telefono)

I campi da immettere sono pochi e di immediata comprensione.

La password (da immettere due volte per sicurezza).Il nome completo (nome e cognome dell'utente).Il nome/numero dell'ufficio in cui si lavora.I numeri di telefono di lavoro e di casa.Una stringa di testo (immessa dall'amministratore)di compendio alle informazioni precedenti.

Page 163: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

163

Il risultato del comando adduser(Un utente nuovo di zecca con la sua home directory ed il suo gruppo primario)Il risultato del comando adduser è un utente nuovo di zecca (nel caso in questione, l'utente di nome prova).L'utente prova ha le seguenti risorse.

Una home directory /home/prova.Un gruppo primario di lavoro prova (e, per il momento,nessun altro gruppo secondario).Un interprete di default (/bin/bash) con unaconfigurazione iniziale copiata pari pari dalla directory/etc/skel (“skel” “skeleton” “scheletro”).→ →

Page 164: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

164

Esercizi (1 min.)1. Create un nuovo utente con nome di login studente.

Page 165: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

165

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Page 166: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

166

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Nome di logindell'utente

Page 167: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

167

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Password(celata all'utente)

Page 168: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

168

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Identificatore utente(partono da 1000)

Page 169: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

169

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Identificatore gruppo primario(partono da 1000)

Page 170: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

170

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Nome completo dell'utente(nome e cognome)

Page 171: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

171

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Numero di stanza

Page 172: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

172

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Numero di telefonodi lavoro

Page 173: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

173

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Numero di telefonodi casa

Page 174: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

174

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Informazionisuppletive

Page 175: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

175

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Home directorydell'utente

Page 176: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

176

Analisi dell'utente(Visione del file /etc/passwd)

Aprite il file /etc/passwd e cercate il record relativo all'utente di nome prova:

grep prova /etc/passwd

Dovreste ottenere il record seguente:

Percorso assoluto dell'interprete dei comandi

dell'utente

Page 177: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

177

Esercizi (1 min.)2. Identificate la home directory e l'interprete dei

comandi dell'utente studente.

Page 178: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

178

Rimozione di un utente in Debian(Semplicissima, grazie al comando deluser)

Debian GNU/Linux e derivate semplificano molto la procedura di rimozione di un utente esistente.È sufficiente eseguire il comando seguente da amministratore:

deluser nome_di_loginAd esempio:

deluser prova

Il comando deluser non è interattivo (non ha bisogno di esserlo).

Page 179: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

179

Il risultato del comando deluser(User has been buried, just like Mark would)

Il risultato del comando deluser è la rimozione completa dell'utente.

Cancellazione del nome dilogin dalle liste di utenti egruppi.Cancellazione del gruppoprimario dalla lista dei gruppi.Rimozione della homedirectory (tramite l' opzione--remove-home).

Page 180: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

180

Esercizi (1 min.)3. Cancellate l'utente studente.

Page 181: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

181

Una osservazione ed una domanda(Potreste non trovare adduser e deluser in altri distribuzioni GNU/Linux)

I due comandi adduser e deluser sono tipici delle distribuzioni Debian GNU/Linux e derivate.Con tutta probabilità non li troverete nelle altre distribuzioni GNU/Linux non basate su Debian.

La diaspora dei sistemi UNIX colpisce ancora…

La domanda nasce spontanea: quali comandi usano, allora, le altre distribuzioni GNU/Linux?

Page 182: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

182

I comandi useradd e userdel(Questi li trovate in tutte le distribuzioni GNU/Linux)

Le altre distribuzioni GNU/Linux usano i comandi useradd e userdel, analoghi dal punto di vista concettuale.

man useradd e man userdel per tutti i dettagli.

A differenza dei comandi precedenti, questi comandi presentano una maggiore difficoltà di uso legata alla loro non interattività.

Page 183: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

183

Non interattività dei comandi(Il SO non chiede nulla; è l'amministratore a dover specificare tutto)

I due comandi useradd e userdel non sono interattivi.Il SO non pone domande all'amministratore.È l'amministratore a dover specificare le proprietà dell'utente tramite opportune opzioni.

Se l'amministratore si dimentica di impostarle,l'utente creato non avrà tali proprietà.Le proprietà si possono sempre impostare in seguito.

Page 184: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

184

Esercizi (2 min.)4. Cancellate la directory /home/studente.

Provate a creare nuovamente l'utente studente, questa volta usando il comando useradd.

Cercate di capire:quali e quanti gruppi sono stati associati all'utente.se è stata assegnata una home directory.

Page 185: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

185

Creazione della home directory(Comando useradd, opzione -m)

Per creare una home directory e configurare è sufficiente usare l'opzione -m di useradd.

useradd -m prova

Verificate con il comando:ls -al /home/prova

Sono presenti persino i file di configurazione dell'interprete di default (BASH)!

Page 186: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

186

Esercizi (1 min.)5. Provate a rimuovere nuovamente l'utente studente, questa volta usando il comando userdel.

Cercate di capire se la home directory è stata rimossa.

Page 187: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

187

Rimozione della home directory(Comando deluser, opzione -r)

Per rimuovere la home directory è sufficiente usare l'opzione -r di userdel.

userdel -r prova

Non date questo comando!L'utente prova non c'è più…

Page 188: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

188

Creazione di utenti più complessi(Possibile attraverso diverse opzioni)

I comandi adduser e useradd permettono all'amministratore di impostare le caratteristiche di un account già al momento della creazione.

man adduser e man useradd per tutti i dettagli.

Ad esempio, è possibile impostare i gruppi di lavoro secondari con uno dei comandi seguenti:

adduser --ingroup video provauseradd -G video -m prova

Page 189: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

189

Modifica di un utente esistente(Da parte dell'amministratore, tramite il comando usermod)

Il comando usermod permette di modificare le proprietà e le risorse di un utente esistente.La sintassi è semplice:

usermod [opzioni] nome_di_login

Che cosa è possibile modificare, esattamente?Nome di login, identificatore utente, home directory,nome e/o identificatore dei gruppi di lavoro primarioe secondari, eseguibile dell'interprete, …

Page 190: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

190

Un esempio concreto(Proviamo a modificare alcune caratteristiche dell'utente prova)

Fate piazza pulita di un eventuale utente prova preesistente.

userdel -r provaCreate nuovamente un utente prova:

adduser provaProvate a cambiare l'utente prova nel modo che segue.

Nome di login prova → prova2Identificatore utente 1001 → 1100Home directory /home/prova → /home/prova2

Page 191: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

191

Le opzioni di usermod richieste(-l, -u, -d e -m)

Spulciando la pagina di manuale di usermodman usermod

dovreste individuare le opzioni seguenti.-l: cambia il nome di login-u: cambia l'identificatore utente-d: sposta la home directory-m: copia il contenuto della vecchia directory nella

nuova

Page 192: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

192

Il comando richiesto(Tutto sommato, abbastanza semplice da costruire)

Il comando richiesto è, in definitiva:usermod -l prova2 -u 1100 -d /home/prova2 -m prova

Provatelo!Non vi preoccupate di eventuali avvertimenti riguardanti spool di posta non trovati.

Page 193: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

193

Esercizi (5 min.)6. Installate il pacchetto software zsh. Assegnate

l'interprete dei comandi /bin/zsh all'utente studente.

Page 194: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

194

Il comando usermod permette anche di disabilitare il login per uno specifico nome di login (tramite l'opzione -L), bloccando di fatto l'account.Ad esempio, per bloccare l'account al (povero) utente prova:

usermod -L provaProvate ad autenticarvi di nuovo come prova:su – prova

L'autenticazione fallisce.

Blocco di un account(Comando usermod, opzione -L)

Page 195: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

195

Il comando usermod permette anche di riabilitare il login per uno specifico nome di login (tramite l'opzione -U), sbloccando di fatto l'account.Ad esempio, per sbloccare l'account al (fortunato) utente prova:

usermod -U provaProvate ad autenticarvi di nuovo come prova:su – prova

L'autenticazione ha di nuovo successo.

Sblocco di un account(Comando usermod, opzione -U)

Page 196: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

196

Modifica di un utente esistente(Da parte dell'utente stesso, tramite una serie di comandi)

Può l'utente cambiare da solo le preferenze del proprio account, senza scomodare ogni volta l'utente amministratore?Certamente (non tutte però; per l'aggiunta ai gruppi serve ancora l'amministratore)!

chfn: cambia il nome dell'utente e le altreinformazioni.

passwd: modifica la password.chsh: modifica l'interprete dei comandi.

Page 197: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

197

Esercizi (3 min.)7. Autenticatevi come studente. Eseguite i

comandi studenti sull'utente studente:chfnpasswdchsh

Verificate l'applicazione delle modifiche.

Page 198: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

198

GESTIONE DEI GRUPPI

Page 199: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

199

Scenario e domande(Come sono gestiti i gruppi? È possibile visionare le proprietà di un gruppo?)

Scenario: in un SO moderno (time sharing, multi-utente), un amministratore vuole creare, modificare, rimuovere gruppi.

Domande:Esistono strumenti per creare, modificare, rimuovere gruppi?Esistono strumenti per prendere visione delle caratteristiche di un gruppo?

Page 200: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

200

Creazione di un gruppo in Debian(Semplicissima, grazie al comando addgroup)

Debian GNU/Linux e derivate semplificano molto la procedura di creazione di un nuovo utente.È sufficiente eseguire il comando seguente da amministratore:

addgroup nome_gruppoAd esempio:

addgroup prove

Il comando addgroup è talmente semplice da non richiedere alcuna interattività.

Page 201: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

201

Il risultato del comando addgroup(Un gruppo nuovo di zecca)

Il risultato del comando addgroup è un gruppo nuovo di zecca (nel caso in questione, il gruppo di nome prove).

Page 202: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

202

Esercizi (1 min.)8. Create un nuovo gruppo di nome studenti.

Page 203: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

203

Una domanda spontanea(E sacrosanta!)

Nelle slide precedenti si è appurato che adduser e useradd creano un gruppo primario avente lo stesso nome dell'utente.Ad esempio:

adduser prova crea gruppo primario → prova (elo associa all'utente di nome prova).

Domanda: a che serve allora addgroup?

Page 204: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

204

La risposta(Altrettanto ovvia ed altrettanto sacrosanta!)

addgroup serve a creare gruppi che, in futuro:potranno essere associati ad un utente come gruppisecondari.potranno divenire nuovi gruppi primari di un utente.

Page 205: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

205

Analisi del gruppo(Visione del file /etc/group)

Aprite il file /etc/group e cercate il record relativo al gruppo di nome prove:

grep prove /etc/passwd

Dovreste ottenere il record seguente:

Page 206: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

206

Analisi del gruppo(Visione del file /etc/group)

Aprite il file /etc/group e cercate il record relativo al gruppo di nome prove:

grep prove /etc/passwd

Dovreste ottenere il record seguente:

Nomedel gruppo

Page 207: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

207

Analisi del gruppo(Visione del file /etc/group)

Aprite il file /etc/group e cercate il record relativo al gruppo di nome prove:

grep prove /etc/group

Dovreste ottenere il record seguente:

Password(celata all'utente)

Page 208: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

208

Analisi del gruppo(Visione del file /etc/group)

Aprite il file /etc/group e cercate il record relativo al gruppo di nome prove:

grep prove /etc/group

Dovreste ottenere il record seguente:

Identificatore gruppo(partono da 1000)

Page 209: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

209

Esercizi (1 min.)9. Identificate l'identificatore di gruppo del

gruppo studenti.

Page 210: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

210

Rimozione di un gruppo in Debian(Semplicissima, grazie al comando delgroup)

Debian GNU/Linux e derivate semplificano molto la procedura di rimozione di un gruppo esistente.È sufficiente eseguire il comando seguente da amministratore:

delgroup nome_gruppoAd esempio:

delgroup prove

Il comando delgroup non è interattivo (non ha bisogno di esserlo).

Page 211: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

211

Il risultato del comando delgroup(Group has been ripped off, just like Clint would)

Il risultato del comando delgroup è la rimozione completa del gruppo.

Cancellazione del gruppodalle lista dei gruppi.Cancellazione del gruppodall'elenco dei gruppi di ogniutente.

Page 212: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

212

Una osservazione ed una domanda(Potreste non trovare addgroup e delgroup in altri distribuzioni GNU/Linux)I due comandi addgroup e delgroup sono tipici delle distribuzioni Debian GNU/Linux e derivate.Con tutta probabilità non li troverete nelle altre distribuzioni GNU/Linux non basate su Debian.

La diaspora dei sistemi UNIX colpisce ancora…

La domanda nasce spontanea: quali comandi usano, allora, le altre distribuzioni GNU/Linux?

Page 213: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

213

I comandi groupadd e groupdel(Questi li trovate in tutte le distribuzioni GNU/Linux)

Le altre distribuzioni GNU/Linux usano i comandi groupadd e groupdel, analoghi dal punto di vista concettuale.

man groupadd e man groupdel per tutti idettagli.

Questi comandi presentano grossomodo le stesse difficoltà di addgroup e delgroup.

Page 214: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

214

Esercizi (1 min.)10. Provate a creare nuovamente il gruppo studenti, questa volta usando il comando groupadd.

Verificate la creazione del nuovo gruppo.

Page 215: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

215

Esercizi (1 min.)11. Provate a rimuovere nuovamente il gruppo studenti, questa volta usando il comando groupdel.

Verificate la rimozione del nuovo gruppo.

Page 216: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

216

Modifica di un gruppo esistente(Da parte dell'amministratore, tramite il comando groupmod)

Il comando groupmod permette di modificare le proprietà e le risorse di un gruppo esistente.La sintassi è semplice:

groupmod [opzioni] nome_gruppo

Che cosa è possibile modificare, esattamente?Nome gruppo, identificatore gruppo, password.

Page 217: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

217

Un esempio concreto(Proviamo a modificare alcune caratteristiche del gruppo prove)

Fate piazza pulita di un eventuale gruppo prove preesistente.

delgroup proveCreate nuovamente un gruppo prove:

addgroup proveProvate a cambiare il gruppo prove nel modo che segue.

Nome gruppo prove → prove2Identificatore gruppo 1001 → 1100

Page 218: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

218

Le opzioni di groupmod richieste(-n e -g)

Spulciando la pagina di manuale di groupmodman groupmod

dovreste individuare le opzioni seguenti.-n: cambia il nome del gruppo-g: cambia l'identificatore gruppo

Page 219: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

219

Il comando richiesto(Tutto sommato, abbastanza semplice da costruire)

Il comando richiesto è, in definitiva:groupmod -n prove2 -g 1100 prove

Provatelo!

Page 220: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

220

Esercizi (3 min.)12. Create un gruppo studenti (se non è già

esistente). Modificate le seguenti proprietà del gruppo:

Nome gruppo → studenti2Identificatore del gruppo → 1300

Verificate la corretta applicazione delle modifiche.

Page 221: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

221

Analisi dei gruppi di un utente(Da parte di amministratore o di un utente, tramite il comando groups)

Il comando groups mostra i gruppi di appartenenza di un utente. La sintassi è semplice:

groups [nome_di_login]

Se l'amministratore vuole vedere i gruppi di un utente, bisogna fornire il corrispettivo nome di login come parametro.Se un utente (incluso l'amministratore) vuole stampare i propri gruppi, può eseguire groups senza parametri.

Page 222: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

222

Alcuni esempi concreti(Stampiamo i gruppi di root)

Per stampare i gruppi dell'utente root, si diventa superutente e si esegue il comando groups:

su -groups

In generale, l'utente root è associato al solo gruppo root.

→ Non essendo root soggetto a restrizioni sull'accesso alle risorse, non ha bisogno di gruppi secondari che le definiscono.

Page 223: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

223

Alcuni esempi concreti(Stampiamo i gruppi dell'utente attivo sul vostro terminale)

Per stampare i gruppi dell'utente attivo (ad esempio, andreoli), si può procedere in due modi diversi.

Si diventa superutente e si esegue il comando groups andreoli:

su -groups andreoli

Si esegue groups da utente andreoli:groups

Page 224: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

224

Modifica dei gruppi di un utente(Da parte di amministratore, tramite diversi comandi)

Il SO mette a disposizione diversi comandi per modificare i gruppi di lavoro primario e secondari di un utente.

Perché tanti comandi per svolgere la stessa operazione?

Diaspora UNIX…

Page 225: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

225

Il comando usermod(Presente su tutti i sistemi UNIX; opzioni -g e -G)

Nei sistemi UNIX il comando usermod è usato per la modifica dei gruppi di lavoro primario e secondari.

Opzione -g nome_gruppo: specifica il nuovogruppo di lavoro primarioOpzione -G ng_1,ng_2,…: specifica il nuovol'insieme completo dei gruppi secondari

Page 226: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

226

Un esempio concreto(Assegniamo nuovi gruppi primario e secondari all'utente prova)

Proviamo ad assegnare all'utente prova i seguenti gruppi di lavoro primario e secondari.

Gruppo primario: root.Gruppi secondari: disk cdrom floppy audio.

I comandi richiesti sono i seguenti (da utente amministratore).

usermod -g root provausermod -G disk,cdrom,floppy,audio prova

Page 227: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

227

Esercizi (3 min.)13. Impostate i seguenti nuovi gruppi per l'utente studente.

Gruppo primario: root.Gruppi secondari: disk cdrom floppy audio dip video plugdev games netdev scanner bluetooth vboxsf.Verificate la corretta applicazione dei nuovi gruppi.

Page 228: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

228

BIG FAT WARNING(You have been warned)

L'opzione -G di usermod vuole l'elenco di tutti i gruppi di lavoro secondari.Se volete inserire un solo gruppo di lavoro secondario, dovete fornire sia lui sia tutti i gruppi secondari esistenti.Se scrivete -G nuovo_gruppo, tutti gli altri gruppi saranno cancellati!

Page 229: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

229

Esercizi (2 min.)14. Provate ad aggiungere un gruppo secondario root all'utente studente usando il seguente comando sbagliato:usermod -G root studente

Notate qualcosa di strano?

Page 230: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

230

Aggiunta di utenti(Comando usermod, opzioni -g e -a)

Per aggiungere gruppi secondari è necessario specificare anche l'opzione -a di usermod.Ad esempio, per aggiungere il gruppo secondario root all'utente prova:

usermod -a -G root prova

Verificate l'aggiunta del gruppo secondario con il comando:

groups prova

Page 231: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

231

Esercizi (2 min.)15. Aggiungete i seguenti gruppi all'utente studente:disk cdrom floppy audio dipvideo plugdev games netdevscanner bluetooth vboxsf

Page 232: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

232

Un altro comando per gestire gruppi(Il comando gpasswd)

Un comando alternativo per la gestione di gruppi utente è gpasswd.

man gpasswd per tutti i dettagli.

Per aggiungere un utente ad un gruppo:gpasswd -a nome_di_login gruppo

Per rimuovere un utente da un gruppo:gpasswd -d nome_di_login gruppo

Page 233: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

233

Alcuni esempi concreti(Comando gpasswd, opzioni -a e -d)

Per aggiungere il gruppo lp all'utente prova:gpasswd -a prova lp

Per rimuovere il gruppo lp dall'utente prova:gpasswd -d prova lp

Page 234: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

234

BIG FAT WARNING(You have been warned)

Provate a modificate uno o più gruppi di lavoro secondari dell'utente con cui siete collegati attualmente.

Le modifiche non sono visibili fino al prossimo login!

Page 235: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

235

Un esempio concreto(Aggiungiamoci ad un gruppo secondario e vediamo l'elenco dei gruppi)

Se, ad esempio, siete autenticati come utente andreoli, aggiungete il gruppo root all'elenco dei gruppi secondari:

gpasswd -a andreoli root

Da un altro terminale dell'utente andreoli, stampate l'elenco completo dei gruppi secondari:

groups → Il gruppo root non è ancora presente.

Page 236: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

236

GESTIONE DEI PERMESSI

Page 237: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

237

Scenario e domande(Come modificare i permessi di un file? Come vedere i permessi di un file?)

Scenario: in un SO moderno (time sharing, multi-utente), un utente vuole impostare impostare i permessi di accesso alle risorse.

Domande:Esistono strumenti per modificare i permessi di file e/o directory?Esistono strumenti per prendere visione dei permessi di un file?

Page 238: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

238

Visione degli attributi di un file(Comando ls, opzione -l)

L'opzione -l del comando ls mostra gli attributi principali di un file, tra cui quelli di interesse nella presente lezione.

Utente creatore del file.Gruppo del file.Permessi del file.

Ad esempio, create un file vuoto nella vostra home directory:

touch /home/andreoli/file.txtVisionatene I metadati:

ls -l /home/andreoli/file.txt

Page 239: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

239

Gli attributi di interesse(Creatore, gruppo, permessi)

Utente creatoredel file

Page 240: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

240

Gli attributi di interesse(Creatore, gruppo, permessi)

Gruppodel file

Page 241: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

241

Gli attributi di interesse(Creatore, gruppo, permessi)

Permessidel file

Page 242: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

242

Modifica dell'utente creatore(Comando chown)

Il comando chown modifica l'utente creatore di un file e/o di una directory. L'uso è semplice:

chown [OPZIONI] nome_di_login file

Ad esempio, per modificare il creatore del file file.txt da andreoli a root eseguite il seguente comando da amministratore:

chown root /home/andreoli/file.txt

Page 243: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

243

Modifica del gruppo del file(Comando chgrp)

Il comando chgrp modifica il gruppo di un file e/o di una directory. L'uso è semplice:

chgrp [OPZIONI] nome_gruppo file

Ad esempio, per modificare il gruppo del file file.txt da andreoli a root eseguite il seguente comando da amministratore:

chgrp root /home/andreoli/file.txt

Page 244: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

244

Modifica di utente creatore e gruppo (Comando chown, primo argomento del tipo utente:gruppo)

Il comando chown fornisce una scorciatoia per impostare simultaneamente utente creatore e gruppo di un file.È sufficiente specificare il primo argomento con una stringa nome_di_login:gruppo.

chown nome_di_login:gruppo file

Page 245: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

245

Un esempio concreto(Modifichiamo simultaneamente utente creatore e gruppo di file.txt)

Ad esempio, per modificare simultaneamente le seguenti modifiche sul file di testo di nome /home/andreoli/file.txt:

utente creatore → andreoligruppo del file → andreoli

è possibile usare il solo comando chown:chown andreoli:andreoli /home/andreoli/file.txt

Page 246: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

246

Cambio ricorsivo di utente e/o gruppo(Comandi chown e chgrp, opzione -R)

L'opzione -R di chown e chgrp opera ricorsivamente su una directory.Ad esempio, per impostare utente e gruppo alla coppia andreoli:andreoli per tutti i file e le sottodirectory contenute in /home/andreoli, potete scrivere:

chown -R andreoli:andreoli /home/andreoli

Page 247: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

247

Esercizi (2 min.)16. Create un file vuoto dal nome lista.txt

nella vostra home directory. Cambiate utente creatore e gruppo di lista.txt nel modo seguente:

utente creatore → rootgruppo del file → root

Verificate la corretta applicazione degli attributi utente creatore e gruppo del file.

Page 248: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

248

Modifica dei permessi del file(Comando chmod)

Il comando chmod modifica i permessi del file. L'uso è meno semplice dei comandi precedenti:

chmod [OPZIONI] permessi file

Page 249: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

249

Rappresentazioni dei permessi(Comprese dal comando chmod)

Il comando chmod comprende due distinte rappresentazioni dei permessi.Rappresentazione testuale. I permessi da applicare ad un file/directory sono rappresentati tramite una stringa.Rappresentazione ottale. I permessi da applicare ad un file/directory sono rappresentati tramite un numero in base 8 (ottale).

Page 250: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

250

Rappresentazione testuale(Molto simile alla rappresentazione dei permessi fornita da ls)

Nella rappresentazione testuale, chmod accetta una o più stringhe di permessi separate da una virgola:

str1,str2,…,strnCiascuna stringa di permessi ha il formato seguente:

insieme_di_utenti±insieme_di_permessi

Il simbolo ± indica la presenza di un + (aggiunta) o di un – (rimozione).

Page 251: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

251

Insieme degli utenti(Specifica su quale insieme di utenti vale il permesso)

L'insieme degli utenti è una stringa composta dai caratteri u, g, o, a.

u → I permessi si applicano all'utente creatore.g → I permessi si applicano al gruppo del file.o → I permessi si applicano ai restanti utenti.a → I permessi si applicano a tutti gli utenti.

Page 252: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

252

Esempi di insiemi degli utenti(Tanto per (non) chiarire le idee)

ugo → tutti gli utenti del sistema.a → tutti gli utenti del sistema.go → gli utenti appartenenti al gruppo del file

Eil resto del mondo

Page 253: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

253

Insieme dei permessi(Specifica i permessi associati ad un insieme di utenti)

L'insieme dei permessi è una stringa composta dai caratteri r, w, x, s.

r → Si applica il permesso di lettura.w → Si applica il permesso di scrittura.x → Si applica il permesso di esecuzione (file)

Odi ingresso (directory)

s → Si applica il bit setuid/setgid

OCCHIO! L'insieme presentato è semplificato al minimo indispensabile.

Page 254: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

254

Esempi di permessi(Tanto per (non) chiarire le idee)

rwx → lettura, scrittura, esecuzionerw → lettura, scritturarx → lettura, esecuzionerws → lettura, scrittura, esecuzione setuid/setgid

Page 255: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

255

Esempio di esecuzione di chmod(Con permessi in rappresentazione testuale)

Supponiate di voler assegnare al file di testo /home/andreoli/file.txt il seguente insieme di permessi: rw-rw-r--.Costruiamo insieme le stringhe dei permessi.

Permessi di lettura e scrittura per l'utente creatore eper gli utenti appartenenti al gruppo del file: ug+rw.Permessi di lettura per gli altri utenti: o+r.

Il comando richiesto è, pertanto:chmod ug+rw,o+r /home/andreoli/file.txt

Page 256: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

256

Esercizi (3 min.)17. Create un file vuoto dal nome lista.txt

nella vostra home directory. Usando chmod con rappresentazione testuale dei permessi, impostate i permessi seguenti sul file:rwxr-xr-x

Verificate la corretta applicazione dei permessi.

Page 257: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

257

Rappresentazione ottale(Molto diversa dalla rappresentazione dei permessi fornita da ls)

Nella rappresentazione ottale, chmod accetta un numero intero rappresentato in base ottale.

Il numero può essere lungo da una a quattro cifre. Se le cifre sono meno di quattro, si assumono degli zeri.Ad esempio: 4 0004, 755 0755.→ →

Page 258: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

258

Insieme degli utenti(Specifica su quale insieme di utenti vale il permesso)

Si consideri un insieme di permessi 0755.

Seconda cifra (7) → insieme di permessi per l'utente creatore.

Terza cifra (5) →insieme di permessi per gli utenti appartenenti al gruppo del file.

Quarta cifra (5) → insieme di permessi per tutti gli altri utenti.

Page 259: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

259

Insieme dei permessi(Specifica i permessi associati ad un insieme di utenti)

Si consideri un insieme di permessi 0755.L'insieme dei permessi è un numero intero lungo 4 bit (da 0 a 7), ottenibile sommando i numeri 0, 1, 2, 4.

0 → nessun permesso.4 → Si applica il permesso di lettura.2 → Si applica il permesso di scrittura.1 → Si applica il permesso di esecuzione (file)

Odi ingresso (directory)

Page 260: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

260

Esempi di permessi(Tanto per (non) chiarire le idee)

7 → lettura, scrittura, esecuzione6 → lettura, scrittura5 → lettura, esecuzione4 -> lettura2 → scrittura1 → esecuzione

Page 261: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

261

Permessi setuid/setgid(Prima cifra del numero in ottale)

Si consideri un insieme di permessi 0755. Il valore della prima cifra stabilisce ulteriori permessi (setuid/setgid).

Prima cifra = 4 → È impostato il bit setuid.

Prima cifra = 2 → È impostato il bit setgid.

Prima cifra = 1 → È impostato lo sticky bit (non trattato in questo corso).

Prima cifra = 0 → Non è impostato nient'altro.

Page 262: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

262

Esempio di esecuzione di chmod(Con permessi in rappresentazione ottale)

Supponiate di voler assegnare al file di testo /home/andreoli/file.txt il seguente insieme di permessi: rw-rw-r--.Costruiamo insieme il numero in base ottale.

Page 263: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

263

Esempio di esecuzione di chmod(Con permessi in rappresentazione ottale)

Permessi di lettura e scrittura per l'utente creatore:seconda cifra impostata a 4+2 = 6.Permessi di lettura e scrittura per tutti gli utentiappartenenti al gruppo del file: terza cifra impostata a 4+2 = 6.Permessi di lettura per gli altri utenti: quarta cifra impostata a 4.Assenza di bit setuid/setgid: prima cifra impostata a 0.Il comando richiesto è, pertanto:

chmod 0664 /home/andreoli/file.txt

Page 264: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

264

Esercizi (3 min.)18. Create un file vuoto dal nome lista.txt

nella vostra home directory. Usando chmod con rappresentazione ottale dei permessi, impostate i permessi seguenti sul file:rwsr-xr-x

Verificate la corretta applicazione dei permessi.

Page 265: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

265

Uso di risorse hardware(Tramite l'aggiunta in gruppi opportuni)

Le risorse hardware (tipicamente, periferiche) sono accedute tramite file speciali presenti nella directory /dev.Esempio (già visto):

file speciale /dev/sda primo disco rigido SATA.→

L'accesso a /dev/sda è mediato da opportuni permessi.

Quali sono? Un utente normale li possiede già?Di quale gruppo è richiesta l'appartenenza?

Page 266: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

266

Visione degli attributi di /dev/sda(Per capire quali permessi è necessario presentare)

Per vedere gli attributi del file speciale /dev/sda potete digitare il comando:

ls -l /dev/sdaSi ottiene un output del genere:

Page 267: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

267

Quali permessi servono?(Per leggere /dev/sda)

Per leggere /dev/sda da utente normale è necessario presentare le credenziali seguenti.

Esserel'utente root

Far parte delgruppo disk

→ Per un utente normale, l'unico modo per leggere /dev/sda è quello di inserirsi nel gruppo disk.

Page 268: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

268

Aggiunta del gruppo all'utente(Facile, una volta che si conosce il gruppo)

L'accesso diretto al file fallisce. Se digitate:less -Mr -f /dev/sda

il SO risponderà con un messaggio del tipo “Permesso Negato”.Provate ad aggiungervi al gruppo disk, scrivendo il comando seguente da utente root (modificate il nome di login andreoli con il nome di login del vostro utente):

gpasswd -a andreoli disk

Page 269: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

269

Lettura del disco a basso livello(Richiede un nuovo login utente)

L'aggiunta del gruppo diventa operativa ad un nuovo login. Uscite dalla sessione grafica ed autenticatevi nuovamente.In seguito, verificate di essere nel gruppo disk:

groupsL'output dovrebbe contenere la stringa disk.Provate a leggere il disco:

less -Mr -f /dev/sdaDovreste vedere il contenuto del disco in formato ASCII.

Page 270: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

270

La maschera dei permessi(Process umask)

Nei sistemi UNIX, il descrittore dei processi contiene un campo specifico detto maschera dei permessi (process umask, umask).La maschera dei permessi è un insieme di permessi usato per calcolare il permesso iniziale di un file/directory:

permesso iniziale = permesso imposto – mascheraMotivazione: misura di sicurezza (si limitano i permessi assegnati inizialmente al file).

→ Principio del minimo privilegio…

Page 271: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

271

Un esempio di applicazione(Semplice semplice)

Ad esempio, se l'utente apre un file in scrittura con un permesso iniziale di rwxrwxrwx e la maschera dei permessi è pari a ----w--w-, il permesso effettivo iniziale del file diventa:

rwxrwxrwx - ----w--w- = rwxr-xr-x

In tal modo, si evita la proliferazione di file con permessi rwxrwxrwx.

Page 272: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

272

Gestione della maschera dei permessi(Il comando umask)

Il comando builtin umask gestisce la maschera dei permessi. Se lanciato senza argomenti, ritorna il valore corrente della maschera.

umaskUn valore consueto della maschera è 0022 (si tolgono le scritture ad ogni utente non creatore).Fornendo come argomento un permesso ottale, è possibile modificare la maschera per la sessione di terminale attiva.

OCCHIO! La modifica non è permanente!

Page 273: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

273

Un piccolo esperimento(Analisi del comando touch)

Proviamo a tracciare con strace l'esecuzione di un comando che crea un file vuoto. Siamo interessati alla chiamata di sistema open() che crea il file con permessi specifici.

strace -e open touch file_vuoto.txtL'output contiene la riga seguente.

Page 274: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

274

Analisi di open()(Vuole aprire il file con permessi rw-rw-rw-)

Nomedel file

Accessoin scrittura

File creatose non esiste

File non è unterminale di

controllo

Le operazionidi I/O sono

non bloccanti

Permessirw-rw-rw-

touch vuole aprire un file in scritturacon permessi rw-rw-rw-

Page 275: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

275

Lettura degli attributi del file(Il comando ls -l mostra una apparente inesattezza)

Tuttavia, leggendo gli attributi del file:ls -l file_vuoto.txt

si nota che i permessi del file appena creato sono diversi: rw-r—r--.

Domanda: dove sono finite le w per il gruppo e per gli altri utenti?Risposta: le ha filtrate la maschera dei permessi!

Page 276: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

276

Una ipotesi ragionata(Maschera dei permessi = 0 Permessi del file creato da touch = → rw-rw-rw)

Ipotesi: se si imposta la maschera dei permessi nulla, il file creato da touch avrà i permessi (non filtrati) rw-rw-rw-.

Page 277: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

277

Verifica dell'ipotesi(Il comando umask con un argomento: insieme di permessi in ottale)

Impostate una maschera nulla dei permessi (0000 o 0) sul terminale corrente, digitando:

umask 0Cancellate e create nuovamente il file vuoto:

rm file_nuovo.txttouch file_vuoto.txt

Leggete i suoi attributi:ls -l file_vuoto.txt

Il file ha permessi rw-rw-rw-.

Page 278: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

278

Esercizi (3 min.)19. Quale maschera dei permessi dovete

impostare per creare nuovi file con permessi nulli sul gruppo e sugli altri utenti?

Esempio: apro un file in scrittura con permessi rw-rw-rw-, viene creato su disco un file con permessi rw-------.

Verificate la correttezza della maschera impostata.

Page 279: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

279

GESTIONE DELLE ACL

Page 280: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

280

Liste di controllo degli accessi(Ne esistono di due tipi: per file e per directory)

GNU/Linux offre il supporto per le liste di controllo degli accessi. Esistono due tipi di liste.

ACL di file. Sono associate a file. Descrivono i permessi di quel file.ACL di default. Sono associate a directory. Descrivono i permessi di default che avranno i file nella directory.

Page 281: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

281

Elenco delle ACL di un file(Il comando getfacl)

Il comando getfacl (contenuto nel pacchetto software acl) stampa l'ACL di un file/directory.Creiamo un file di testo vuoto e stampiamo la sua ACL.

touch documento.txtgetfacl documento.txt

Page 282: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

282

La lista in dettaglio(L'output del comando getfacl sul file documento.txt)

Le linee che iniziano con il carattere #contengono commenti (qui, informazionisul nome del file, il creatore, il gruppo).Permessi per l'utente creatore (rw-).Permessi per gli utenti appartenenti algruppo del file (r--).Permessi per tutti gli altri utenti (r--).L'ACL è presentata in un

formato lungo.Una riga=un permesso.

Formato permessi: stringainsieme_utenti:identificatore:permessi

Page 283: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

283

Una osservazione(Il file documento.txt non sembra avere permessi diversi da quelli usuali)

Osservando bene l'ACL, non si notano permessi diversi da quelli solitamente assegnati ad un file.

C'è un permesso per l'utente creatore.C'è un permesso per gli utenti appartenenti algruppo del file.C'è un permesso per tutti gli altri utenti.

L'ACL mostra anche i permessi standard UNIX.

Page 284: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

284

Come riconoscere un file con ACL?(ls mostra il carattere + dopo la stringa dei permessi)

Come riconoscere un file su cui sono state imposte restrizioni ulteriori tramite ACL?Il comando ls mostra il carattere + dopo la stringa dei permessi.Ad esempio: rw-r—r--+.Il file documento.txt ha ACL ulteriori?

ls -l documento.txt

Manca il + non sono imposte restrizioni ulteriori→

Page 285: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

285

Impostazione di una ACL(Comando setfacl, opzione -m)

Il comando setfacl modifica l'ACL di un file o di una directory. Nello specifico, l'opzione -m riceve in ingresso una rappresentazione compatta di modifiche ad una ACL, da applicare ai file passati come argomento.

setfacl -m perm1,perm2,…,permn file …

Page 286: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

286

Il formato breve di una ACL(La rappresentazione “compatta” della ACL)

L'argomento dell'opzione -m è una ACL in formato breve.

Tutta l'ACL è contenuta in una riga.Elenco di permessi separati da virgola.

Il formato di un permesso è sempre lo stesso:insieme_utenti:identificatore:permessi

Insieme utenti: u (utente), g (gruppo).Identificatore: nome utente/gruppo.

Page 287: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

287

Un esempio concreto(Rendiamo documento.txt leggibile dagli utenti nel gruppo studenti)

Proviamo ad impostare il permesso di sola lettura per ciascun utente nel gruppo studenti.Costruiamo insieme l'ACL.L'ACL è formata da un solo permesso:

sola lettura per gli utenti nel gruppo studenti.Insieme utenti → g.Identificatore → studenti.Permessi → r.Il comando richiesto è:

setfacl -m g:studenti:r documento.txt

Page 288: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

288

Controllo della nuova ACL(Rendiamo documento.txt leggibile dagli utenti nel gruppo studenti)

Controlliamo la nuova ACL con il comando getfacl.

getfacl /home/andreoli/documento.txtSi ottiene l'ACL seguente.

Gli utenti nel gruppo studenti possonoleggere (r--) documento.txt.

Page 289: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

289

Aggiunta di una ulteriore restrizione(Rendiamo documento.txt leggibile e scrivibile dagli utenti in docenti)

Create un gruppo docenti:addgroup docenti

Impostate il permesso di lettura e scrittura per gli utenti nel gruppo docenti.

setfacl -m g:docenti:rw documento.txtSi ottiene l'ACL seguente.

Gli utenti nel gruppo docenti possonoleggere e scrivere (rw-) documento.txt.

Page 290: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

290

Una domanda importante(Si riescono ad implementare queste restrizioni con i permessi UNIX?)

Una domanda importante è d'obbligo.Si riescono ad implementare le restrizioni di accesso ora viste con lo schema dei permessi?Se sì, quanto è comodo implementarle?

La risposta alla prima domanda è: nì.La risposta alla seconda domanda è: non è molto comodo.

Page 291: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

291

Cosa bisogna fare?(Come “per fare cosa”? Per implementare lo schema con i permessi UNIX)

Bisogna prevedere:accessi in sola lettura per un insieme di utenti(gruppo studenti).accessi in lettura e scrittura per un altro insieme diutenti (gruppo docenti).

Page 292: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

292

Un tentativo di soluzione(File documento.txt con gruppo studenti; permessi r-- al gruppo)

Si associa il file documento.txt al gruppo studenti e si pone il permesso del gruppo a r--.

E i docenti? Si fa in modo che non siano creatori del file e che non siano nel gruppo studenti. Pertanto, accedono al file con i permessi del “resto del mondo”.

→ Si pone rw- il permesso del “resto del mondo”.

Page 293: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

293

Svantaggio della soluzione proposta(Cani e porci possono scrivere su documento.txt)

Il “resto del mondo” non è un gruppo controllabile.

Ci finiscono automaticamente tutti gli utenti che nonsono il creatore di documento.txt e non sono nelgruppo di lavoro studenti.Più persone di quelle preventivate possono accederea documento.txt in lettura e scrittura.

→ No good.

Page 294: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

294

Un altro tentativo di soluzione(File documento.txt con gruppo docenti; permessi rw- al gruppo)

Si associa il file documento.txt al gruppo docenti e si pone il permesso del gruppo a rw-.

E gli studenti? Si fa in modo che non siano creatori del file e che non siano nel gruppo docenti. Pertanto, accedono al file con i permessi del “resto del mondo”.

→ Si pone r-- il permesso del “resto del mondo”.

Page 295: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

295

Confronto con la soluzione precedente(documento.txt non è più scrivibile da cani e porci)

La soluzione ora proposta è migliore della precedente.Ora il “resto del mondo” può solo leggere il file documento.txt.

→ Utenti arbitrari non possono più sovrascrivere il file.

Page 296: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

296

Un problema insormontabile(Ci sono dei pro e dei contro)

I due grandi insiemi di utenti disponibiligli utenti appartenenti al gruppo del fileil “resto del mondo”

sono ora entrambi prenotati.

E se si volesse negare ad un terzo insieme di utenti anche l'accesso in lettura?

→ Non si può fare (preservando i permessi di accesso rw- ai docenti e r-- agli studenti).Non ci credete? Provate a farlo!

Page 297: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

297

Come risolvere il problema con le ACL?(Si aggiunge una ulteriore restrizione; sic et simplicter!)

Come si può superare questa difficoltà con le ACL?Basta impostare permessi nulli di accesso (---) ad un gruppo designato di utenti (ad esempio, esterni).

addgroup esternisetfacl -m g:esterni:--- documento.txt

Et voilà!

Page 298: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

298

Esercizi (3 min.)20. Create un documento vuoto dal nome report.txt. Impostate l'ACL seguente:

utente creatore → rwxutente admin → rwxgruppo del file → r-xgruppo lavoratori → rw-resto del mondo → r--

Create utenti e gruppi non presenti.Verificate la correttezza dell'ACL.

Page 299: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

299

Cancellazione elementi di una ACL(Comando setfacl, opzione -x)

L'opzione -x del comando setfacl rimuove una o più righe dalla ACL. L'argomento dell'opzione -x è la rappresentazione compatta di una o più righe di una ACL:

setfacl -x riga1,riga2,…,rigan file …

Page 300: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

300

La rappresentazione delle righe(Da rimuovere)

Il formato delle righe è molto simile al formato delle ACL brevi. Manca il campo dei permessi.

insieme_utenti:identificatore

Insieme utenti: u (utente), g (gruppo).Identificatore: nome utente/gruppo.

Page 301: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

301

Un esempio concreto(Rimuoviamo da documento.txt la riga ACL relativa agli studenti)

Proviamo a rimuovere nel file documento.txt la restrizione imposta al gruppo studenti.La rappresentazione della riga è:

insieme utenti → g.identificatore → studenti.

Il comando richiesto è:setfacl -x g:studenti documento.txt

Page 302: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

302

Esercizi (2 min.)21. Con riferimento al file report.txt,

rimuovete la restrizione sul gruppo di nome lavoratori.

Verificate la correttezza della nuova ACL.

Page 303: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

303

La maschera di una ACL(Definisce il massimo permesso garantito ad utenti e gruppi)

Una ACL può contenere un elemento di nome maschera.

Se l'ACL contiene restrizioni ulteriori rispetto a quellestandard, la maschera è obbligatoria.

Tale elemento definisce il massimo permesso assegnabile ad un utente o un gruppo.

Page 304: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

304

Algoritmo di controllo dei permessi(Rivisited with masks)

Se l'utente effettivo presentato da un processo corrisponde ad una restrizione su un utente non creatore nella ACL:

→ permesso assegnato al processo =permessi della restrizioneANDpermessi della maschera

Idem per il gruppo effettivo ed una restrizione su un gruppo non primario.

Page 305: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

305

L'operatore AND in azione(Notate la restrizione del permesso accordato; ricorda umask)

Permesso associato alla restrizione: rwx.Maschera della ACL: r-x.Permesso accordato: rwx AND r-x = r-x.

La maschera è uno strumento utile per la riduzione dei permessi di accesso.

Page 306: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

306

Modifica della maschera(Per ridurre i permessi di accesso ad un file/directory)

La maschera è accessibile tramite l'insieme utenti di nome m. Per impostarla al valore r-- per il file documento.txt, potete digitare il comando seguente:

setfacl -m m::r-- documento.txt

Page 307: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

307

Lettura della ACL(L'effetto della maschera è comunicato tramite un commento)

Leggete l'ACL del file documento.txt con il comando getfacl:

getfacl documento.txt

La mascheraè cambiata

Per il gruppo docenti, il permesso accordatoal processo (r--) differisce da quello scrittonella restrizione (rw-). La maschera è all'opera.

Page 308: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

308

Esercizi (5 min.)22. Create un utente docente. Create un gruppo docenti. Inserite l'utente docente nel gruppo docenti.

Usando un'utenza diversa da docente, create un file /tmp/documento.txt ed impostate l'ACL seguente:

gruppo docenti → rw-maschera → r--

Diventate utente docente. Provate ad accedere in scrittura al file /tmp/documento.txt. Ci riuscite o no? Che cosa è successo?

Page 309: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

309

ACL di default(Specifica i permessi di default di file e directory in un sottoalbero)

Una ACL di default è associata ad una directory DIR. Essa specifica quali permessi di default saranno associati a file e directory contenuti nella directory DIR.

Per gestire una ACL di default è necessario aggiungere l'opzione -d ai comandi getfacl e setfacl visti in precedenza.

Page 310: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

310

Impostazione di ACL in una directory(Comandi mkdir e setfacl -d)

Create una directory di nome directory:mkdir directory

È possibile impostare una ACL qualunque; ad esempio, lettura e scrittura (rw-) per gli utenti nel gruppo docenti:

setfacl -d -m g:docenti:rw- directory

Page 311: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

311

Visione della ACL in una directory(Comando getfacl -d)

Per vedere l'ACL della directory di nome directory si usa il comando getfacl con l'opzione -d:

getfacl -d directory

Queste sono le restrizioni classichesulla directory imposte tramite ilmeccanismo dei permessi UNIX.

Queste sono le restrizioni di defaultdella directory.

Page 312: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

312

Visione della ACL in una directory(Comando getfacl -d)

Per vedere l'ACL della directory di nome directory si usa il comando getfacl con l'opzione -d:

getfacl -d directory

Queste restrizioni di default sono lacopia esatta delle restrizioni impostetramite i permessi.

Page 313: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

313

Visione della ACL in una directory(Comando getfacl -d)

Per vedere l'ACL della directory di nome directory si usa il comando getfacl con l'opzione -d:

getfacl -d directory

Questa è la maschera. Se non èimpostata esplicitamente, assumeil valore rwx.

Page 314: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

314

Visione della ACL in una directory(Comando getfacl -d)

Per vedere l'ACL della directory di nome directory si usa il comando getfacl con l'opzione -d:

getfacl -d directory

Questa è la restrizione impostadall'utente sul gruppo docentitramite il comando setfacl.

Page 315: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

315

Effetto delle ACL di default(Su una sottodirectory)

Come impatta la presenza di una ACL di default nella directory di nome directory sulla creazione di una sua sottodirectory?

→ La sottodirectory eredita l'ACL di default.E così le sue sottodirectory, e così via.

Page 316: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

316

Un esempio(Creiamo una sottodirectory subdir e leggiamo la sua ACL di default)

Entrate nella directory di nome directory e create una sottodirectory di nome subdir:

cd directorymkdir subdir

Recuperate l'ACL di default di subdir:getfacl -d subdir

Confrontate le ACL di default di directory e di subdir. Che cosa notate?

Page 317: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

317

Il confronto(ACL directory vs. ACL subdir)

Le due ACL sono IDENTICHE!

Page 318: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

318

Effetto delle ACL di default(Su un file nella directory)

Come impatta la presenza di una ACL di default nella directory di nome directory sulla creazione di un file al suo interno?

Purtroppo le cose non sono così semplici come nel caso della sottodirectory.

Page 319: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

319

Eredità della ACL di default(L'ACL del file diventa inizialmente l'ACL di default della directory)

Il passo iniziale è chiaro: viene costruita una ACL iniziale del file con gli esatti contenuti dell'ACL di default della directory.

L'ACL così creata è modificata in alcuni suoi elementi, per produrre l'ACL finale del file.Elementi modificati:

utente creatore, gruppo del file, altri utenti, maschera.Elementi non modificati:

le restrizioni aggiuntive mediante setfacl.

Page 320: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

320

Modifiche alla ACL del file(Elemento “utente creatore”)

I permessi dell'utente creatore nella versione finale dell'ACL del file sono l'AND di due contributi.Permessi utente creatore=

permessi utente con cui il processo vuole creare il fileANDpermessi utente dell'ACL del file ereditati dall'ACL didefault.

Page 321: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

321

Esempio(Elemento “utente creatore”)

Il processo vuole creare un file con permessi utente rwx.L'ACL ha un elemento dell'utente creatore con permessi rw-.

→ Il permesso utente finale del file èrwx AND rw- = rw-.

Page 322: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

322

Modifiche alla ACL del file(Elemento “maschera”)

Se la directory madre del file ha un elemento maschera, i permessi della maschera nella versione finale dell'ACL del file sono l'AND di due contributi.Permessi maschera =

permessi gruppo con cui il processo vuole creare il fileANDpermessi maschera dell'ACL del file ereditati dall'ACLdi default.

Page 323: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

323

Modifiche alla ACL del file(Elemento “maschera”)

INOLTRE, SOLO IN QUESTO SPECIFICO CASO NON SI MODIFICANO I PERMESSI FINALI DEL GRUPPO NELL'ACL DEL FILE!

I PERMESSI DEL GRUPPO NELL'ACL FINALE DEL FILE RIMANGONO QUELLI EREDITATI DALLA ACL DI DEFAULT DELLA DIRECTORY.

Page 324: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

324

Esempio(Elemento “maschera”)

Il processo vuole creare un file con permessi gruppo rw-.L'ACL ha un elemento maschera con permessir-x.

→ La maschera finale del file èrw- AND r-x = r--.

Page 325: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

325

Modifiche alla ACL del file(Elemento “gruppo del file”)

Se il file non ha ereditato una maschera dalla directory madre, i permessi del gruppo nella versione finale dell'ACL del file sono l'AND di due contributi.Permessi gruppo =

permessi gruppo con cui il processo vuole creare il fileANDpermessi gruppo dell'ACL del file ereditati dall'ACL didefault.

Page 326: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

326

Esempio(Elemento “gruppo del file”)

Il processo vuole creare un file con permessi gruppo rw-.L'ACL ha un elemento per il gruppo del file con permessi r-x.

→ Il gruppo finale del file èrw- AND r-x = r--.

Page 327: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

327

Modifiche alla ACL del file(Elemento “gli altri utenti”)

I permessi degli altri utenti nella versione finale dell'ACL del file sono l'AND di due contributi.Permessi altri utenti=

permessi altri utenti con cui il processo vuole creare ilfileANDpermessi altri utenti dell'ACL del file ereditati dall'ACLdi default.

Page 328: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

328

Esempio(Elemento “gli altri utenti”)

Il processo vuole creare un file con permessi per gli altri utenti r--.L'ACL ha un elemento per gli altri utenti con permessi r--.

→ Il permesso finale degli altri utenti del file èr-- AND r-- = r--.

Page 329: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

329

Domanda da 1M USD(Domanda pertinente ed ovvia)

Perché se il file eredita un elemento maschera dalla directory madre non viene aggiornato l'elemento “gruppo del file” nella ACL risultante?

Page 330: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

330

Risposta(Per niente ovvia; si spera pertinente)

Come avete già avuto modo di apprezzare, la maschera del file riduce i permessi accordati al processo in fase di accesso al file.

In realtà, la maschera ha anche un secondo ruolo: limita i permessi iniziali di un file in fase di creazione!

Principio del minimo privilegio…

Page 331: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

331

Risposta(Per niente ovvia; si spera pertinente)

Quando un processo crea un file, suggerisce delle permessi di creazione (utente, gruppo, altri utenti).Il processo non presenta una maschera, perché non è prevista nello schema standard dei permessi.Tuttavia, l'ACL del file deve avere una maschera inizializzata in qualche modo.Come risolvere questo problema?

Page 332: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

332

Risposta(Per niente ovvia; si spera pertinente)

Il file potrebbe benissimo ereditare la maschera dalla directory madre e finirla lì.Che succede, però, se la maschera ereditata dalla directory madre è rwx?La maschera è troppo ampia; non filtra nulla.

→ Ciò contraddice il principio del minimo privilegio.Come ridurre automaticamente una maschera troppo ampia?

Page 333: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

333

Risposta(Per niente ovvia; si spera pertinente)

Solitamente, quando un processo apre un file, imposta permessi minori di rwx, in special modo sulle classi di utenti “gruppo” e “resto del mondo”.

Prendete ad esempio il comando touch; richiedepermessi rw-rw-rw-.Il gruppo ha permessi rw-, così come tutti gli altriutenti che non siano il creatore.

In linea di massima, i programmi di sistema UNIX sono molto parchi in termini di permessi assegnati ai file.

Page 334: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

334

Risposta(Per niente ovvia; si spera pertinente)

IDEA: visto che i permessi del gruppo sono generalmente limitati in fase di creazione, si potrebbe pensare di limitare la maschera al più a tali permessi.In tal modo, se un processo crea un file con permessi rw-, la maschera non dovrebbe avere permessi più ampi di rw-.

Page 335: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

335

Risposta(Per niente ovvia; si spera pertinente)

CONSEGUENZE (paranoiche).Il SO mitiga l'effetto sciagurato di una maschera rwx posto sulla directory madre.

Maschera che non filtrerebbe un bel niente.

La maschera è ridotta ad un valore sensato.Se il processo vuole creare un file con permessi rw-sul gruppo, almeno inizialmente questi permessi sonoreputati sufficienti.La maschera fa passare i permessi rw-, ma non di più.

Page 336: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

336

I'm gettin' paranoid(just like Quincy)

Page 337: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

337

Esercizi (3 min.)23. Create una directory di nome directory.

Assegnate l'ACL seguente alla directory:gruppo docenti permessi → rw-

Entrate nella directory e create un nuovo file vuoto di nome prova.txt, usando il comando touch.

Perché la maschera del file ha permessi rw-?Perché il gruppo del file ha permessi r-x?

Page 338: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

338

ELEVAZIONE DEI PRIVILEGI

Page 339: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

339

Scenario e domande(Come sono gestiti i gruppi? È possibile visionare le proprietà di un gruppo?)

Scenario: in un SO moderno (time sharing, multi-utente), un amministratore vuole eseguire comandi con privilegi modificati.

Domande:Esistono strumenti per eseguire comandi con privilegi modificati?Esistono strumenti per prendere visione dei privilegi di un utente?

Page 340: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

340

Visione degli identificatori(Il comando id)

Il comando id stampa gli identificatori utente, di gruppo primario e dei gruppi secondari per uno specifico utente. L'uso è molto semplice.

id [OPZIONI]… [UTENTE]

Se usato senza argomenti, id considera l'utente attivo sul terminale. Altrimenti, si considera l'utente specificato come argomento.

Page 341: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

341

Esercizi (1 min.)

24. Stampate tutti gli identificatori:dell'utente attivo sul vostro terminale;dell'utente root.

Page 342: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

342

Esecuzione di una shell(Come utente root)

Il comando su esegue comandi generici con le credenziali di un altro utente.Nel suo uso più semplice, su non richiede né opzioni, né argomenti:

su

In tale scenario, il SO assume che:l'utente in cui ci si voglia trasformare sia root;il comando che si voglia eseguire sia l'interprete didefault (solitamente, /bin/bash).

Page 343: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

343

BIG FAT WARNING(You have been warned)

Se non si specifica altro, il comando su non carica le variabili di ambiente del nuovo utente.Le applicazioni che leggono queste variabili potrebbero confondersi.

Page 344: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

344

Esercizi (1 min.)25. Diventate root. Stampate le variabili di

ambiente con il comando export.

Notate qualcosa di strano?

Page 345: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

345

Caricamento del nuovo ambiente(Comando su, opzione --login)

Per caricare l'ambiente è necessario usare l'opzione --login di id.I seguenti comandi sono equivalenti:

su --loginsu -lsu -

Ad esempio, per diventare root e caricare il suo ambiente, dovete digitare il comando seguente:

su -

Page 346: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

346

Esercizi (2 min.)26. Diventate root, caricando in memoria il suo

ambiente. Stampate le variabili di ambiente con il comando export. Confrontate l'output attuale con quello dell'esercizio precedente.

Notate qualcosa di strano?

Page 347: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

347

Esecuzione di una shell(Come un altro utente specifico)

È possile diventare un altro utente specifico, passando il suo nome di login come argomento di su.Ad esempio, per lanciare una shell come utente docente (e caricare il suo ambiente):

su - docente

Page 348: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

348

Esercizi (1 min.)27. Lanciate una shell da utente studente.

Page 349: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

349

Esecuzione di un comando generico(Come un utente specifico)

È possile lanciare non solo una shell, bensì un comando specifico. Il comando è specificato come argomento dell'opzione -c di su.

Ad esempio, per lanciare il comando top come utente docente, potete scrivere:

su -c top – docente

Page 350: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

350

Esecuzione di un comando generico(Come un utente specifico)

Se il comando è complesso (ossia, contiene a sua volta opzioni e argomenti) va scritto fra virgolette. Ad esempio, se volete eseguire il comando pidstat -u 1, dovete scrivere il comando: su -c “pidstat -u 1” – docente

Page 351: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

351

Esercizi (1 min.)28. Lanciate da utente studente un comando

che mostri i file nascosti nella sua home directory.

Page 352: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

352

Una domanda (im)pertinente(Di quelle che fanno guadagnare punti bonus)

È possibile eseguire comandi come un altro utente. Tuttavia, è necessario conoscere le credenziali dell'altro utente.

È possibile eseguire comandi come un altro utente senza dover conoscere le credenziali dell'altro utente?

Magari, presentando le proprie credenziali?Oppure, non presentandole affatto?

Page 353: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

353

La risposta(Dovrebbe essere sufficientemente chiara)

SÌ!*Presentando le proprie credenziali oppure, addirittura, senza fornire credenziali!

*

Page 354: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

354

Il comando sudo(Esecuzione comandi come un altro utente e/o gruppo)

Il comando esterno sudo esegue un comando come un altro utente e/o gruppo.

Proprio come il comando su.Il comando sudo è fornito dal pacchetto software sudo.Diventate root.

su - Installate il pacchetto software sudo:

apt-get install sudo

Page 355: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

355

Il file /etc/sudoers(Configurazione di sudo)

Prima di poter usare sudo, si rende necessaria la sua configurazione. La configurazione di sudo è contenuta nel file /etc/sudoers.

Come si edita la configurazione?Si può aprire direttamente il file /etc/sudoers con un editor di testo.È preferibile usare il comando visudo che apre un editor e blocca l'accesso al file ad altri utenti.

Page 356: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

356

Apertura del file /etc/sudoers(Il comando visudo)

Aprite il file /etc/sudoers, lanciando visudo da utente root:

su -visudo

Il comando visudo usa la variabile di ambiente EDITOR per capire quale editor eseguire.Se volete usare un editor specifico (ad es., vim), scrivete:

EDITOR=vim visudo

Page 357: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

357

Il formato del file /etc/sudoers(Una riga Un commento o una direttiva di configurazione)→

Ogni riga del file /etc/sudoers è:un commento (primo carattere = #);una direttiva di configurazione (primo carattere ≠ #).

Una direttiva di configurazione specifica:il caricamento di altri file di configurazione.la definizione di proprietà e di alias.specifiche di permessi su utenti/gruppi di utenti.

Page 358: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

358

Una osservazione(Non vi si può spiegare tutto in sole 72 ore)

Il formato completo del file /etc/sudoers è documentato in una pagina di manuale apposita.

man 5 sudoersSezione SUDOERS FILE FORMAT.

Sono presenti numerosi esempi di configurazione (impossibili da vedere tutti in un corso introduttivo).

man 5 sudoersSezione EXAMPLES.

Page 359: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

359

Il file /etc/sudoers in Debian(Parte I: configurazioni di default)

## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults env_resetDefaults mail_badpassDefaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Page 360: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

360

Il file /etc/sudoers in Debian(Parte 0: commenti)

## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults env_resetDefaults mail_badpassDefaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Questi sono commenti. Potete bellamente trascurarli.

Page 361: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

361

Il file /etc/sudoers in Debian(Parte 1: configurazioni di default)

## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults env_resetDefaults mail_badpassDefaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Per tutti gli utenti è abilitata la proprietà env_reset. I comandi lanciati con sudo eseguono in un ambiente ristretto comprendente poche e selezionate variabili di ambiente.

Page 362: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

362

Il file /etc/sudoers in Debian(Parte 1: configurazioni di default)

## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults env_resetDefaults mail_badpassDefaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Per tutti gli utenti è abilitata la proprietà mail_badpass. Se un utente sbaglia la password, viene inviata una e-mail all'indirizzo di posta elettronica dell'amministratore dell'host.

“username is not in the sudoers file.This incident will be reported.”

Page 363: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

363

Il file /etc/sudoers in Debian(Parte 1: configurazioni di default)

## This file MUST be edited with the 'visudo' command as root.## Please consider adding local content in /etc/sudoers.d/ instead of# directly modifying this file.## See the man page for details on how to write a sudoers file.#Defaults env_resetDefaults mail_badpassDefaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"

Per tutti gli utenti è abilitata la proprietà secure_path. I comandi lanciati con sudo ricevono una variabile di ambiente PATH con il valore specificato nell'argomento.

Page 364: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

364

Il file /etc/sudoers in Debian(Parte 2: definizione degli alias)

# Host alias specification

# User alias specification

# Cmnd alias specification

Page 365: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

365

Il file /etc/sudoers in Debian(Parte 2: definizione degli alias)

# Host alias specification

# User alias specification

# Cmnd alias specification

Qui si possono inserire degli alias, ovvero stringhe di testo mirate a semplificare la costruzione dei comandi (un po' come gli alias di shell).

Attualmente non sono definiti alias.

Page 366: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

366

Il file /etc/sudoers in Debian(Parte 2: definizione degli alias)

# Host alias specification

# User alias specification

# Cmnd alias specification

Esempio di alias: si vuole usare la stringa WEBMASTERS per identificare tutti gli utenti responsabili di un sito Web.Si scrive:

User_Alias WEBMASTERS = will, wendy, wimSi usa WEBMASTERS al posto di will, wendy, wim.

Page 367: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

367

Il file /etc/sudoers in Debian(Parte 3: specifica dei privilegi utente)

# User privilege specificationroot ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL

Page 368: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

368

Il file /etc/sudoers in Debian(Parte 3: specifica dei privilegi utente)

# User privilege specificationroot ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL

Queste sono specifiche di privilegi per utenti e gruppi.La specifica ha il seguente formato (semplificato):<who> <where> = <as whom> <what>

Who: chi ha il permesso di eseguireWhere: da quali host ha il permesso di eseguireAs whom: chi può diventare prima di eseguireWhat: cosa può eseguire

Page 369: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

369

Il file /etc/sudoers in Debian(Parte 3: specifica dei privilegi utente)

# User privilege specificationroot ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL

Studiamo la prima specifica di permessi.

Page 370: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

370

Il file /etc/sudoers in Debian(Parte 3: specifica dei privilegi utente)

# User privilege specificationroot ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL

<who> <where> = <as whom> <what>

La specifica riguarda l'utente root.

Page 371: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

371

Il file /etc/sudoers in Debian(Parte 3: specifica dei privilegi utente)

# User privilege specificationroot ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL

<who> <where> = <as whom> <what>

La specifica è valida su tutti i possibili host di Internet (ALL).È possibile restringere l'esecuzione a specifici indirizzi IP. Nella pratica, qui si lascia sempre ALL.

Page 372: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

372

Il file /etc/sudoers in Debian(Parte 3: specifica dei privilegi utente)

# User privilege specificationroot ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL

<who> <where> = <as whom> <what>

L'utente root può trasformarsi in un qualunque altro utente (primo ALL).Il gruppo primario dell'utente root può trasformarsi in un qualunque altro gruppo (secondo ALL).

Page 373: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

373

Il file /etc/sudoers in Debian(Parte 3: specifica dei privilegi utente)

# User privilege specificationroot ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL

<who> <where> = <as whom> <what>

L'utente root può eseguire tutti i comandi possibili.

Page 374: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

374

Il file /etc/sudoers in Debian(Parte 3: specifica dei privilegi utente)

# User privilege specificationroot ALL=(ALL:ALL) ALL

# Allow members of group sudo to execute any command%sudo ALL=(ALL:ALL) ALL

La seconda specifica è quasi identica alla prima.L'unica differenza è la presenza del carattere % prima del primo campo.Il carattere % permette a sudo di interpretare la stringa seguente come il nome di un gruppo.

→ I membri del gruppo sudo hanno le stesse facoltà di lancio privilegiato concesse all'utente root.

Page 375: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

375

Il file /etc/sudoers in Debian(Parte 4: caricamento di ulteriori configurazioni)

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

Page 376: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

376

Il file /etc/sudoers in Debian(Parte 4: caricamento di ulteriori configurazioni)

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

La direttiva includedir carica ed interpreta tutti i file di configurazione contenuti nella directory passata come argomento (/etc/sudoers.d).L'ordine di caricamento è quello alfanumerico.

Attualmente non sono caricati ulteriori file (la direttiva è commentata).

Page 377: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

377

Lettura dei propri privilegi(AKA “Che cosa mi fa fare sudo?”)

L'opzione -l di sudo specifica cosa può fare l'utente attuale.

sudo -lSe specificata due volte, l'opzione -l produce un output più prolisso.

sudo -llL'opzione -U specifica il nome di login dell'utente di cui si vogliono ottenere i privilegi di lancio.

sudo -llU docente

Page 378: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

378

L'output del comando(Deprimente per alcuni, euforico per altri)

Chi ha appena installato sudo si vedrà comparire con ogni probabilità un output simile.

L'utente nome_login non può eseguire sudo su host_name.

Chi ha già installato e configurato sudo si vedrà comparire con ogni probabilità un output simile.

L'utente nome_login può eseguire i seguenti comandi su nome_host:

Voce sudoers: RunAsUsers: ALL Comandi:

ALL

Page 379: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

379

Una amara constatazione(sudo non fa eseguire nulla in maniera privilegiata)

Il comando sudo è configurato per non far eseguire nulla in maniera privilegiata a chi non soddisfa i requisiti del file /etc/sudoers.Per poter usare sudo bisognerebbe:

essere rootOPPURE

far parte del gruppo sudo.

Page 380: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

380

Aggiunta al gruppo sudo(Rende possibile l'esecuzione di qualunque comando con privilegi arbitrari)

Aggiungetevi al gruppo sudo:gpasswd -a andreoli sudo

(sostituite andreoli con il nome di login del vostro utente).Terminate la sessione di lavoro ed autenticatevi nuovamente.

Page 381: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

381

Esecuzione di un comando(Con privilegi di root)

Nella sua forma più semplice, il comando sudo riceve un solo argomento: il comando da eseguire.

Il comando è eseguito usando l'utente root ed ilgruppo root.

Provate ad eseguire:sudo cat /dev/sda

Page 382: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

382

L'output del comando(Il contenuto del disco /dev/sda)

L'output del comando è il contenuto del primo disco rigido SATA, rappresentato in ASCII.

Il comando è stato eseguito come utente root.È stata chiesta una password, che non è quella dell'utente finale (root), bensì quella dell'utente di partenza (andreoli)!

Page 383: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

383

Esercizi (2 min.)

29. Lanciate il comando seguente come utente normale e come utente root (usando sudo):env

Di quante righe consta l'output in entrambi i casi? Notate delle differenze?

Page 384: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

384

L'ambiente di esecuzione di sudo(Ridotto rispetto a quello standard)

Il comando sudo:genera un processo figlio;seleziona alcune specifiche variabili di ambiente;

esegue l'immagine del comando con gli argomenti ele variabili di ambiente scelte.

L'esercizio precedente vi ha mostrato una tecnica per mostrare l'ambiente di esecuzione di sudo.

Page 385: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

385

Come verificare che siamo root?(Malfidati…)

Potete verificare di avere credenziali di root con il comando id.Per ottenere gli identificatori reali dell'utente, del gruppo e dei gruppi secondari, eseguite:

sudo id -r -usudo id -r -gsudo id -r -G

→ Siete realmente root; appartenete all'unico gruppo root.

Page 386: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

386

Esecuzione di un comando(Con i privilegi di un utente specifico)

L'opzione -u di sudo permette di specificare il nome di login dell'utente che eseguirà il comando.Ad esempio, per eseguire il comando id come utente docente:

sudo -u docente id

Page 387: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

387

Esecuzione di un comando(Con i privilegi di un gruppo specifico)

L'opzione -g di sudo permette di specificare il nome del gruppo primario sotto cui si eseguirà il comando.L'utente può far parte o no del gruppo.Ad esempio, per eseguire il comando id come utente docente e gruppo root:

sudo -u docente -g root id

Page 388: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

388

Esercizi (2 min.)30. Eseguite come utente studente e gruppo

primario disk il comando che legge il primo disco rigido SATA.

Page 389: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

389

Gestione delle credenziali(Ogni quanto sudo chiede la password?)

Quando si lancia un comando con sudo, quest'ultimo può chiedere la password:

ogni volta.dopo N minuti di inattività.mai.

Sicurezza

Comoditàd'uso

Page 390: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

390

Timeout di richiesta password(Più piccolo è, meglio è)

La proprietà timestamp_timeout permette di impostare l'intervallo massimo di validità dei privilegi acquisiti. Scaduto l'intervallo, al primo comando immesso tramite sudo viene chiesta nuovamente la password.Ad esempio, per impostare un intervallo di validità di 5 minuti, scrivete in /etc/sudoers:Defaults timestamp_timeout=5

Page 391: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

391

In un mondo ideale...(…timestamp_timeout dovrebbe essere impostato a 0!)

Il valore ottimale di timestamp_timeout dal punto di vista della sicurezza è 0.

Se timestamp_timeout ≠ 0, è possibile per un estraneo dare comandi con sudo senza la password.

È sufficiente lasciare incustodito il vostro portatile,con un terminale aperto su cui si è già dato ilcomando sudo (ad es., per un aggiornamentosoftware).

Page 392: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

392

Nel mondo reale...(…timestamp_timeout ha un valore ≫ 0!)

Nelle distribuzioni GNU/Linux, il valore di default per timestamp_timeout è ≫0.Quanto è grande?

15 minuti!

Page 393: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

393

Esecuzione globale senza password(NON FATELO SULLE VOSTRE MACCHINE)

È possibile disabilitare in maniera permanente la richiesta di una password.Disabilitate la proprietà authenticate nel file /etc/sudoers.Defaults !authenticate

Occhio! Il comando sudo non chiede più la password a nessuno!

Page 394: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

394

Esecuzione globale per utente/gruppo(Senza password; non fatelo sulle vostre macchine, per favore)

Il comando sudo permette di etichettare (tag) i singoli comandi.

man 5 sudoersPer ottenere un elenco dei tag, cercate Tag_Spec.

L'etichetta NOPASSWD: disabilita la richiesta di password per un dato comando.Se il comando è ALL si disabilitano tutti i →comandi!

Page 395: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

395

Esecuzione globale per utente/gruppo(Senza password; non fatelo sulle vostre macchine, per favore)

Modificate come segue la riga relativa al gruppo sudo nel file /etc/sudoers.

%sudo ALL=(ALL:ALL) NOPASSWD: ALL

Etichetta Comando

Page 396: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

396

Esecuzione comandi specifici(Senza password; se proprio dovete farlo, fatelo così)

Nell'ultima posizione di una specifica di privilegi potete scrivere, al posto della stringa ALL, un elenco di comandi specifici che volete siano eseguiti con le caratteristiche volute.Scriverete in /etc/sudoers:%sudo ALL=(ALL:ALL) NOPASSWD: /path/to/cmd1,/path/to/cmd2,...

OCCHIO! Va scritto il percorso assoluto del comando.

Page 397: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

397

Esecuzione comandi specifici(Senza password; se proprio dovete farlo, fatelo così)

Esempio: il comando slabtop mostra le allocazioni di memoria del kernel ai vari sottosistemi.Per motivi di sicurezza, l'esecuzione di slabtop è permessa al solo utente root. Se volete eseguire slabtop senza password, scriverete in /etc/sudoers:%sudo ALL=(ALL:ALL) NOPASSWD: /usr/bin/slabtop

Page 398: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

398

Esercizi (2 min.)31. Modificate il file /etc/sudoers in modo

tale da permettere al vostro utente l'esecuzione come root e senza password dei seguenti comandi:slabtopcat /dev/mem

Page 399: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

399

Ricapitolando(Repetita iuvant)

Abusate di sudo il meno possibile. Se proprio dovete usarlo, cercate di seguire quest'ordine (i primi suggerimenti sono preferibili):

abilitate singoli comandi con password.abilitate tutti i comandi con password.abilitate singoli comandi senza password.abilitate tutti comandi senza password.disabilitate la richiesta di password per tutti.

Livello dicompetenzadell'utente

Inetto

Provetto

Page 400: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

400

Registro delle esecuzioni di sudo(Ogni tentativo di uso è segnato in un file di log con il relativo esito)

I SO GNU/Linux registrano i diversi eventi di autenticazione nel file /var/log/auth.log.Ogni riga di tale è un record i cui campi sono separati da uno o più spazi:

<data> <host> <appl:> <info>

Datadell'evento

Nomedell'host

Stringa cheidentifica ilprocesso

(notare i :)

Stringa chedettaglia

il tipo di evento

Page 401: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

401

Un piccolo esperimento(Osservate il file /var/log/auth.log mentre vi autenticate con sudo)

Configurate sudo in modo tale da permettervi l'esecuzione di un comando qualunque come utente root.Aprite due terminali su due finestre distinte; che siano entrambe visibili.

Su un terminale guardate in diretta le ultime righe di/var/log/auth.log, scrivendo il comandotailf /var/log/auth.log.Sull'altro terminale eseguite il comando con privilegipiù elevati, ad esempio: sudo top.

Page 402: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

402

Il risultato dell'esperimento(Analizziamo le righe di /var/log/auth.log)

Dovreste vedere queste tre righe di output.

Page 403: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

403

Il risultato dell'esperimento(Analizziamo le righe di /var/log/auth.log)

Il comando sudo riceve una richiesta di esecuzione:

del comando /usr/bin/topcome utente rootsul terminale pts/1 (gnome-terminal).

Page 404: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

404

Il risultato dell'esperimento(Analizziamo le righe di /var/log/auth.log)

La richiesta è accettata dal modulo software autenticatore opportuno, dal nome piuttosto criptico di pam_unix(sudo:session).

Viene registrato l'inizio di una sessione, che dura finoa quando non termina l'esecuzione del comando.

Page 405: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

405

Il risultato dell'esperimento(Analizziamo le righe di /var/log/auth.log)

Al termine del comando, la sessione viene chiusa.

Page 406: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

406

Un altro piccolo esperimento(Osservate il file /var/log/auth.log mentre fallite l'autenticazione)

Configurate sudo in modo tale da permettervi l'esecuzione di un comando qualunque con password, come utente root.Aprite due terminali su due finestre distinte.

Su un terminale guardate in diretta le ultime righe di/var/log/auth.log, scrivendo il comandotailf /var/log/auth.log.Sull'altro terminale eseguite il comando con privilegipiù elevati, ad esempio: sudo top. Sbagliate lapassword e fate fallire sudo.

Page 407: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

407

Il risultato dell'esperimento(Analizziamo le righe di /var/log/auth.log)

Dovreste vedere queste due righe di output.

Page 408: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

408

Il risultato dell'esperimento(Analizziamo le righe di /var/log/auth.log)

Il modulo autenticatore di sudo segnala il fallimento della autenticazione:

da parte dell'utente andreoli su pts/1che voleva diventare rootsul terminale pts/1 (gnome-terminal).

Page 409: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

409

Il risultato dell'esperimento(Analizziamo le righe di /var/log/auth.log)

Il motivo del fallimento dell'autenticazione è:tre tentativi di immissione della password falliti.

Page 410: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

410

Bit setuid/setgid(Esecuzione automatica con privilegi elevati)

GNU/Linux offre un ulteriore supporto per l'esecuzione con privilegi elevati: i bit di permessi setuid e setgid.Una volta impostati tali permessi con il comando chmod, il processo esegue con i seguenti privilegi:

identificatore utente → identificatore creatore fileIdentificatore gruppo → identificatore gruppo file

Non sono necessari altri comandi.

Page 411: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

411

Impostazione del bit setuid/setgid (Tramite il comando chmod)

Il comando chmod imposta anche i permessi setuid e setgid.

chmod u+s: impostazione bit setuid.chmod g+s: impostazione bit setgid.chmod u-s: rimozione bit setuid.chmod g-s: rimozione bit setgid.

Page 412: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

412

Esercizi (5 min.)32. Copiate il file dell'eseguibile top nella vostra

home directory, dandogli il nome newtop.Cambiate utente creatore e gruppo del file nel modo seguente:

utente creatore → root.gruppo del file → root.

Impostate il setuid bit ed eseguite newtop.Stampate UID, GID, EUID, EGID con il comando ps.Con quali diritti esegue newtop?

Page 413: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

413

Capability(I privilegi di root sono spezzati in tanti piccoli privilegi)

GNU/Linux offre un ulteriore supporto per l'esecuzione con privilegi elevati: le capability.I due comandi usati per leggere ed impostare le capability sono getcap e setcap.

Page 414: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

414

Lettura di capability(Il comando getcap)

Il comando getcap mostra le capability di un file. Il suo uso è molto semplice:

getcap [OPZIONI] file…

Ad esempio:getcap /bin/ls

Page 415: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

415

Esercizi (1 min.)33. Per quale motivo non siete riusciti ad eseguire

il comando getcap?Che cosa dovete fare per eseguire il comando getcap?

Page 416: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

416

Come trovare comandi con capability(Comando getcap, argomento “*”)

Per scoprire i comandi con capability potete eseguire getcap con argomenti “wildcard” che rappresentano gli eseguibili in questione:

getcap /bin/* /sbin/* /usr/bin/* /usr/sbin/*

Scoprirete l'esistenza di alcuni comandi che, per essere eseguiti da utente normale, devono acquisire particolari privilegi.

Page 417: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

417

Esempio: comando ping(Verifica la connettività di un host)

Il comando ping verifica se un host remoto è raggiungibile.

ping towel.blinkenlights.nl

Per funzionare, ping ha bisogno di costruire “a mano” pacchetti di controllo ed inviarli.

Ciò non è concesso a tutti.Ciò è concesso a root.Ciò è concesso a chi esegue un comando con lacapability cap_net_raw attiva sull'eseguibile.

Page 418: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

418

Un'occhiata alle capability di ping(What's that “+ep” about?)

L'output del comando:/sbin/getcap /bin/ping

è la stringa seguente:/bin/ping = cap_net_raw+ep

Il comandoin questione

La capabilityassegnata

La capability aggiunta (+)è effettiva (e)

e permessa (p)

Page 419: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

419

Il formato delle capability di getcap(Una sequenza di clausole separate dal carattere ,)

In generale, le capability mostrate dal comando getcap sono rappresentate da un insieme di clausole separate dal carattere , (virgola).

comando = clausola1,clausola2,…,clausolaN

Ogni clausola è composta da:un elenco di capability;un'azione (aggiunta, rimozione, reset+aggiunta);un elenco di insiemi di capability su cui compierel'azione.clausola = <capability><azione><insiemi>

Page 420: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

420

Elenco delle capability(Un elenco di nomi validi di capability separato da “,”, oppure all)

L'elenco delle capability è separato dal carattere , (virgola). L'elenco può anche essere nullo.

Per specificare tutte le capability si può usare la parola chiave all.

Page 421: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

421

Azioni sulle capability(+ aggiunge; - rimuove; = pulisce prima di reimpostare)

L'azione sulle capability è uno dei tre caratteri seguenti:

+ aggiunge le capability→- rimuove le capability→= rimuove le capability considerate dagli insiemi→

effective, permitted ed inheritable, prima diimpostarle.

Page 422: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

422

Insiemi delle capability(e effettive; → p permesse; → i ereditate)→

Gli insiemi delle capability sono uno o più dei seguenti insiemi:

e → insieme delle capability effettive (effective)p → insieme delle capability permesse (permitted)i → insieme delle capability ereditate (inherited)

Page 423: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

423

Capire che cosa fa l'azione “=”(Con un esempio, si spera semplice)

Esempio: che cosa fa all=p?all → considera tutte le capability= → rimuove tutte le capability dagli insiemi e, p,

i prima di impostarlep → imposta le capability richieste nell'insieme p

(permitted)

Page 424: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

424

Impostazione di capability(Il comando setcap)

Il comando setcap imposta le capability di un file. Il suo uso è molto semplice:

getcap [OPZIONI] capability file

Ad esempio:setcap cap_net_raw+ep comando

Page 425: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

425

Esercizi (5 min.)34. Usando il comando cp, copiate il comando ping nella vostra home directory, dandogli il nome newping.

Annullate le capability del file newping.Eseguite newping 8.8.8.8. Funziona?Assegnate le capability cap_net_raw agli insiemi permitted ed effective sul file newping.Eseguite newping 8.8.8.8. Funziona?

Page 426: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

426

CONTRASTO ALLEATTIVITÀ MALIZIOSE

Page 427: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

427

Scenario e domande(Esistono strumenti per limitare le risorse ad un utente?)

Scenario: in un SO moderno (time sharing, multi-utente), un amministratore vuole identificare utenti “maliziosi” e limirare le risorse ad essi assegnate.

Domande:Esistono strumenti per controllare se gli utenti esibiscono comportamenti maliziosi?Esistono strumenti per limitare i comportamenti maliziosi?

Page 428: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

428

Comportamenti maliziosi considerati(I più importanti)

(a) Un utente prova ad effettuare (in maniera automatizzata) molteplici login consecutivi.

Obiettivo: indovinare una coppia (nome di login,password) valida sull'host.

(b) Un utente prova spesso ad eseguire comandi con privilegi elevati.

Obiettivo: conseguire i diritti di root.

(c) Un utente manda in crash il SO.Obiettivo: negare il servizio sull'host.

Page 429: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

429

Intercettare tentativi di login(Il caso (a))

Il comando lastb elenca gli ultimi tentativi di login falliti. Ciascuna riga dell'output è un record rappresentante un singolo tentativo di login.Il formato dei record è il seguente:<nome login> <terminale di login> <host di login> <data login> <data logout> <durata>

Provate il comando (richiede i privilegi di root):sudo lastb

Page 430: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

430

Un esempio di output di lastb(Chi ha provato a connettersi da dove a che ora)

Page 431: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

431

Un esempio di output di lastb(Chi ha provato a connettersi da dove a che ora)

Nome di login dell'utente.UNKNOWN → lastb non è riuscito a determinare il nome di login.

Page 432: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

432

Un esempio di output di lastb(Chi ha provato a connettersi da dove a che ora)

Meccanismo usato per provare l'autenticazione.ssh:notty: login da remoto tramite protocollo SSH.tty3: login locale tramite il terzo emulatore di terminale(/dev/tty3, raggiungibile tramite Ctrl-Alt-F3).:0: login locale tramite il gestore grafico.

Page 433: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

433

Un esempio di output di lastb(Chi ha provato a connettersi da dove a che ora)

Sistema che subisce il tentativo di login.localhost: l'host locale, tramite il protocollo SSH.:0: l'host locale, tramite il gestore grafico.

Page 434: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

434

Un esempio di output di lastb(Chi ha provato a connettersi da dove a che ora)

Data iniziale, data finale e durata del tentativo di login.Solitamente, la durata è nulla (0m, 0s).

Page 435: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

435

Esercizi (3 min.)35. Il comando lastb registra le informazioni di

login e logout in un file ben specifico. Sapreste scoprire di quale file si tratta?

Page 436: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

436

Alcune opzioni utili(Opzioni -n, -F, -w, -t, -f)

-n number, -number: mostra le number righe più recenti.-F: stampa estesa delle date di login e logout.-w: stampa estesa del nome di login e del dispositivo di login.-t YYYYMMDDHHMMSS: visualizza l'elenco dei login fino all'istante temporale specificato.-f filename: analizza un file alternativo a /var/log/btmp.

Page 437: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

437

Come individuare i tentativi di login?(Contate il numero di tentativi di login nell'output di lastb)

Si stampa l'output di lastb e lo si analizza. I sintomi seguenti indicano un possibile tentativo di login malizioso.

Tanti tentativi di login in un breve arco di tempo.Tentativi di login con nomi di utente diversi.Tentativi di login da un singolo host remoto.

Page 438: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

438

Esercizi (3 min.)36. Scaricate il file lastb.txt dalla sezione

“Approfondimenti” della presente lezione.Studiate tale file e giudicate se l'host è stato vittima di tentativi di login maliziosi.

Page 439: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

439

Intercettare tentativi di esecuzione(Il caso (b))

Si stampa il file /var/log/auth.log e si stampano tutte e sole le righe dettaglianti i fallimenti.Una riga dettagliante un fallimento contiene la stringa authentication failure. La riga successiva contiene il motivo specifico del fallimento.

→ Il comando richiesto è:grep -A1 “authentication failure”

/var/log/auth.log

Page 440: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

440

Come individuare i tentativi di esecuzione?(Contate il numero di tentativi falliti nel file /var/log/auth.log)

I sintomi seguenti indicano un possibile tentativo di esecuzione di comando malizioso.

Tentativi di esecuzione di una shell da utente root.Tanti tentativi di esecuzione in un breve lasso ditempo.

Page 441: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

441

Esercizi (3 min.)37. Scaricate il file auth_log.txt dalla sezione

“Approfondimenti” della presente lezione.Studiate tale file e giudicate se l'host è stato vittima di tentativi di esecuzione maliziosi.

Page 442: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

442

Intercettare crash di sistema(Il caso (c))

Il comando last elenca gli ultimi tentativi di login andati a buon fine. Ciascuna riga dell'output è un record rappresentante un singolo tentativo di login.Il formato dei record è il seguente:<nome login> <terminale di login> <host di login> <data login> <data logout> <durata>

Provate il comando:last

Page 443: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

443

Un esempio di output di last(Chi è riuscito a connettersi da dove a che ora)

Page 444: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

444

Un esempio di output di last(Chi è riuscito a connettersi da dove a che ora)

Nome di login dell'utente.unknown → last non è riuscito a determinare il nome di login.

Page 445: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

445

Un esempio di output di last(Chi è riuscito a connettersi da dove a che ora)

Meccanismo usato per l'autenticazione.pts/X: login locale tramite emulatore di terminale grafico (gnome-terminal).tty2: login locale tramite il terzo emulatore di terminale(/dev/tty2, raggiungibile tramite Ctrl-Alt-F2).:0: login locale tramite il gestore grafico.

Page 446: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

446

Un esempio di output di last(Chi è riuscito a connettersi da dove a che ora)

Sistema su cui il login è andato a buon fine.:0: l'host locale, tramite il gestore grafico.

Page 447: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

447

Un esempio di output di last(Chi è riuscito a connettersi da dove a che ora)

Data di login, data di logout e durata della sessione.Se non è stato registrato un logout utente, il SO assume che sia avvenuto un crash e stampa, invece, la stringa crash.

Page 448: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

448

Come individuare i tentativi di crash?(Contate il numero di crash nell'output di last)

Si stampa l'output di last e lo si analizza. I sintomi seguenti indicano un possibile tentativo di negazione del servizio sulla macchina.

Presenza di più stringhe crash da parte dello stessoutente (recidivo).

Page 449: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

449

Esercizi (3 min.)38. Scaricate il file last.txt dalla sezione

“Approfondimenti” della presente lezione.Studiate tale file e giudicate se l'host è stato vittima di tentativi di negazione del servizio maliziosi.

Page 450: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

450

Come difendersi?(“Son of a bitch!”)

Page 451: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

451

Cancellazione di un account(Nei casi più gravi)

Scenario: un utente si è comportato male e va radiato dal sistema.

Azione: la misura più drastica è la cancellazione dell'account utente (e l'eventuale gruppo primario).

deluser andreolidelgroup andreoli

Page 452: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

452

Addendum(Non cancellate la home directory dell'utente!)

Non cancellate la la home directory dell'utente!Il suo contenuto può permettere la ricostruzione delle azioni condotte dall'utente.

→ Potete studiare e capire che cosa ha fatto l'utente (e prevenirlo, in futuro).

→ Un tecnico forense può ricostruire le azioni svolte dall'utente e facilitare il lavoro di una eventuale indagine giudiziaria.

Page 453: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

453

Esercizi (1 min.)39. Supponiate che l'utente docente abbia

combinato un pasticcio e gli debba essere impedito ogni tipo di accesso alla macchina del laboratorio.

Che cosa fareste?

NOTA: non eseguite fisicamente tale azione. Individuatela e basta.

Page 454: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

454

Che fare se l'account non è cancellabile?(Purtroppo è possibile)

In alcuni casi non è pensabile cancellare un account utente.Ad esempio, considerate un utente remoto malizioso che prova a connettersi tramite protocollo SSH alla vostra macchina.

L'utente remoto si presenta come root. Vi sentirestedi cancellare l'account root sul vostro host?L'utente remoto si presenta con un nome di login nonpresente sul vostro host. Non potete cancellarlo.

Che fare?

Page 455: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

455

Blocco login remoto(Per impedire ad utenti entrare nella vostra macchina)

Scenario: un utente remoto sta provando a connettersi via SSH al vostro host.

Azione: usate il software Fail2ban.Scandisce i file di log delle autenticazioni.Individua le macchine remote da cui un utente haprovato ad autenticarsi, fallendo.Blocca le comunicazioni della macchina remota sulservizio SSH per un certo intervallo di tempo.

Page 456: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

456

Installazione di Fail2ban(Semplicissima)

Per installare il software Fail2ban digitate il comando seguente da root:

apt-get install fail2ban

Viene installato ed attivato un servizio che esegue le operazioni succitate.

Page 457: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

457

Rimozione dei privilegi di esecuzione(Per chi fa il furbetto, provando a diventare root)

Scenario: un utente locale sta abusando del comando sudo per (provare ad) eseguire comandi con i privilegi di root.

Azione: esaminate il file /etc/sudoers e togliete ogni privilegio di esecuzione all'utente.

Rimuovete righe di configurazione specifiche perl'utente.Rimuovete l'utente dai gruppi dei “power user” (sudo,wheel, …).

Page 458: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

458

Esercizi (2 min.)40. Controllate che il file /etc/sudoers non

abbia alcuna configurazione particolare per l'utente docente.

Rimuovete l'utente docente da ogni gruppo di power user.

Page 459: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

459

Limitazione delle risorse di shell(Per chi ha provato a lanciare una fork bomb)

Scenario: un utente locale ha mandato in crash il SO, ad esempio tramite una fork bomb.

Azione: riducete le risorse assegnate alla shell eseguita dall'utente, in modo tale da impedire la negazione del servizio.

Page 460: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

460

Gestione delle risorse di shell(Comando builtin ulimit)

Il comando builtin ulimit gestisce le risorse assegnate ad una shell.

Numero massimo di processi eseguibili.Numero massimo di file aperti simultaneamente.Quantitativo massimo di memoria prenotabile.…

man 2 setrlimit per tutti i dettagli.

Page 461: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

461

Visione delle risorse di shell(Comando builtin ulimit, opzione -a)

Il comando builtin ulimit -a stampa tutte le risorse assegnate ad un utente.L'output è un elenco di risorse (con annesse unità di grandezza) ed il loro limite massimo.

Risorsa assegnataalla shell

Unità dimisura

Limite

Page 462: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

462

Limiti soft e limiti hard(Now I'm confused)

Limite soft. Il limite soft è il valore della risorsa che il kernel non fa superare alla shell.

Limite hard. Il limite hard è un tetto imposto sul valore del limite soft.

Page 463: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

463

Domande(Indotte dalla confusione)

Perché servono due limiti?

Non ne basta uno solo?

Qual è il ruolo di “soft”?

Qual è il ruolo di “hard”?

Page 464: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

464

Funzionamento dei limiti(Per l'utente non privilegiato)

L'utente non privilegiato può svolgere le seguenti operazioni.

Può impostare il valore del limite soft nell'intervallo[0, limite hard].Può abbassare il valore del limite hard in manierairreversibile (cfr. livello di cortesia).

Ora è chiaro il ruolo del limite hard. Esso funge da limitatore del massimo valore assegnabile ad una risorsa.

Page 465: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

465

Funzionamento dei limiti(Per l'utente privilegiato)

L'utente privilegiato, ossia:rootchi ha ricevuto la capability CAP_SYS_RESOURCE

può alterare i limiti soft e hard arbitrariamente.

Page 466: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

466

Visione dei due limiti(Comando ulimit, opzioni -S e -H)

L'opzione -S di ulimit mostra il valore attuale del limite soft.

ulimit -S -a

L'opzione -H di ulimit mostra il valore attuale del limite hard.

ulimit -H -a

Page 467: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

467

Confronto dei limiti soft e hard(Sono leggermente diversi)

Page 468: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

468

Una osservazione(Il numero massimo di processi assegnato è molto elevato)

Il numero massimo di processi eseguibili nella sessione di shell è molto elevato, e permette ad una fork bomb di autoalimentarsi.

Se si abbassa drasticamente tale valore, non sarà più permessa la creazione di nuovi processi e, pertanto, la fork bomb perderà di efficacia.

Page 469: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

469

Abbassamento del limite sui processi(Per mitigare l'impatto di una fork bomb)

Aprite un nuovo terminale. Mostrate l'help in linea di ulimit.

help ulimitQuale opzione permette di modificare il limite sul numero di processi eseguibili?

L'opzione è la -u.Abbassate il numero massimo di processi ad un valore basso, ad esempio 300.

ulimit -u 300

Page 470: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

470

BIG FAT WARNING(You have been warned)

L'abbassamento del limite vale esclusivamente per la shell su cui avete lanciato il comando ulimit!

Le limitazioni non valgono nelle altre shell.Le limitazioni non sono permanenti.

Page 471: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

471

Verifica del nuovo limite(Controllare fa sempre bene; non si sa mai…)

Controllate che il nuovo limite sia stato applicato.ulimit -a

Dovreste leggere una riga del tipo:max user processes (-u) 300

Page 472: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

472

Esecuzione fork bomb(Non riesce più ad eseguire come prima)

Eseguite la fork bomb sul terminale su cui avete ristretto il numero massimo di processi.

:(){ :|: & };:

Notate come il SO non faccia più partire i processi figli.

Page 473: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

473

Impatto della fork bomb sul SO(È praticamente nullo)

Aprite un altro terminale ed usatelo.Notate rallentamenti? Non dovrebbero esservene.

L'impatto della fork bomb è praticamente nullo.

Page 474: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

474

Come rendere permanenti le restrizioni?(Le scrivete nel file /etc/security/limits.conf)

Le restrizioni applicate non sono permanenti. Esse svaniranno alla chiusura del terminale.

Come fare per renderle permanenti?Potete scrivere le modifiche nel file seguente:

/etc/security/limits.conf

Page 475: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

475

Il formato del file(La solita base di dati composta da n righe, 1 record per riga)

Il file /etc/security/limits.conf è una base di dati primordiale.

Elenco di record (uno per riga).I campi di un record sono separati da spazi.

Il formato del record è il seguente:<domain> <type> <item> <value>

Utenteo gruppo

Tipo dilimite

Nomedella risorsa

Valoredel limite

Page 476: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

476

Modifica permanente sui processi(Facilissima)

Aggiungete una restrizione del genere.Utente: andreoliTipo: hardRisorsa: nprocValore: 300

Scrivete in fondo al file:andreoli hard nproc 300

Page 477: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

477

Esercizi (5 min.)41. Applicate una restrizione permanente sul

numero massimo di processi eseguibili dall'utente docente al terminale.

Verificate che una fork bomb non abbia più effetti catastrofici sul SO.

Page 478: Lezione 7 - UNIMORE · 1 Lezione 7 Gestione degli utenti Sistemi Operativi (9 CFU), CdL Informatica, A. A. 2015/2016 Dipartimento di Scienze Fisiche, Informatiche e Matematiche

478

Esercizi (10 min.)42. Applicate una restrizione permanente sul

tempo massimo di CPU utilizzabile dall'utente docente al terminale.

Ad esempio, impostate un tempo max. di 1 minuto.Verificate che un comando CPU-bound esegua per al più il tempo massimo impostato.