Estoy tratando de usar setuid() y setgid() para establecer los respectivos identificadores de un programa para reducir los privilegios hacia abajo desde la raíz, sino para usarlos Necesito saber el UID y GID del usuario Quiero cambiar a .¿Obtiene el UID y el GID mediante programación mediante un nombre de usuario en Unix?
¿Hay una llamada al sistema para hacer esto? No quiero codificarlo ni analizarlo desde/etc/passwd.
También me gustaría hacer esto mediante programación en lugar de utilizar:
Identificación -u USUARIO
Cualquier ayuda sería muy apreciada
¿Qué pasa con el análisis/etc/password? – eduffy
Debería haber dicho: "Preferiría no analizar/etc/passwd", ya que sospechaba que había una manera más fácil, y gracias a las respuestas, lo encontré. – Evan
Una cosa incorrecta con el análisis/etc/passwd es que los nombres de usuario pueden no almacenarse allí; pueden estar en algún servidor de directorio (LDAP, etc.). Otra cosa incorrecta es que ya está hecho para ti, por getpwnam() et al. –