Estos días estoy trabajando en una aplicación web para la gestión de usuarios y cursos. Esta aplicación está hecha en PHP con una base de datos MYSQL, crea usuarios en un servidor LDAP y tambíen crea las homes de estos usuarios en otro servidor. Hoy voy a explicar como crear esas homes en un servidor que no es el de la aplicación. Otro día explicare todo el tema de PHP con LDAP.
Bien, lo primero que vamos a hacer es instalar el soporte de SSH para PHP en Ubuntu 12.04 en adelante.
sudo apt-get install libssh2-1-dev libssh2-php
Ahora comprobamos si es posible la conexión SSH al servidor
if(!($con = ssh2_connect("nombre servidor", 22))){ echo "No se puede iniciar una conexión SSH";}
Si se puede, creamos una conexión mediante usuario y contraseña, hay que ser conscientes de que esta información es sensible y estará en nuestro código.
else { if(!ssh2_auth_password($con, "root", "******")) { echo "error en la autenticación";}
Si la conexión ha sido correcta ejecutamos los comandos pertinentes, en mi caso creo una carpeta que será la home del usuario y le pongo a ese usuario de propietario, que viene dado de un formulario
else { if(!($stream = ssh2_exec($con, "mkdir /volume1/users_homes/'$nick' && chown '$nick'@saregune:users /volume1/users_homes/'$nick'" )) ){ echo "error al ejecutar los comandos"; } else{ echo "home creada" ; } } }
Excelente, funciona perfecto.
saregune:users
para q es eso por favor
El @saregune es una cosa específica de nuestra red y lo de users es el grupo.Al final es simplemente la ejecución del comando chown.
Hola, es posible enviar x cantidad de comandos?
Buenas,
si es posible, tienes que concatenar los comandos con &&.
Un saludo.