Sto provando a usare setuid() e setgid() per impostare i rispettivi id di un programma per eliminare i privilegi da root, ma per usarli ho bisogno di conoscere l'uid e il gid dell'utente che voglio modificare .Ottiene automaticamente UID e GID dal nome utente in Unix?
C'è una chiamata di sistema per fare questo? Non voglio hardcode o analizzare da/etc/passwd.
Inoltre mi piacerebbe fare questo a livello di codice piuttosto che usare:
id -u USERNAME
Qualsiasi aiuto sarebbe molto apprezzato
Cosa c'è di sbagliato con l'analisi/etc/passwd? – eduffy
Avrei dovuto dire, "Preferirei non analizzare/etc/passwd", poiché sospettavo che esistesse un modo più semplice e, grazie alle risposte, l'ho trovato. – Evan
Una cosa errata con l'analisi di/etc/passwd è che i nomi utente potrebbero non essere memorizzati lì - potrebbero trovarsi da qualche parte su un server di directory (LDAP, ecc.). Un'altra cosa sbagliata è che è già fatto per te, da getpwnam() et al. –