Modalità di accesso ai files

Generalità

Ogni utente del sistema ha un id di utente ( user-id reale ), un nome di login, e una password.
L' id di utente è un numero usato dal sistema operativo per identificare l' utente, il nome di login e la password sono due stringhe ( associate nel sistema al corrispondente user-id per ogni singolo utente ) che vengono utilizzate da quest' ultimo per accedere al sistema.
Ogni utente appartiene ad almeno un gruppo, identificato a sua volta da un nome e da un numero ( group-id reale ).

Protezione dei files

Lo scopo degli identificatori di utente e di gruppo è quello di assicurare la protezione dei file e delle directory da accessi indesiderati.
Quando un utente crea un file, è proprietario ( owner ) del file.
Per ogni file, sono definiti dei permessi d' accesso nei confronti del proprietario, dei membri dello stesso gruppo del proprietario, e di tutti gli altri utenti.
Esiste anche un utente privilegiato , il superuser, che ha tutti i diritti su qualsiasi file: ha nome di login root e id uguale a 0 ( la sua password è segreta ).

Quando un utente esegue un programma ( in particolare un comando di sistema ), al processo che esegue il programma vengono associati gli id di utente e di gruppo dell'utente stesso.
Se questo processo deve compiere un' operazione ( lettura, scrittura, o esecuzione ) su un file, il sistema operativo controlla che il file abbia il permesso richiesto per l' utente e nel caso in cui non lo abbia gli nega la possibilità di eseguire l' operazione.

In alcuni casi si presenta la necessità per l' utente di poter disporre temporaneamente dei diritti di superuser o di quelli di un altro utente;
uno dei casi più comuni è rappresentato dalla possibilità dell' utente di modificare la propria password.
Per farlo, deve poter scrivere nel file /etc/passwd che contiene le passwords cifrate di tutti gli utenti e naturalmente ha i permessi di scrittura soltanto per il superuser.

In questi casi si usa il meccanismo dell' id effettivo:
gli id reali di utente e di gruppo sono permanentemente associati ai corrispondenti utenti, quelli effettivi vengono assunti temporaneamente nel corso dell' esecuzione di determinati programmi, e sono uguali agli id dei proprietari di tali programmi.
Nel caso della modifica della password, l' assunzione dell' id effettivo ha luogo attraverso il comando passwd, che appartiene al superuser;
pertanto quando il comando passwd viene invocato da un utente, viene eseguito con lo user-id del superuser, non con quello dell' utente: in questo modo l' utente ha la possibilità di accedere in scrittura a /etc/passwd e modificare la propria password.

Un file eseguibile può assumere l' id del proprietario come id effettivo soltanto se gli è stata associata la proprietà di Set User ID.


Bottoni