PDA

View Full Version : comando passwd e permessi sul file /etc/passwd


boysna
23-04-2005, 17:55
In un sistema Unix, il file /etc/passwd, che contiene le password degli utenti del sistema, ha le seguenti informazioni associate come restituite dal comando “ls –l”:

-rw-r--r-- 1 root root 1281 mar 11 22:56 /etc/passwd

Tale file è di proprietà del superuser del sistema ed è solo leggibile da tutti gli altri utenti. Si
supponga che sul sistema esista un utente user. Il comando passwd permette all’utente user di cambiare la password e quindi di modificare (scrivere) il file /etc/passwd. Spiegare in modo
esauriente come sia possibile tale modifica visto che l’utente user non ha il permesso di scrittura sul file /etc/passwd.

Questa è la traccia di un esame di "Laboratorio di Sistemi Operativi" a cui ancora non sono riuscito a dare una risposta. Qualcuno mi sa spiegare (come dalla traccia) perchè è possibile tale modifica visto che l'utente user non ha i permessi necessari?

l.golinelli
23-04-2005, 18:02
ls -l /usr/bin/passwd

Noti qualcosa?

dennyv
23-04-2005, 23:12
SUID -> "SET USER ID" rulez...giusto?? ;)

l.golinelli
24-04-2005, 11:35
Sì, essendo il file di proprietà di root...

boysna
25-04-2005, 14:21
Non ho capito bene. Mi spiegate con parole semplici anche a me?

kingv
25-04-2005, 15:17
Non ho capito bene. Mi spiegate con parole semplici anche a me?


http://www.tech-faq.com/unix-file-permissions.shtml

recoil
25-04-2005, 19:01
Non ho capito bene. Mi spiegate con parole semplici anche a me?

il link di kingv è sicuramente l'ideale per farsi un'idea precisa
tieni conto che c'è una flag particolare, il SUID, che permette di eseguire quel file avendo gli stessi diritti del proprietario

quindi se tu hai un file di root che è SUID lo esegui con tutti i privilegi. chiaramente non bisogna abusare di questa feature ;)

boysna
26-04-2005, 15:23
Vediamo se ho capito.
Quando parte un processo si hanno associati ad esso effective e real id. Nel campo st_uid del file etc/passwd c'è il proprietario che sarebbe root. Accedendo con l'id avuto al login time non avrei i permessi per modificare passwd ma in alcuni casi è possibile rendere effective user id uguale all'id proprietario del file con Set-User-Id. Praticamente si va a settare un flag speciale nel campo st_mode che fa si che il processo sia eseguito con l'id del proprietario, indi root. A questo punto et voilà il gioco è fatto perchè avndo il processo passwd l'id del proprietario avrà i permessi in scrittura.

Correggetemi se sbaglio...

Fa-sum
26-04-2005, 15:27
è molto semplice la cosa... l'applicazione passwd ha i privilegi settati in modo da poter editare quel file no?

o sbaglio?

boysna
26-04-2005, 15:31
Permettetemi di porvi un altro quesito. Se ho un editor "scrivi" e creo un file con esso(test.txt). Supponiamo che entrambi i file sono di proprietà dell'utente user1. Se prendo un altro utente user2, queto puo modificare test.txt usando scrivi?

Secondo me dipende dai permessi. Se li ha, puo accedere a scrivi e modificare test. Se non li ha si fa lo stesso ragionamento di sopra. Cioè si deve rendere il real user id uguale a effective user id in modo da poter modificare i due files.

boysna
26-04-2005, 15:32
è molto semplice la cosa... l'applicazione passwd ha i privilegi settati in modo da poter editare quel file no?

o sbaglio?

penso di si...

Fa-sum
26-04-2005, 19:02
Permettetemi di porvi un altro quesito. Se ho un editor "scrivi" e creo un file con esso(test.txt). Supponiamo che entrambi i file sono di proprietà dell'utente user1. Se prendo un altro utente user2, queto puo modificare test.txt usando scrivi?

Secondo me dipende dai permessi. Se li ha, puo accedere a scrivi e modificare test. Se non li ha si fa lo stesso ragionamento di sopra. Cioè si deve rendere il real user id uguale a effective user id in modo da poter modificare i due files.


è ovvio che dipende dai permessi! eheheh e altrimenti a cosa servirebbero? :°D

Fantasy III
27-04-2005, 12:10
etc/passwd permette agli utenti di cambiare la loro password. Ciò richiede l'abilità di scrivere in etc/passwd, che gli utenti "normalmente" non hanno questo previlegio. I permessi del file di /usr/bin/passwd sono -r-sr-xr-x, la 's' indica che il file è SUID, quindi non ha importanza chi esegue il programma , si avranno sempre i privilegi dell'utente root.

bye ;)

boysna
27-04-2005, 23:15
I permessi del file di /usr/bin/passwd sono -r-sr-xr-x, la 's' indica che il file è SUID,
bye ;)

Cosa vuol dire? da dove esce quella s? (ho capito sta per s ma nella maschera dei permessi non ci sono solo r w x?)
Comunque stampa a video (Fantasy III ha capito a cosa mi riferisco... :p )

Fantasy III
28-04-2005, 00:23
Cosa vuol dire? da dove esce quella s? (ho capito sta per s ma nella maschera dei permessi non ci sono solo r w x?)
se leggi "attentamente" qui (http://www.tech-faq.com/unix-file-permissions.shtml) [è lo stesso link che ha segnalato l'utente Kingv] capirai... :p

Comunque stampa a video (Fantasy III ha capito a cosa mi riferisco... :p )
aa belloooo !!! :rotfl:
ho eseguito il programma e stampa a file...non ci siamo proprio...:nono:

HexDEF6
28-04-2005, 00:31
In un sistema Unix, il file /etc/passwd, che contiene le password degli utenti del sistema

niente shadow?? :eek: :eek:

digli di installare un linux umanamente recente prima di guardare come si cambiano le password! :sofico: :sofico: :sofico: :D :D

Fa-sum
28-04-2005, 21:47
niente shadow?? :eek: :eek:

digli di installare un linux umanamente recente prima di guardare come si cambiano le password! :sofico: :sofico: :sofico: :D :D

vabeh dai porello... era scontato :)

boysna
28-04-2005, 22:36
se leggi "attentamente" qui (http://www.tech-faq.com/unix-file-permissions.shtml) [è lo stesso link che ha segnalato l'utente Kingv] capirai... :p


aa belloooo !!! :rotfl:
ho eseguito il programma e stampa a file...non ci siamo proprio...:nono:

:mc:
provo e riprovo ma non ci riesco proprio mai... :muro:

boysna
28-04-2005, 22:39
etc/passwd permette agli utenti di cambiare la loro password. Ciò richiede l'abilità di scrivere in etc/passwd, che gli utenti "normalmente" non hanno questo previlegio. I permessi del file di /usr/bin/passwd sono -r-sr-xr-x, la 's' indica che il file è SUID, quindi non ha importanza chi esegue il programma , si avranno sempre i privilegi dell'utente root.

bye ;)

ah, e poi non basta fare la traduzione per capire. La prossima volta ti interrogo così vediamo se hai studiato o hai solo fatto la traduzione...