Controllo degli accessi in UNIX - parte I

Documenti analoghi
Controllo degli accessi in UNIX - parte I

Controllo degli accessi in UNIX

Permessi d accesso, UNIX password

Controllo degli accessi in UNIX

LABORATORIO DI SISTEMI OPERATIVI

Editor, Utenti e Permessi Insegnamento di Sistemi Operativi di Rete Master Universitario in Tecnologie Internet

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 2. Editor Utenti Permessi

Lezione XII.IV Gestione dei file Uso della shell I permessi di accesso

Laboratorio di sistemi operativi A.A. 2010/2011 Gruppo 2 Gennaro Oliva Processi

Esempio di domande sul file system

Accesso a Linux. E Mumolo - DIA

Processi. Introduzione. Effective user/group id. Fork

Senza Soluzioni. Può un altro utente non appartenente al gruppo di mgiorgio, eseguire gli stessi comandi?

Permessi base e speciali in Unix-Linux

Utenti e Permessi. Andrea Bontempi. Corsi Linux POuL

Gestione Utenti & Permessi

Introduzione. P4 termina prima di P3, P2 e P3 prima di P1 P1 P2 P3 P4 P1 P1 P2 P3 P4. Padre. P1,..., P4 sono processi. Figlio

Unix e utenti. UNIX è un SO multiutente. Singolo utente

Organizzazione di Sistemi Operativi e Reti

Reti Informatiche Corso di Laurea Triennale in Ingegneria Informatica

Gestione dei processi nel sistema operativo Unix

LABORATORIO DI SISTEMI OPERATIVI

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini

Lezione 2: Comandi avanzati della Shell di Unix

Progetto II: Il linguaggio C e le chiamate di sistema sui processi

LABORATORIO DI SISTEMI OPERATIVI

Lab. di Sistemi Operativi - Lezione in aula - a.a. 2012/2013

Transizioni di stato in UNIX

Sistemi Operativi e Sperimentazioni. Cristina Baroglio ufficio

Utenti e gruppi. Ogni utilizzatore di UNIX ha associato: Nomeutente nome alfanumerici UID identità numerica

Lezione 2: Comandi avanzati della Shell di Unix

Laboratorio di Sistemi Operativi Marzo-Giugno 2008 matricole congrue 0 mod 3

L ambiente di un processo (I)

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini Daniel Cesarini

Organizzazione di Sistemi Operativi e Reti

File System Unix. Generalità

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Daniel Cesarini.

File System I parte. File System

Sistemi Operativi e informatica 1

Files e Directories. Franco Maria Nardini

Utente. Sistemi operativi 2003/2004. /etc/passwd

Esame Laboratorio di Sistemi Operativi Cognome Nome Mat.

Lezione 10 Elevazione privilegi

Corso di Informatica

Corso Linux ARCES. Lezione 5: Amministrare un Sistema

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 3

Sistemi Operativi e Sperimentazioni

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2016/2017. Comandi Shell

La Shell di Unix. l utente impartisce i comandi al sistema digitandoli ad un apposito prompt;

Processi. C. Baroglio a.a

Esercizio 2 Scrivere un programma C che: Prende in input da linea di comando il nome di una directory ed il nome di un file. Se non e' possibile aprir

Laboratorio di Sistemi Operativi

Università degli Studi di Messina Facoltà di Scienze MM. FF. NN. Corso di Laurea Triennale in Informatica (D.M. 270)

Link e permessi. Corso di Laurea Triennale in Ingegneria delle TLC e dell Automazione. Corso di Sistemi Operativi A. A

ORGANIZZAZIONE del FILE SYSTEM SISTEMA OPERATIVO UNIX FILE SYSTEM. FILE astrazione unificante del sistema operativo

Gestione degli Utenti e dei Permessi

i link Unix i link Unix gli hard link (link fisici)

File-System! Introduzione al File-System! Struttura dei File! Concetto di File!

Laboratorio di Sistemi Operativi primavera 2009

Corso ForTIC C2 LEZIONE n. 4

Sistemi Operativi. Processi in Linux - Part Ottobre 2007

CORSO LINUX PER LA CERTIFICAZIONE LPI ESSENTIALS

SHELL: File e Filesystem

Modulo 13: System call relative al File System

Sistemi Operativi. II Semestre - Marzo/Giugno 2012 Matricole congr. 0 mod 3. File & Directory

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Elaborato Shell. Elementi di architettura e sistemi operativi 2016/2017

Modulo 5 System call per il controllo dei processi (fork, exit, wait)

Blocchi di un file system

Consigli utili per Linux

Sistemi Operativi. Corso di Laurea Triennale in Ingegneria Informatica. Esercitazione 3. Gestione utenti (prosecuzione) MBR e GPT Partizioni

Controllo degli accessi in UNIX - parte II

Introduzione a Linux Lezione 2 Provare Linux

Lab. di Sistemi Operativi - Esercitazione n 1 - a.a. 2015/2016. Comandi Shell

Linux / Unix: la shell. utenti e gruppi, shell, comandi

Corso di avvicinamento al Software Libero. Lunedi 23 Gennaio

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system

Shell di Linux e Comandi Utente

Shell. Una shell di comandi ci consente, dunque, di eseguire tutte le operazioni di cui abbiamo bisogno!

Corso di Laboratorio di Sistemi Operativi A.A Fabio Buttussi

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi FILE SYSTEM : INTERFACCIA. D. Talia - UNICAL. Sistemi Operativi 8.1

Sistemi Operativi (modulo di Informatica II) L interfaccia del file system

Interfaccia del file system

File System ext2. Struttura del filesystem ext2.

Sistemi operativi e distribuiti

Controllo degli accessi in UNIX - parte I

Controllo degli accessi in UNIX - parte II

Introduzione al sistema Linux

Gestione Utenti & Permessi

Sistemi Operativi. II Semestre - Marzo/Giugno 2011 Matricole congr. 0 mod 3. File & Directory. Leggere Directory

Università di Roma Tor Vergata Corso di Laurea triennale in Informatica Sistemi operativi e reti A.A Pietro Frasca.

Sistemi Operativi, Secondo Modulo, Canale M Z Riassunto della lezione del 07/03/2017

L ambiente UNIX/Linux. Comandi UNIX & Linux (parte A) Stefano Quer Dipartimento di Automatica e Informatica Politecnico di Torino

Linux: Controllo di accesso, gestione utenti, gruppi, permessi.

File System e Interprete Comandi

Corso di Laboratorio di Sistemi Operativi A.A Fabio Buttussi Ivan Scagnetto

Materiale di approfondimento sulla shell di Unix (Videolezioni 11 e 30)

Transcript:

Università degli Studi di Milano Facoltà di Scienze Matematiche, Fisiche e Naturali Anno Accademico 2012/2013 Controllo degli accessi in UNIX - parte I Srdjan Matic, Aristide Fattori 12 Aprile 2013 Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 1 / 32

Controllo degli accessi nei sistemi UNIX Linee guida generiche stabilite fin dalle prime versioni: 1 Tutti gli oggetti (es. file, processi) hanno dei proprietari. I proprietari hanno pieno controllo (non necessariamente senza restrizioni!) sui propri oggetti 2 un utente è il proprietario di tutti gli oggetti che crea 3 l utente root può effettuare operazioni come se fosse il proprietario di un qualsiasi oggetto 4 solo all utente root è concesso effettuare speciali operazioni di amministrazione del sistema Non esiste un unico meccanismo di controllo degli accessi (Es. system call stettimeofday VS kill ). Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 2 / 32

Permessi di accesso Chi? Cosa? Soggetti UNIX: utenti gruppi processi Oggetti UNIX: file Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 3 / 32

Controllo degli accessi tramite file system Ogni file ha associati un proprietario ed un gruppo. Il proprietario può impostare, a piacere, i permessi di accesso a quello specifico file. Per per stabilire a chi appartiene un file: ls -l filename [ 1 6 : 1 0 : 1 2 ] s r d j a n @ s a l v a d o r t m p : $ l s l t o t a l 16 rw r r 1 bob s t u d e n t e 1332 Apr 9 1 5 : 5 6 a p p u n t i. t x t drwx 2 s r d j a n s r d j a n 4096 Jan 1 1970 o r b i t s r d j a n drwxrwxrwt 2 r o o t r o o t 4096 Apr 9 1 5 : 1 9 VMwareDnD drwx 2 r o o t r o o t 4096 Apr 9 1 5 : 2 0 vmware r o o t Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 4 / 32

Controllo degli accessi tramite file system Ogni file ha associati un proprietario ed un gruppo. Il proprietario può impostare, a piacere, i permessi di accesso a quello specifico file. Per per stabilire a chi appartiene un file: ls -l filename [ 1 6 : 1 0 : 1 2 ] s r d j a n @ s a l v a d o r t m p : $ l s l t o t a l 16 rw r r 1 bob s t u d e n t e 1332 Apr 9 1 5 : 5 6 a p p u n t i. t x t drwx 2 s r d j a n s r d j a n 4096 Jan 1 1970 o r b i t s r d j a n drwxrwxrwt 2 r o o t r o o t 4096 Apr 9 1 5 : 1 9 VMwareDnD drwx 2 r o o t r o o t 4096 Apr 9 1 5 : 2 0 vmware r o o t Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 4 / 32

Soggetti e oggetti: diritti Soggetti Oggetto diritti di accesso determinati da UID/GID diritti di accesso memorizzati insieme all oggetto stesso (inode) Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 5 / 32

Permessi sul file system Tipologie di permessi di accesso: lettura (r o 4), scrittura (w o 2), esecuzione (x o 1). Per i file: r: permette di leggere il file w: permette di scrivere il file x: permette l esecuzione Per le directory: r: permette di leggere il contenuto delle directory (elenco dei file) w: permette di modificare il contenuto delle directory x: permette l attraversamento della directory Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 6 / 32

Permessi dei processi Processi e proprietario Il proprietario del processo può inviare segnali al processo stesso o modificare la priorità di scheduling del processo in Unix ogni processo possiede le proprie credenziali (UID, GID) che determinano cosa un processo può fare; l utilizzo richiede supporto sia dal processo che dalla risorsa interessata; Nome uid, gid euid, egid suid, sgid fsuid, fsgid Descrizione real UID/GID effective UID/GID saved UID/GID effective file access UID/GID [Linux] Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 7 / 32

L account di root È l account amministratore che è onnipotente all interno di un sistema UNIX (superuser) può effettuare qualsiasi operazione valida root ha UID = 0 Esempi di operazioni privilegiate: modifica del hostname configurazione di interfacce di rete spegnimento del sistema modifica del proprio UID e/o GUID (Es. programma login ) Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 8 / 32

Permessi di accesso quando un processo è creato eredita la credenziali del padre; le credenziali possono essere modificate successivamente (e.g. system call); solitamente uid, euid, suid hanno lo stesso valore; Cosa succede quando un processo esegue un programma setuid? Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 9 / 32

Permessi di accesso setuid Quando un processo esegue un programma setuid i campi euid e fsuid sono impostati con l UID del proprietario del file. passwd le password sono salvate in un file comune al quale non è possibile accedere da utente non privilegiato; per cambiare la password l utente invoca il programma /usr/bin/passwd che ha il flag setuid impostato ed il cui proprietario è l utente con UID = 0 (root); quando il processo forkato dalla shell esegue passwd le credenziali del processo euid e fuid sono impostate con valore pari al UID del proprietario del file, cioè 0; il processo può accedere al file perché quando il kernel controlla i permessi trova fsuid a 0; Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 10 / 32

Permessi di accesso programmi setuid Un utente maligno può sfruttare bug nel codice per effettuare privilege escalation. Unix permette ai processi di acquisire il privilegio setuid solo quando necessario e rilasciarlo quando non se ne ha più bisogno. system call: getuid, geteuid, getresuid, setuid, seteuid, setresuid. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 11 / 32

Permessi di accesso Basati su effective UID/GID: Algoritmo real UID/GID: ereditati dal genitore; riconducibili solitamente a UID/GID dell utente che ha iniziato la sessione di lavoro associata al processo effective UID/GID: UID utilizzato quando viene effettuato il controllo dei privilegi del processo; solitamente coincide con RUID 1 se UID del soggetto corrisponde al proprietario del file, si fa riferimento ai bit di permesso relativi al proprietario; altrimenti 2 se un GID del soggetto corrisponde al gruppo del file si fa riferimento ai bit di permesso relativi al gruppo; altrimenti 3 si utilizzano i bit relativi a world Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 12 / 32

Permessi speciali Per i file: SUID: associa all eseguibile in esecuzione i permessi del proprietario del file SGID: associa all eseguibile in esecuzione i permessi del gruppo di appartenenza Per le directory: sticky: non consente di modificare un file a un utente diverso dal proprietario, neanche dagli utenti che hanno permesso di scrittura sulla directory SGID: fa in modo che i permessi dei file creati appartengano al gruppo definito SGID Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 13 / 32

Problema: passwd? s r d j a n @ s a l v a d o r : $ l s l / u s r / b i n / passwd????????? 1 r o o t r o o t 43280 Apr 9 21:54 / u s r / b i n / passwd s r d j a n @ s a l v a d o r : $ l s l / e t c / shadow rw r 1 r o o t shadow 2. 4K Apr 9 21:54 / e t c / shadow Indipendentemente da quali siano i permessi concessi sul eseguibile passwd, il programma deve modificare file (/etc/shadow) per i quali solamente l utente root, il proprietario, ha il permesso di scrittura (w)!. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 14 / 32

Soluzione: setuid s r d j a n @ s a l v a d o r : $ l s l / u s r / b i n / passwd rwsr xr x 1 r o o t r o o t 43280 Apr 9 21:54 / u s r / b i n / passwd s r d j a n @ s a l v a d o r : $ c a t / proc /13618/ s t a t u s Name : passwd S t a t e : S ( s l e e p i n g ) Tgid : 13618 Pid : 13618 PPid : 13419 T r a c e r P i d : 0 Uid : 1000 0 0 0 Gid : 1000 1000 1000 1000... Funzionamento: Quando un utente cambia la propria password usando il comando passwd il RUID corrisponde all UID dell utente che ha eseguito il programma mentre EUID corrisponde al proprietario del file, cioè root. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 15 / 32

umask permessi di default impostati alla creazione di un file, secondo una maschera definita maschera di default impostata tramite il comando umask la maschera indica i permessi che non vengono attribuiti; e.g., umask 022 non viene permessa la scrittura ne al gruppo ne ad altri utenti (permessi reali & umask) Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 16 / 32

Attributi (1) Oltre i permessi è possibile definire alcuni attributi ai file che devono essere supportati dai file system (ext2 ext3 ext4). Attributo A a c i 1 s u S Descrizione Non aggiorna la data di accesso (atime) Permette l aggiunta al file solo in append Dice al kernel di compr. e decompr. immutabile, non permette nessuna modifica al file cancella i dati con altri dati nulli. Recupero file dalla cancellazione ogni scrittura viene eseguita immediatamente. 1 Invocabile solo da utente root Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 17 / 32

Attributi (2) chattr [opzioni] [modalità] file... si possono specificare gli attributi con i segni +=- + vengono aggiunti gli attributi specificati, con - vengono rimossi gli attributi specificati, = vengono impostati gli attributi cosi come specificati. lsattr[opzioni] file... Opzione Descrizione -R operazione ricorsiva -a Elenca tutti i file (anche nascosti) -d Elenca anche le directory Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 18 / 32

chown (1) chown comando per cambiare proprietario al file. chown [opzioni] [utente][:[gruppo]] file R lavora in modo ricorsivo from=utente:gruppo cambia i file del utente:gruppo Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 19 / 32

chown (2) chown srdjan miofile cambia l utente del file miofile impostando l utente srdjan chown srdjan:users miofile cambia l utente e gruppo del file miofile rispettivamente nell utente srdjan e gruppo users chown -R from=root srdjan miadir cambia l owner dei file appartenenti all utente root nell utente srdjan Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 20 / 32

chgrp (1) chgrp comando per cambiare gruppo al file. chgrp [opzioni] gruppo file... chgrp users file questo comando imposta il gruppo users associato al file. chgrp -R users /home/srdjan questo comando imposta in modo ricorsivo il gruppo users associati ai file contenuti nella directory e sottodirectory. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 21 / 32

chmod (1) chmod comando per cambiare permessi. chmod [opzioni] modalità dei permessi file... u g o a Utente proprietario del file Gruppo proprietario Utente diverso Tutti gli utenti indifferentemente Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 22 / 32

chmod (2) r w x s t accesso lettura permesso scrittura permesso esecuzione Riguarda file eseguibili e directory (SUID SGID) file eseguibili e directory. STICKY bit chmod -R go-rwx /* Toglie al gruppo e agli altri utenti la possibilità di scrittura lettura ed esecuzione della directory e nelle directory successive. chmod -R a+rx /* Assegna a tutti gli utenti il permesso di lettura ed esecuzione partendo dalla directory e considerando le sottodirectory. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 23 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 24 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 24 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 24 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 24 / 32

sudo VS su Necessità di ottenere accesso con un altro utente: sudo (comando), su (login shell). 1 sudo: non richiede la condivisione della password; su: si; 2 sudo: solitamente implica l esecuzione di un comando; su: no; 3 sudo: permette la definizione di determinati vincoli (/etc/sudoers); su: no; 4 sudo: mantiene il log di tutti i comandi; su: no; Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 24 / 32

Esercizio 0xA0 Creare l utente foobar Utilizzando l utente bob presente sul sistema, impostare la sua umask in modo tale che possa creare file e directory leggibili e scrivibili solo da lui (i.e. negando qualsiasi altro permesso a group e other). Modificare ora la umask dell utente bob in modo che solo lui abbia il diritto di modificare e leggere i nuovi file che crea. Tale modifica deve persistere al riavvio del sistema. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 25 / 32

Esercizio 0xA1 Permettere a bob di creare la directory /usr/local/bob senza aggiungerlo al gruppo root senza creare la directory come utente root senza cambiare proprietario/permessi della directory /usr/local Tale modifica deve persistere ad eventuali reboot del sistema. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 26 / 32

Esercizio 0xA2 Creare la directory /usr/local/bob/tmp e permettere l accesso, la scrittura e la lettura in tale directory a tutti (user, group, other). Fare in modo che soltanto gli utenti proprietari dei file creati nella directory abbiamo la possibilità di cancellarli. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 27 / 32

Esercizio 0xA3 Creare la directory /home/bob/suid-files/ e cercare tutti i file suid root e copiarli nella directory appena creata impostando bob come proprietario e gruppo di appartenenza di ciascun file. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 28 / 32

Esercizio 0xA4 Creare un file appendme in /home/bob/ in modo tale che sia solamente possibile aggiungere dati e non eliminarne. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 29 / 32

Esercizio 0xB1 Scrivere un programma C che scriva su stdout le credenziali del processo relativo all esecuzione del vostro programma. Si modifichi il proprietario del programma come root, bob, alice e si attribuiscano gli opportuni permessi in modo tale che tale programma sia eseguito con le credenziali dell utente root, bob, alice. Eseguire il programma con diversi utenti e vedere come cambiano i valori di: RUID, EUID, SUID. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 30 / 32

Esercizio 0xB2 Individuare ID dell utente eve. Hint Creare un nuovo gruppo malicious e aggiungere l utente eve al gruppo appena creato. Usando l account di eve, creare un file testuale /tmp/evil.txt. Modificare i permessi di tale file per fare in modo che solamente i membri del gruppo malicious possano leggerne il contenuto. Scrivere un programma C, che utilizzi la system call setsgid, che verrà utilizzato per generare un programma che consenta all utente bob di leggere il contenuto di /tmp/evil.txt. Proprietario del file eseguibile: root; setuid (root) su file eseguibile generato. Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 31 / 32

Link e materiale utile Unix history (http://www.bell-labs.com/history/unix/) Unix and Linux System Administration Handbook, Evi Nemeth - Garth Snyder - Trent R. Hein - Ben Whaley, ED. Pretience Hall, 4th ed. The Linux Programming Interface, Michael Kerrisk, ED. no starch press Linux System Administration, Tom Adelstein & Bill Lubanovic, ED. O Reilly Setuid Demistified, H. Chen, D. Wagner, and D. Dean, 2002. Linux Command Line and Shell Scripting Bible, Richard Blum, ED. Whiley Srdjan Matic, Aristide Fattori Controllo degli accessi in UNIX - parte I 12 Aprile 2013 32 / 32