Antecedentes: Estoy escribiendo un script para una empresa que permitirá a los usuarios crear cuentas FTP a través de una interfaz web. En el fondo, la secuencia de comandos debe ejecutar un montón de comandos:Ejecutando comandos a través de scripts PHP/Perl como usuario privilegiado en Linux
- agregar el usuario al sistema (useradd)
- abrir y editar varios archivos
- electrónico del usuario a través de sendmail
y algunas otras cosas ...
Básicamente estoy buscando la forma más segura de hacer esto. He oído hablar del método setuid, el método sudo y, por supuesto, ejecutar httpd como usuario privilegiado. Habrá controles de cordura en los datos ingresados por supuesto antes de que se ejecuten los comandos (es decir, solo caracteres alfanuméricos en los nombres de usuario)
¿Cuál es el método utilizado por los scripts populares (webmin, por ejemplo), como debe ser bastante seguro?
El único problema con esto es: 1) Necesito las cuentas creadas inmediatamente, no puedo esperar a cron ... que conduce a 2) no quiero ejecutar cron cada minuto, ¿no hará eso mucha tensión en el servidor? – jtd
Por eso la otra opción es escribir un daemon (proceso en segundo plano) que observa la cola y realiza acciones de inmediato. Siempre que no esté utilizando el alojamiento compartido (y parece que no lo es si está agregando usuarios), esto probablemente sea factible. –
Correcto, hay varias maneras de hacerlo. Un cron de cada minuto estaría bien, si es aceptable esperar hasta un minuto. No pondrá una carga apreciable en el servidor; la mayoría de las veces, simplemente verá que la cola está vacía y saldrá. Probablemente solo escriba un pequeño daemon que verifique la cola cada segundo más o menos. Para sus propósitos, un daemon no enrutado de proceso único debería ser suficiente. El único inconveniente es que ahora debes asegurarte de que tu daemon siempre esté funcionando, pero eso se puede resolver fácilmente. – timdev