Principio di funzionamento di setuid?

Installazione, configurazione e uso di programmi e strumenti.
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2933
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Principio di funzionamento di setuid?

Messaggio da DoctorStrange »

Buonasera a tutti,

Vorrei chiedere alla comunità qual'è il principio di funzionamento specifico del permesso setuid.

Da quello che ho capito, funziona in questo modo: In un file io posso specificare proprietario, gruppo e permessi per chiunque possa in qualche modo vedere ogni singolo file del sistema.
Se il permesso setuid è impostato, questo vuol dire che un utente può trattare quel particolare file come se lui fosse il proprietario di quel file e quindi comportarsi, nei confronti di quel file, come se fosse il proprietario.

La domanda è: quali criteri deve rispettare un generico utente per poter acceder a questo file con setuid impostato? Ovvero, un qualunque utente con un account nel sistema potrà sempre accedere a quel file con il setuid impostato, oppure deve rispettare dei criteri specifici?

Io avevo pensato che un utente, per poter trattare un file con i permessi che gli garantirebbe il setuid, deve comunque essere parte quanto meno del gruppo specificato nel gruppo del file stesso, ma non ho trovato riscontri da nessuna parte.

Qualcuno di voi mi sa chiarire il dubbio?

Grazie mille !!
Avatar utente
Filoteo
Entusiasta Emergente
Entusiasta Emergente
Messaggi: 1343
Iscrizione: venerdì 28 agosto 2015, 9:38
Desktop: Gnome
Distribuzione: Arch Linux

Re: Principio di funzionamento di setuid?

Messaggio da Filoteo »

Se il permesso setuid è impostato, questo vuol dire che un utente può trattare quel particolare file come se lui fosse il proprietario di quel file e quindi comportarsi, nei confronti di quel file, come se fosse il proprietario.
No, semplicemente il bit setuid fa in modo che un eseguibile parta con i permessi del proprietario del file piuttosto che con i permessi del utente che lo esegue.

Per esempio, per cambiare la password del tuo utente, usi il programma passwd che salva le passwowd (sotto forma di hash) nel file /etc/shadow. Quest’ultimo è leggibile e scrivibile solo da root perché gli utenti non devono poter vedere gli hash degli altri utenti (né tanto meno quello dell’utente root). Di conseguenza per poter comunque cambiare la password il programma passwd, oltre a proprietario e gruppo root, ha il bit setuid. In questo modo quando l’utente invoca passwd il programma viene eseguito come root potendo apportare la modifica.

Come corollario, il bit setuid va maneggiato con cautela: una vulnerabilità in passwd potrebbe permetterti di ottenere i privilegi di root. Per lo stesso motivo, non puoi impostare il bit setuid sugli script.
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2933
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Principio di funzionamento di setuid?

Messaggio da DoctorStrange »

Ti ringrazio. Tutto chiaro, ma ti chiedo conferma di questo che hai scritto:
Filoteo ha scritto: non puoi impostare il bit setuid sugli script.
Ho provato ad impostare il setuid su un mio script personale, realizzato con il mio utente regolare (non root) e mi sembra che abbia impostato correttamente il setuid. Viene contrassegnato con "-rwsr-xr-x".

Però forse tui fai riferimento ad un particolare tipo di script?
Avatar utente
DoctorStrange
Imperturbabile Insigne
Imperturbabile Insigne
Messaggi: 2933
Iscrizione: mercoledì 14 ottobre 2015, 9:33
Desktop: Gnome3
Distribuzione: Ubuntu 22.04 LTS Jammy Jellyfish
Sesso: Maschile
Località: Roma, Italia

Re: Principio di funzionamento di setuid?

Messaggio da DoctorStrange »

Come non detto. Mi sono informato ed avevi ragione. Niente suid sugli script.
Scrivi risposta

Ritorna a “Applicazioni”

Chi c’è in linea

Visualizzano questa sezione: 0 utenti iscritti e 12 ospiti