Quote:
Originariamente inviato da 71104
dunque dunque... innanzitutto grazie fidel, utillima (  ) spiegazione, specialmente il post #5.
|
Di nulla
Quote:
Originariamente inviato da 71104
inizialmente stavo riflettendo sul fatto che tutto sommato implementare nel server il supporto per chrootare è inutile perché un amministratore di sistema potrebbe semplicemente avviare il server col comando chroot (giusto...?)
|
In teoria sì, però lasci tutto il lavoro (e la responsabilità) all'admin (che normalmente si fa uno script ad hoc, normalmente non basta fare chroot sull'eseguibile). Se l'admin non è proprio il massimo, può fare danni. Se il programma crea una chroot via codice, tanto meglio (lì sta al programmatore, che di solito si fida più di sè stesso che di un admin terzo

).
Quote:
Originariamente inviato da 71104
il punto chiave è appunto questo: come faccio a cedere i permessi di root? devo loggarmi come un altro utente o posso restare root però con meno permessi? è necessario creare un altro processo o posso restare nel processo avviato come root? che syscall uso per loggarmi come altro utente/avviare processo come altro utente/rinunciare a dei permessi/altra soluzione ?
|
I comandi Linux hanno il nome delle relative system calls, quindi nello specifico potrai usare chown (via codice hai anche a disposizione fchown e lchown) per i permessi sui files (se vuoi cambiarli), sui permessi del processo setuid/seteuid, setgid/setegid, setsid.
Con setsid puoi anche disassociarti dal terminale di controllo per rendere il server immune a certi segnali (insomma lo puoi rendere un "demone" (o meglio daemon)).