martes, 21 de julio de 2015

Píldora: montar / en un freebsd que no arranca por un problema en (otro) disco

Si un día un servidor FreeBSD no os levanta porque tiene algún problema con un disco, este es el procedimiento para montar el disco / y arreglar lo que sea necesario (como por ejemplo, editar el /etc/fstab y comentar el disco que da problemas)

(una vez entráis en la shell)


fsck -y
mount -u /
mount -a -t ufs
swapon -a


Por descontado, esto no sirve si el disco con problemas es el root ("/")

miércoles, 6 de mayo de 2015

Píldora: Activar logs de MySQL sin reiniciar

Queréis habilitar/deshabilitar los de las slow queries de MySQL pero no podéis reiniciar el servicio MySQL?
Venga, puedes hacerlo fácilmente. Entra en la shell de MySQL y haz
 
 
SHOW VARIABLES;
SET GLOBAL slow_query_log = 'ON';  
FLUSH LOGS; 

 

En el caso de querer deshabilitar los logs (u otras variables), lo ponemos en OFF

Recuerda que cuando reinicies el servicio, la configuración que prevalece es la del my.cnf. Este cambio es temporal.

martes, 20 de enero de 2015

Configurar un servidor sFTP y chrootear usuarios

Después de pasarme media mañana para configurar una estructura concreta de usuarios con una escalera de permisos a los que además había que chrootear, he encontrado una página (la única en internet, diría yo) en la que se explica COMPLETAMENTE y PASO POR PASO cómo chrootear un usuario sFTP. Y como nota mental, me lo apunto aquí, que no se diga!


Primero creamos un grupo de trabajo, que será al que pertenecerán los usuarios que tenga que enjaular

groupadd sftp

Después creo el usuario 'pedro' y lo asigno este grupo

useradd -G sftp -s /bin/false pedro

Si el usuario está creado, sólo hay que definirle su nuevo grupo; yo lo hago editando el

/etc/passwd

y cambiando el grupo antiguo por el nuevo. Tal vez no sea bonito, pero sí efectivo. Ah, y recuerda cambiarle los permisos a la home de 'pedro', para que coincidan con los que acabas de definirle:

chgrp sftp pedro

Ahora editamos el archivo de configuración del SSHd, donde también definimos los parámetros del sFTP

vi /etc/ssh/sshd_config

Busca y comenta la línea

Subsystem sftp /usr/libexec/openssh/sftp-server

y añade esta en su lugar

Subsystem sftp internal-sftp

y al final de todo, añade estas líneas:

Match Group sftp
   X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory %h                    
  ForceCommand internal-sftp  

donde
"Match Group sftp" indica que las siguientes líneas se aplicaran a los usuarios que pertenezcan a este grupo
"ChrootDirectory %h" es el directorio (la home del usuario) que se utilizará para hacer chroot cuando el usuario se autentifique.
"ForceCommand internal-sftp" fueza la ejecucuón del 'internal-sftp' e ignora cualquier comando que sea mencionado en el archivo ~/.ssh/rc

Después, reinicia el servicio SSHd


service ssh restart

Y por último, los permisos; esta es la parte que menos se explica porque todos sabemos de permisos, pero no! cuidado... no es lo que esperas a primera vista.

chmod 755 /home/pedro
chown root /home/pedro
chgrp -R sftp /home/pedro --- (por si aún no lo habías hecho)

y ya está. Con esto el directorio está enjaulado, pero no podrás escribir. Si además necesitas subir archivos o escribir de alguna manera en el directorio, tendrás que crear uno nuevo dentro de este que será el que tenga permisos para todo

mkdir /home/pedro/uploads
chown pedro /home/pedro/uploads

Y ya lo tienes; haz las pruebas que necesites, que ya es tuyo!
No parece mucho, pero la verdad es que me ha costado un poquito, y si puede servirle de ayuda a alguien, mejor que mejor...



Ah, casi me olvido; la fuente original es ésta, lo mío es prácticamente una traducción

jueves, 15 de enero de 2015

Píldora: uso de memoria por proceso en Linux

Cuando estás analizando un sistema con problemas y necesitas saber cuánta RAM consume cada proceso, aquí un pequeño truco...

ps -e -orss=,args= | sort -b -k1,1n | pr -TW$COLUMNS


Aviso: depende del sistema, la última variable es posible que tengas que ponerla tras un espacio