elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Entrar al Canal Oficial Telegram de elhacker.net


+  Foro de elhacker.net
|-+  Programación
| |-+  Desarrollo Web (Moderador: #!drvy)
| | |-+  [Consulta] Crear usuario local en Ubuntu PHP+MySQL
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [Consulta] Crear usuario local en Ubuntu PHP+MySQL  (Leído 2,478 veces)
eduardozo

Desconectado Desconectado

Mensajes: 2


Ver Perfil
[Consulta] Crear usuario local en Ubuntu PHP+MySQL
« en: 22 Marzo 2015, 16:03 pm »

Hola Comunidad

Estoy trabajando en un proyecto web, de momento tengo un formulario de registro y LogIn enlazado con una base de datos en MySQL, en decir, Inserto nuevos usuarios en la tabla USERS.

Este tema lo he abierto porque necesito ayuda o consejos de alguien experto como ustedes, bien el asunto es el siguiente:

Necesito que para cada registro nuevo que se almacene en la base de datos se cree un usuario local en ubuntu.

cada vez que el usuario inicie la sesión podrá acceder a su directorio personal, ejemplo: "/home/Usuario" y ver todo el contenido, por ejemplo imágenes.

La tabla de usuarios tiene:
iduser=1001
Nombre=John
Apellido=Dalton
Usuario=jdalton
Password=r.f23we
Email=@email
Path=/home/jdalton


Gracias!


« Última modificación: 23 Marzo 2015, 12:28 pm por eduardozo » En línea

lastre

Desconectado Desconectado

Mensajes: 9



Ver Perfil
Re: [Consulta] Crear usuario local en Ubuntu PHP+MySQL
« Respuesta #1 en: 24 Marzo 2015, 15:44 pm »

en php puedes usar la función exec() con la que puedes ejecutar un script alojado en el servidor:
Código
  1. <?php
  2. $nombre_usuario = $_POST["usuario"];
  3. exec("crear_usuario.sh ".$nombre_usuario, $output); // Creo recordar que era algo asi
  4. ?>
  5.  

crear_usuario.sh:
Código
  1. useradd $1

NOTA:Tendrias que asegurarte de que la gente no pase valores raros ya que estas pasando lo que el usuario entra directamente al ordenador, asi que ojo.


« Última modificación: 24 Marzo 2015, 15:50 pm por lastre » En línea

[u]nsigned


Desconectado Desconectado

Mensajes: 2.397

JS/Node developer


Ver Perfil WWW
Re: [Consulta] Crear usuario local en Ubuntu PHP+MySQL
« Respuesta #2 en: 24 Marzo 2015, 16:01 pm »

Por lo que se, es preferible usar la funcion passthru que exec o system. Puedes probar algo asi:

Código
  1. <?php
  2.  
  3. $user_name = "unsigned";
  4. $user_pass = "noejecutesesto";
  5.  
  6. $ret_useradd = 0;
  7. $ret_passwd = 0;
  8.  
  9. passthru('useradd -m '.$user_name, $ret_useradd);
  10.  
  11. if ($ret_useradd) {
  12.        printf("No se pudo agregar usuario, codigo de salida: %d\n", $ret_useradd);
  13.        exit();
  14. }
  15.  
  16. passthru('echo "'.$user_name.':'.$user_pass.'" | chpasswd', $ret_passwd);
  17.  
  18. if ($ret_passwd) {
  19.        printf("No se pudo modificar password, codigo de salida: %d\n", $ret_passwd);
  20.        echo exec('userdel '.$user_name);
  21.        exit();
  22. }
  23.  
  24. printf("Usuario Agregado!\n");
  25.  
  26. ?>
  27.  

Y por ultimo, no se que nivel de programacion y especificamente de PHP dominas, pero NUNCA JAMAS pases valores de $_POST directamente a la aplicacion sin antes filtrarlos. Y sobre todo menos aun si es un sistema que ejecutara comandos de sistema en el servidor.
En línea

No hay atajo ante la duda, el misterio se hace aquí...
Se hace carne en cada uno, el misterio es existir!
eduardozo

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Re: [Consulta] Crear usuario local en Ubuntu PHP+MySQL
« Respuesta #3 en: 24 Marzo 2015, 17:50 pm »

Muchas gracias por responder lastre, && unsigned
veo interesante las propuestas y voy hacer pruebas con ésta lógica y os comentaré que tal.

El código anterior ejemplifica la creación del nuevo usuario, pero como hacer la autenticación entre ubuntu(usuario local) y mysql

por ejemplo:
asumimos que el usuario esta creado con el script anterior.

la pregunta es: ¿cómo hacer el login?

secuencia:
form login(php) --> (consulta la tabla usuarios,user,pass)phpmyadmin -->[Duda...]  

recordar que necesito tener acceso al directorio personal para visualizar las imágenes de cada usuario que ha hecho login.
 
En línea

#!drvy
Moderador
***
Desconectado Desconectado

Mensajes: 5.850



Ver Perfil WWW
Re: [Consulta] Crear usuario local en Ubuntu PHP+MySQL
« Respuesta #4 en: 24 Marzo 2015, 18:29 pm »

Citar
la pregunta es: ¿cómo hacer el login?

Sinceramente, creo que deberías replantearte toda la lógica de tu proyecto. Lo que estas intentando hacer es un controlador que haga de intermediario entre web y SO. Eso es ineficiente, inseguro y poco lógico en el 99% de los casos.

A no ser que estés creando un proyecto tipo Webmin o Cpanel realmente no veo el sentido a todo eso. Si necesitas que cada usuario tenga una carpeta personal puedes crearte tu propio CMS que maneje los directorios o utilizar rutas y registros en la BD.

Ten en cuenta que tu servidor HTTP ya se ejecuta bajo un usuario y tiene los privilegios de dicho. Hacer un 'login' mediante el sistema significaría tener que cambiar el usuario por cada login algo realmente ineficiente y no mencionar ni los posibles problemas de seguridad. Es que vamos, para mi no tiene sentido nada de esto..

Saludos
« Última modificación: 24 Marzo 2015, 18:30 pm por #!drvy » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
crear archivo q mande consulta a base de datos MySql
PHP
JAJAcker 1 2,143 Último mensaje 11 Mayo 2007, 03:46 am
por SeniorX
crear usuario mysql desde .bat
Scripting
Hans el Topo 5 10,383 Último mensaje 8 Junio 2008, 14:58 pm
por Hans el Topo
consulta, crackear psw MYSQL local. « 1 2 »
Bases de Datos
freedert 13 9,612 Último mensaje 21 Enero 2010, 21:22 pm
por ^Tifa^
crear un usuario que tenga privilegios admin y otro usuario php mysql
PHP
centella24 3 5,061 Último mensaje 25 Junio 2017, 15:57 pm
por Rambar
Crear primer usuario Ubuntu-desktop (GUI) server
GNU/Linux
MA40 1 2,046 Último mensaje 3 Junio 2020, 17:22 pm
por MinusFour
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines