On Wednesday, January 24, 2018 8:18:02 AM -03 Cristian Mitchell wrote: > El 24 de enero de 2018, 04:55, Ramses II<ramses.sevi...@gmail.com> escribió: > > Cristian, buenos días de nuevo, > > > > Bien, por TCP parece que ya funciona: > > > > ------------------------------------------------------------ > > ---------------------------------------------------- > > -bash-4.2$ /usr/bin/mysql -h 127.0.0.1 -u root -p --protocol=tcp > > Enter password: > > Welcome to the MySQL monitor. Commands end with ; or \g. > > Your MySQL connection id is 46 > > Server version: 5.5.59-0+deb7u1 (Debian) > > > > Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights > > reserved. > > > > Oracle is a registered trademark of Oracle Corporation and/or its > > affiliates. Other names may be trademarks of their respective > > owners. > > > > Type 'help;' or '\h' for help. Type '\c' to clear the current input > > statement. > > > > mysql> > > mysql> quit > > Bye > > -bash-4.2$ > > ------------------------------------------------------------ > > ---------------------------------------------------- > > > > Ahora sólo queda ver si hay forma de hacerlo por socket de MySQL. > > > > Si ejecuto en la sesión "enjaulada" el comando que me has comentado: > > > > ------------------------------------------------------------ > > ---------------------------------------------------- > > -bash-4.2$ mount -o bind,noexec /var/run/mysqld/mysqld.sock > > mount: only root can do that > > -bash-4.2$ > > ------------------------------------------------------------ > > ---------------------------------------------------- > > > > Lo que te comentaba, que dice que sólo lo puede ejecutar "root". > > > > De cualquier forma, si ejecuto sólo "mount", tampoco va: > > > > ------------------------------------------------------------ > > ---------------------------------------------------- > > -bash-4.2$ mount > > warning: failed to read mtab > > -bash-4.2$ > > ------------------------------------------------------------ > > ---------------------------------------------------- > > > > > > Gracias y saludos, > > > > Ramses > > > > El día 24 de enero de 2018, 0:37, Cristian Mitchell > > > > <mitchell6...@gmail.com> escribió: > > > El 23 de enero de 2018, 20:32, Cristian Mitchell<mitchell6...@gmail.com> > > > > > > escribió: > > >> El 23 de enero de 2018, 19:40, Ramses<ramses.sevi...@gmail.com> > > > > escribió: > > >>> El 23 de enero de 2018 23:20:09 CET, Cristian Mitchell > > >>> > > >>> <mitchell6...@gmail.com> escribió: > > >>> >El 23 de enero de 2018, 15:26, Ramses<ramses.sevi...@gmail.com> > > >>> > > > >>> >escribió: > > >>> >> El 23 de enero de 2018 18:24:23 CET, Matias Mucciolo < > > >>> >> > > >>> >> mmucci...@suteba.org.ar> escribió: > > >>> >> >On Tuesday, January 23, 2018 5:29:07 PM -03 Ramses wrote: > > >>> >> >> Hola a tod@s, > > >>> >> >> > > >>> >> >> Tengo instalado MySQL Server con su proceso habitual. > > >>> >> >> > > >>> >> >> Ahora quiero dar acceso a Clientes vía SSH, pero no quiero que > > >>> > > > >>> >esos > > >>> > > > >>> >> >usuarios > > >>> >> > > > >>> >> >> puedan ejecutar comandos de la Shell de Linux mediante el > > >>> >> >> comando > > >>> >> > > > >>> >> >"system" > > >>> >> > > > >>> >> >> de MySQL. > > >>> >> >> > > >>> >> >> Parece ser que no hay forma de impedir los Usuarios de MySQL > > >>> > > > >>> >puedan > > >>> > > > >>> >> >ejecutar > > >>> >> > > > >>> >> >> el comando "system" y la única forma de limitar el uso de los > > >>> >> > > > >>> >> >comandos del > > >>> >> > > > >>> >> >> Shell de Linux es enjaular (chroot jail) estos Usuarios SSH, y > > >>> > > > >>> >sólo > > >>> > > > >>> >> >copiar > > >>> >> > > > >>> >> >> en la jaula los comandos que les permito y sus librerías > > >>> > > > >>> >asociadas. > > >>> > > > >>> >> >> Bien, tengo ya el entorno "chroot jail" configurado y el Usuario > > >>> > > > >>> >SSH > > >>> > > > >>> >> >se > > >>> >> > > > >>> >> >> conecta. > > >>> >> >> > > >>> >> >> He copiado el fichero de arranque "/usr/sbin/mysql" en el > > >>> > > > >>> >directorio > > >>> > > > >>> >> >> "enjaulado". > > >>> >> >> > > >>> >> >> Con el comando "ldd /usr/sbin/mysql" averiguo las librerías > > >>> > > > >>> >asociadas > > >>> > > > >>> >> >y las > > >>> >> > > > >>> >> >> he copiado en el directorio "enjaulado". > > >>> >> >> > > >>> >> >> Ahora, cuando se conecta un Usuario "enjaulado" vía SSH y > > > > ejecuta, > > > > >>> >> >por > > >>> >> > > > >>> >> >> ejemplo, "/usr/sbin/mysql -u root -p", MySQL pide la password, > > >>> > > > >>> >pero > > >>> > > > >>> >> >al > > >>> >> > > > >>> >> >> introducirla, da un error de socket diciendo que no encuentra > > >>> >> >> "/var/run/mysqld/mysqld.sock", y ahí estoy estancado... > > >>> >> >> > > >>> >> >> ¿Hay alguien que haya hecho esto y pueda comentarme qué pasos me > > >>> >> > > > >>> >> >faltan por > > >>> >> > > > >>> >> >> hacer? > > >>> >> >> > > >>> >> >> > > >>> >> >> Gracias y saludos, > > >>> >> >> > > >>> >> >> Ramses > > >>> >> > > > >>> >> >obviamente se estan tratando de conectar mediante el socket > > >>> >> >que crea mysql y los clientes enjaulados no pueden acceder. > > >>> >> >creo que mysql tiene una opcion para que la "conexion" > > >>> >> >sea por tcp...eso deberia funcionar.. > > >>> >> > > > >>> >> >saludos > > >>> >> >Matias > > >>> >> > > >>> >> Matías, gracias por contestar. > > >>> >> > > >>> >> Pero, ¿sabes si tengo que copiar algún fichero de configuración, > > > > como > > > > >>> >el > > >>> > > > >>> >> my.cnf a la "jaula"?. > > >>> >> > > >>> >> Hasta el momento sólo copiado programas y librerías al entorno > > >>> > > > >>> >"enjaulado". > > >>> > > > >>> >> Y estoy buscando información tanto en Linux genérico y Debian, como > > >>> > > > >>> >en > > >>> > > > >>> >> MySQL, y no encuentro lo que me aclare este tema... > > >>> >> > > >>> >> > > >>> >> P.D.: Disculpas Matías, el otro se me fue al personal... > > >>> >> > > >>> >> > > >>> >> Saludos y gracias, > > >>> >> > > >>> >> Ramses > > >>> > > > >>> >como te estas logueando a mysql? > > >>> > > >>> Cristian, ¿te refieres a esto que ponía en mi correo? > > >>> > > >>> El cliente se conecta vía SSH a un entorno "enjaulado" y ejecuta: > > >>> > > >>> /usr/sbin/mysql -u root -p > > >> > > >> alguien comentaba esto > > >> > > >> si haces asi nada mas te estas conectado por socket el cual nesesitas > > >> > > >> acceso > > >> pero si haces mysql -h localhost -u myname -ppassword mydb > > >> esto evita tu problema de sock > > >> > > >>> Saludos, > > >>> > > >>> Ramses > > >> > > >> -- > > >> MrIX > > >> Linux user number 412793. > > >> http://counter.li.org/ > > >> > > >> las grandes obras, > > >> las sueñan los santos locos, > > >> las realizan los luchadores natos, > > >> las aprovechan los felices cuerdo, > > >> y las critican los inútiles crónicos, > > > > > > si no tu otra opción es > > > > > > > > > mount -o bind,noexec /var/run/mysqld/mysqld.sock (al chroot) > > > > > > -- > > > MrIX > > > Linux user number 412793. > > > http://counter.li.org/ > > > > > > las grandes obras, > > > las sueñan los santos locos, > > > las realizan los luchadores natos, > > > las aprovechan los felices cuerdo, > > > y las critican los inútiles crónicos, > > buenos dia > > cabe aclara que la idea del tcp fue de Matias > yo solo la aclare y la amplie > y para montar un cualquier recurso bajo estas circunstancias > tenes que agregar la linea en fstab y darle permisos de usuario > pero en tu caso como el chroot lo debe levantar el mysql, > lo agregas en el inicio del servidor o el inicio del servicio > > > -- > MrIX > Linux user number 412793. > http://counter.li.org/ > > las grandes obras, > las sueñan los santos locos, > las realizan los luchadores natos, > las aprovechan los felices cuerdo, > y las critican los inútiles crónicos,
Buenas lo que podes hacer es un alias..estilo: alias mysql='/usr/bin/mysql -h 127.0.0.1 --protocol=tcp' asi el usuario cada ves que ejecuta 'mysql' va a ser por tcp, entonces mysql -p -u root debería andar por tcp. ahora..si queres por socket si o si como dijo el usuario Cristian podes hacer un bind mount de /var en el chroot del usr mejor aun solo montar /var/run/mysqld/ en el chroot por ejemplo si el user esta enjaulado en el dir /home/chroot seria algo como: mount -o bind,noexec /var/run/mysqld /home/chroot/var/run/mysqld esto como root obviamente y fuera del chroot.. pero es mejor la primera opción...usar un alias y listo.. daria menos problemas... también arregla el hosts... ya que el localhost tendría que resolver a la 127.0.0.1 Saludos Matias.-