Ciao, Devo preparare un esame sui sistemi operativi, in particolare su unix e Freebsd!!

Nel mio libro c'è una cosa che non sono riuscito a capire : come fa il programma passwd a modificare le password del utente che lo chiama, senza chiedere i diritti di root, in quanto il programma modifica il file shadow che è di proprietà di root e soprattutto solo root hai i diritti di lettura e scrittura su questo file, se si prova ad aprirlo normalmente ovviamente si ha un errore di permessi non sufficienti...
Quello che ha me non è chiaro è come una funzione con diritti di utente possa superare la barriera dei permessi e modificare il file???

Forse si prendono i diritti di root, tramite la setuid , ma anche questa funzione per settare l'uid a zero a bisogno dei diritti di root!!! Cosi si formerebbe un circolo vizioso... Di cui io non riesco a vedere al fine... Ma ci deve essere un modo sensato e sicuro per fare quello che fa passwd!! Ho provato a scaricare i sorgenti ma non sono riuscito a capirli...

Mi sapete aiutare??? L'eame mi piace molto è per questo che cerco di scendere nei dettagli....

Si spera di prendere un buon voto....


Grazie in anticipo per il vostro interesse..