Me gustaría construir un programa que toma un nombre de usuario como parámetro y crea el usuario y su carpeta de inicio (con algunas especificaciones codificadas como carpeta, y las comprobaciones de seguridad como nombre de usuario no pueden ser root o un usuario existente).¿Cómo crear un usuario de Linux usando C/C++?
Mi aplicación necesita crear usuarios para dar acceso a SSH.
El programa se ejecutará usando sudo. He leído que debería escribirse en C o C++ en lugar de en scripts porque los scripts podrían explotarse fácilmente.
- ¿Me puede dar algunos consejos o buenas prácticas acerca de cómo lograr esto?
- ¿Debo usar alguna biblioteca Pam? ¿Hay algún ejemplo?
- ¿Cuáles son los posibles fallas de seguridad?
Sé C/C++ y ejecuto Ubuntu Lucid.
Editar:
El usuario sólo tendrá acceso sudo para ejecutar ese comando específico, no quiero que sea capaz de ejecutar un shell o derivación de algunos programas (por el cambio de entorno PATH, por ejemplo) .
Como resultado, por ejemplo, tendré que anular el RUTA, ¿De qué más debería preocuparme?
¿Por qué un script es más fácil de explotar que un ejecutable? Si tiene acceso de root, tiene acceso de administrador y no es nada que no pueda hacer. Hágalo de la manera más simple y use un script que use los comandos linux normales (y así haya sido completamente probado). –
El usuario solo tendrá acceso sudo para ejecutar ese comando específico, no quiero que pueda ejecutar un shell o omitir algunos programas (cambiando el entorno PATH, por ejemplo). – Weboide