Rompicapo tra permessi script e sudo
Inviato: lun 4 gen 2021, 18:01
Come al solito avrei un rompicapo, del quale non riesco a trovare informazioni in rete, sicuramente perché non inbroccato la giusta chiave di ricerca.
Ho uno script bash che deve girare coi permessi dell'utente "news".
Tuttavia voglio lanciarlo da utente semplice.
Non vi tedio con altri dettagli sulla faccenda, se servirà aggiugerò informazioni in seguito.
sudo -u news /usr/bin/newsync.sh
Lo script newsync.sh lanciato come utente "news" realmente loggati come tale non restituisce errori.
Invece lanciandolo come "user", col comando sudo riportato sopra ritorna:
Quel "find" cerca nella HOME dell'utente "news".
In pratica i permessi che gli servono per farlo sono di attraversamento della directory, e forse lettura, in ogni caso quei due permessi sono presenti nella dir in questione.
La domanda è quindi:
se è vero che attraverso sudo, quel comando "find" è come se fosse eseguito dall'utente "news", che ha tutti i permessi necessari allo scopo... Perché mai restituisce Permesso negato, quando invece lanciandolo direttamente come utente "news" funziona?
Il paradosso è che siccome la directory su cui deve lavorare "find" ha permessi di lettura e attraversamento anche per gli utenti semplici, lanciando da utente semplice:
Ecco che non ritorna alcun errore.
Solo quando si usa sudo con lo script...
Aggiungo che, errore a parte, il comando find viene comunque eseguito anche quando lanciato attraverso sudo e lo script sopra...
Avreste qualche idea di cosa possa non funzionare come mi aspetterei?
Ho uno script bash che deve girare coi permessi dell'utente "news".
Tuttavia voglio lanciarlo da utente semplice.
Non vi tedio con altri dettagli sulla faccenda, se servirà aggiugerò informazioni in seguito.
sudo -u news /usr/bin/newsync.sh
Lo script newsync.sh lanciato come utente "news" realmente loggati come tale non restituisce errori.
Invece lanciandolo come "user", col comando sudo riportato sopra ritorna:
Codice: Seleziona tutto
find: .: Permesso negatoCodice: Seleziona tutto
drwxr-xr-x 2 news news 4096 gen 4 17:00 /usr/lib/news/La domanda è quindi:
se è vero che attraverso sudo, quel comando "find" è come se fosse eseguito dall'utente "news", che ha tutti i permessi necessari allo scopo... Perché mai restituisce Permesso negato, quando invece lanciandolo direttamente come utente "news" funziona?
Il paradosso è che siccome la directory su cui deve lavorare "find" ha permessi di lettura e attraversamento anche per gli utenti semplici, lanciando da utente semplice:
Codice: Seleziona tutto
find /usr/lib/news/ -name "*conf"Solo quando si usa sudo con lo script...
Aggiungo che, errore a parte, il comando find viene comunque eseguito anche quando lanciato attraverso sudo e lo script sopra...
Avreste qualche idea di cosa possa non funzionare come mi aspetterei?