Matías, buenos días, El día 23 de enero de 2018, 19:29, Matias Mucciolo <mmucci...@suteba.org.ar> escribió: > > On Tuesday, January 23, 2018 7:23:26 PM -03 Ramses wrote: >> 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... >> >> >> Saludos y gracias, >> >> Ramses > > no... no tenes que copiar nada...mientras que ande el binario de mysql. > > proba esto con el usuario enjaulado: > > > mysql -u root -p --protocol=tcp > > asi no usa el socket y usa tcp. > saludos >
Bien, ejecutando el comando que me ponías: ---------------------------------------------------------------------------------------------------------------- -bash-4.2$ /usr/bin/mysql -u root -p --protocol=tcp Enter password: ERROR 2005 (HY000): Unknown MySQL server host 'localhost' (2) -bash-4.2$ ---------------------------------------------------------------------------------------------------------------- El error que da me imagino que es porque no está definido el fichero "/etc/hosts" en la jaula, porque: ---------------------------------------------------------------------------------------------------------------- -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$ ---------------------------------------------------------------------------------------------------------------- Funciona. Ahora sólo queda ver si hay forma de hacerlo por socket de MySQL. Gracias y saludos, Ramses