Domanda

Desidero un processo con privilegi utente (non root) per avviare nuovi processi come utente nobody.Ho provato una chiamata diretta a setuid che fallisce con -1 EPERM SU Ubuntu 8.04:

#include <sys/types.h>
#include <unistd.h>

int main() { 
       setuid(65534);
       while (1);
       return 0;
}

Come dovrei farlo invece?

È stato utile?

Soluzione

Voi Volere richiedono assistenza e molta fiducia da parte dell'amministratore di sistema.Gli utenti ordinari non sono in grado di eseguire l'eseguibile di loro scelta per conto di altri utenti, punto.

Potrebbe aggiungere la tua domanda a /etc/sudoers con le impostazioni corrette e sarai in grado di eseguirlo come con sudo -u nobody.Funzionerà sia per gli script che per gli eseguibili binari.

Un'altra opzione è che lo farà chown nobody E chmod +s sul tuo eseguibile binario e sarai in grado di eseguirlo direttamente.Questa attività deve essere ripetuta ogni volta che l'eseguibile cambia.

Questo potrebbe funzionare anche per gli script se crei un piccolo eseguibile di supporto che semplicemente lo fa exec("/home/you/bin/your-application").Questo eseguibile può essere reso suid-nobody (vedi sopra) e puoi modificarlo liberamente your-application.

Altri suggerimenti

Per quanto ne so, non puoi a meno che tu non sia root o abbia sudo configurato per consentirti di cambiare utente.Oppure puoi fare in modo che il tuo eseguibile abbia il bit suid impostato e che nessuno lo possegga.Ma ciò richiede anche l'accesso root.

L'utente "nessuno" è ancora un utente.Non sono sicuro di quale sia il tuo ragionamento nel far eseguire il programma come nessuno, non aggiungerà alcuna sicurezza aggiuntiva.È più probabile che ti apra ad altri problemi.

Seguirei il consiglio di squadette di utilizzare un'applicazione di supporto.

calife è un'alternativa a sudo.

Calife è un piccolo programma che consente ad un amministratore di sistema UNIX di diventare root (o un altro utente) sulle sue macchine senza fornire la password di root ma la propria.

Ho attraversato il setuid-sandbox progetto oggi mentre leggo LWN, che fa quello che sto cercando nel modo corretto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top