| 
	
		|  Autor | Tema: [Consulta] Crear usuario local en Ubuntu PHP+MySQL  (Leído 3,101 veces) |  
	| 
			| 
					
						| eduardozo 
								
								 Desconectado 
								Mensajes: 2
								
								
								
								
								
								   | 
 
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 
								Mensajes: 9
								
								   | 
 
en php puedes usar la función exec() con la que puedes ejecutar un script alojado en el servidor: <?php $nombre_usuario = $_POST["usuario"];exec("crear_usuario.sh ".$nombre_usuario, $output); // Creo recordar que era algo asi ?> 
 crear_usuario.sh: NOTAuseradd $1
 :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 
								Mensajes: 2.397
								 
								JS/Node developer
								
								
								
								
								
								     | 
 
Por lo que se, es preferible usar la funcion passthru  que exec  o system . Puedes probar algo asi: <?php $user_name = "unsigned";$user_pass = "noejecutesesto"; $ret_useradd = 0;$ret_passwd = 0; passthru('useradd -m '.$user_name, $ret_useradd); if ($ret_useradd) {        printf("No se pudo agregar usuario, codigo de salida: %d\n", $ret_useradd);} passthru('echo "'.$user_name.':'.$user_pass.'" | chpasswd', $ret_passwd); if ($ret_passwd) {        printf("No se pudo modificar password, codigo de salida: %d\n", $ret_passwd);        echo exec('userdel '.$user_name);} printf("Usuario Agregado!\n"); ?> 
 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 
								Mensajes: 2
								
								
								
								
								
								   | 
 
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 | 
 
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 | 
 
 |  |  |  |  |  
 
	
 
 
				
					
						| Mensajes similares |  
						|  | Asunto | Iniciado por | Respuestas | Vistas | Último mensaje |  
						|   |   | crear archivo q mande consulta a base de datos MySql PHP
 | JAJAcker | 1 | 2,563 |  11 Mayo 2007, 03:46 am por SeniorX
 |  
						|   |   | crear usuario mysql desde .bat Scripting
 | Hans el Topo | 5 | 11,233 |  8 Junio 2008, 14:58 pm por Hans el Topo
 |  
						|   |   | consulta, crackear psw MYSQL local.
							« 1 2 » Bases de Datos
 | freedert | 13 | 10,921 |  21 Enero 2010, 21:22 pm por ^Tifa^
 |  
						|   |   | crear un usuario que tenga privilegios admin y otro usuario php mysql PHP
 | centella24 | 3 | 6,155 |  25 Junio 2017, 15:57 pm por Rambar
 |  
						|   |   | Crear primer usuario Ubuntu-desktop (GUI) server GNU/Linux
 | MA40 | 1 | 2,794 |  3 Junio 2020, 17:22 pm por MinusFour
 |    |