martes, 12 de julio de 2011
GNU/Linux - Bloquear Ctrl + C y Ctrl + Z
Buscando en inet me encuentro con que esto se puede hacer con la instrucción "trap" que básicamente lo que hace es capturar una señal del sistema (algunas se llaman a través de combinaciones de teclas como las que queremos bloquear) y ejecuta una orden.
claro esto, la orden quedaría de la siguiente forma
trap "" 2 20
Colocamos esta instrucción al inicio del script que se quiera ejecutar y listo.
A continuación se deja la tabla de señales del sistema:
1) SIGHUP
2) SIGINT
3) SIGQUIT
4) SIGILL
5) SIGTRAP
6) SIGABRT
7) SIGBUS
8) SIGFPE
9) SIGKILL
10) SIGUSR1
11) SIGSEGV
12) SIGUSR2
13) SIGPIPE
14) SIGALRM
15) SIGTERM
16) SIGSTKFLT
17) SIGCHLD
18) SIGCONT
19) SIGSTOP
20) SIGTSTP
21) SIGTTIN
22) SIGTTOU
23) SIGURG
24) SIGXCPU
25) SIGXFSZ
26) SIGVTALRM
27) SIGPROF
28) SIGWINCH
29) SIGIO
30) SIGPWR
31) SIGSYS
34) SIGRTMIN
35) SIGRTMIN+1
36) SIGRTMIN+2
37) SIGRTMIN+3
38) SIGRTMIN+4
39) SIGRTMIN+5
40) SIGRTMIN+6
41) SIGRTMIN+7
42) SIGRTMIN+8
43) SIGRTMIN+9
44) SIGRTMIN+10
45) SIGRTMIN+11
46) SIGRTMIN+12
47) SIGRTMIN+13
48) SIGRTMIN+14
49) SIGRTMIN+15
50) SIGRTMAX-14
51) SIGRTMAX-13
52) SIGRTMAX-12
53) SIGRTMAX-11
54) SIGRTMAX-10
55) SIGRTMAX-9
56) SIGRTMAX-8
57) SIGRTMAX-7
58) SIGRTMAX-6
59) SIGRTMAX-5
60) SIGRTMAX-4
61) SIGRTMAX-3
62) SIGRTMAX-2
63) SIGRTMAX-1
64) SIGRTMAX
Extraído del siguiente post: http://nixcraft.com/shell-scripting/12605-shell-script-disable-ctrl-c-ctrl-z.html
lunes, 14 de febrero de 2011
Extraer información de una maquina
Esta ves me ha tocado crear un sencillo script que extrae información de una maquina, probadlo a ver que tal va, si tienes algun comentario por favor hacerlo saber.
---------------------------------------------------------------inicio del script---------------------------------------------------------------
#!/bin/bash
# Script desarrollado por Andrey Amado, usted es libre de realizar cualquier modificación sobre el archivo siempre y cuando mencione al autor o autores de dicho script, o en su defecto gastando una pola al creador del script.
if [ `id -u` -ne 0 ]; then
{
echo "El script debe ejecutarse como root"
exit 1
}
fi
if [ -e dump.txt ]; then rm dump.txt ; fi
echo "Bienvenido al script de informe del sistema\n"
pedir_tecla()
{
read -p "presione cualquier tecla" /dev/null
clear
hola
}
opt1_nm()
{
echo "El nombre del host es: " `hostname`
}
opt2_nm()
{
if [ -e /etc/debian_version ] ; then
echo "el sistema es Debian versión: " `cat /etc/debian_version`
else
if [ -e /etc/redhat-release ]
then
echo "el sistema es: " `cat /etc/redhat_version`
fi
fi
}
opt3_nm()
{
echo "El kernel del sistema operativo es: " `uname -r`
}
opt4_nm()
{
echo "El dominio al cual pertenece es: " `hostname -d`
}
opt5_nm()
{
echo "Las ips de la maquina son: "
ip addr show
}
opt6_nm()
{
echo "Las rutas son: "
ip route show
}
opt7_nm()
{
echo "los dns son: "
cat /etc/resolv.conf
}
opt8_nm()
{
echo "los discos conectados al sistema son: "
fdisk -l
}
opt9_nm()
{
echo "las particiones y uso son: "
df -kh
}
opt10_nm()
{
echo "El tamaño y uso de la RAM es: "
free -m
}
opt11_nm()
{
echo "El uso del procesador es: "
vmstat 2 10
}
opt12_nm()
{
echo "El procesador es: "
cat /proc/cpuinfo | grep 'model name'
}
opt13_nm()
{
echo "Los procesos corriendo son: "
ps xa | less
}
opt14_nm()
{
echo "Los puertos abiertos son: "
netstat -toanp | grep 'LISTEN'
}
opt15_nm()
{
echo "Los ultimos accesos son: "
last | tail -10
}
opt16_nm()
{
if [ `cat /proc/sys/net/ipv4/ip_forward` -eq 0 ] ; then
echo "El reenvio de paquetes esta desactivo"
else
echo "El reenvio de paquetes esta activado"
fi
}
opt17_nm()
{
echo "Los usuarios con acceso de root son: "
cat /etc/passwd | grep ':0:'
}
opt18_nm()
{
echo "Los usuarios con acceso al sistema son: "
cat /etc/passwd | grep 'bash'
}
opt19_nm()
{
echo "Actualizaciones: "
if [ -e /etc/debian_version ] ; then
apt-get update
apt-get upgrade -s
else
if [ -e /etc/redhat_version ]
then
yum update
fi
fi
}
opt20_nm()
{
echo "El estado de SELinux es: " `getenforce`
}
opt21_nm()
{
echo "Las reglas de iptables son: "
iptables -nL
iptables -t nat -nL
}
opt22_nm()
{
which chkrootkit
x=$?
if [ $x -eq 1 ] ; then
{
echo "Chkrootkit NO esta instalado en su sistema"
}
else
{
echo "Chkrootkit esta instalado en su sistema"
}
fi
}
opt23_nm()
{
echo "Los dispositivos scsi conectados al sistema son: "
lsscsi
}
opt24_nm()
{
echo "Los dispositivos usb conectados al sistema son: "
lsusb
}
opt25_nm()
{
echo "El archivo en donde se esta guardando la información es dump.txt en el directorio en: " `pwd`
for i in `seq 1 24`;
do
opt`echo $i`_nm >> dump.txt
echo "\n" >> dump.txt
done
}
sel_opcion()
{
read -p "Seleccione una opción: " opc
echo "\n"
case $opc in
1)
opt1_nm
pedir_tecla
;;
2)
opt2_nm
pedir_tecla
;;
3)
opt3_nm
pedir_tecla
;;
4)
opt4_nm
pedir_tecla
;;
5)
opt5_nm
pedir_tecla
;;
6)
opt6_nm
pedir_tecla
;;
7)
opt7_nm
pedir_tecla
;;
8)
opt8_nm
pedir_tecla
;;
9)
opt9_nm
pedir_tecla
;;
10)
opt10_nm
pedir_tecla
;;
11)
opt11_nm
pedir_tecla
;;
12)
opt12_nm
pedir_tecla
;;
13)
opt13_nm
pedir_tecla
;;
14)
opt14_nm
pedir_tecla
;;
15)
opt15_nm
pedir_tecla
;;
16)
opt16_nm
pedir_tecla
;;
17)
opt17_nm
pedir_tecla
;;
18)
opt18_nm
pedir_tecla
;;
19)
opt19_nm
pedir_tecla
;;
20)
opt20_nm
pedir_tecla
;;
21)
opt21_nm
pedir_tecla
;;
22)
opt22_nm
pedir_tecla
;;
23)
opt23_nm
pedir_tecla
;;
24)
opt24_nm
pedir_tecla
;;
25)
opt25_nm
pedir_tecla
;;
default)
exit 0
;;
esac
}
hola()
{
echo "---------------------Menu principal------------------\nPresione el numero de la opción que desea ver\n"
echo "1. Nombre del sistema"
echo "2. Version del sistema operativo"
echo "3. Version del kernel"
echo "4. Nombre del dominio"
echo "5. Ips de la maquina"
echo "6. Primeras 10 rutas de la maquina"
echo "7. Dns de la maquina"
echo "8. Discos del sistema"
echo "9. Particiones del disco duro y uso"
echo "10. Tamaño y uso de ram"
echo "11. Uso de procesador"
echo "12. Tipo de procesador"
echo "13. Procesos corriendo"
echo "14. Puertos abiertos"
echo "15. Ultimos accesos"
echo "16. Reenvio de paquetes"
echo "17. Usuarios root en el sistema"
echo "18. Usuarios con acceso al sistema"
echo "19. Tiene actualizaciones?"
echo "20. SELinux activado?"
echo "21. Reglas de iptables"
echo "22. Tiene chkrootkit?"
echo "23. Dispositivos scsi"
echo "24. Dispositivos usb"
echo "25. Si usted quiere realizar todas operaciones de testo y guardarlas en un archivo"
echo "Presione cualquier otra tecla para salir\n"
sel_opcion
}
hola
------------------------------------------------------------------------------------------fin del script-----------------------------------------------------------------
jueves, 14 de octubre de 2010
FTP no funciona con Iptables?
el caso concreto es que permite conexiones a través de telnet pero cuando se utiliza un cliente ftp este arroja error, el problema radica en que iptables cuando hace NAT no soporta nativamente muy bien a FTP por lo que hay que activar el siguiente modulo:
modprobe ip_nat_ftp
aqui la fuente original del asunto:
http://tldp.org/HOWTO/IP-Masquerade-HOWTO/forwarders.html
miércoles, 25 de agosto de 2010
Samba "smbd interrumpido pero existe un archivo pid"
Al ataque con debian y samba como PDC, muy bonito y todo, en los afanes de configurar una maquina con samba y en el tema de enganchar el samba al ldap se instaló todo de una ves sin iniciar el samba.. se configuró todo y pomba se revienta el samba al iniciarlo y esto por: (NPI)?
En el log nos muestra lo siguiente:
[2010/08/25 17:00:20, 3] smbd/uid.c:push_conn_ctx(358)
push_conn_ctx(0) : conn_ctx_stack_ndx = 0
[2010/08/25 17:00:20, 3] smbd/sec_ctx.c:set_sec_ctx(241)
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 1
[2010/08/25 17:00:20, 3] smbd/sec_ctx.c:pop_sec_ctx(356)
pop_sec_ctx (0, 0) - sec_ctx_stack_ndx = 0
[2010/08/25 17:00:20, 3] lib/util_seaccess.c:se_access_check(250)
[2010/08/25 17:00:20, 3] lib/util_seaccess.c:se_access_check(251)
se_access_check: user sid is S-1-1-0
se_access_check: also S-1-5-2
se_access_check: also S-1-5-7
[2010/08/25 17:00:20, 0] services/services_db.c:svcctl_init_keys(420)
svcctl_init_keys: key lookup failed! (WERR_ACCESS_DENIED)
[2010/08/25 17:00:20, 3] smbd/sec_ctx.c:push_sec_ctx(208)
push_sec_ctx(0, 0) : sec_ctx_stack_ndx = 1
[2010/08/25 17:00:20, 3] smbd/uid.c:push_conn_ctx(358)
push_conn_ctx(0) : conn_ctx_stack_ndx = 0
[2010/08/25 17:00:20, 3] smbd/sec_ctx.c:set_sec_ctx(241)
setting sec ctx (0, 0) - sec_ctx_stack_ndx = 1
[2010/08/25 17:00:20, 3] smbd/sec_ctx.c:pop_sec_ctx(356)
pop_sec_ctx (0, 0) - sec_ctx_stack_ndx = 0
A primera vista se ve un (WERR_ACCESS_DENIED) esto se debe a que sencillamente no se había inicializado el samba con las bd locales.
lo que se debe hacer es: en el archivo de configuración del samba colocar o cambiar a:
passdb backend = tdbsam
se para el samba y luego se inicia, ahora si ya se puede cambiar el parámetro para que busque el ldap:
passdb backend = ldapsam:ldap://127.0.0.1
y eso es todo.. ajustado este pequeño inconveniente y una ves mas demostrado que del afan no queda si no el cansancio. :p
domingo, 30 de mayo de 2010
Herramientas de comunicación sincrona y Asincrona
lunes, 17 de mayo de 2010
Tap click en debian squeeze/sid
Otra ves a la carga con debian y el touch mouse, esta vez he migrado mi debian de una plataforma intel a una amd y tras no vastar con todo e trasteo de drivers y ya que las configuraciones las toma de una, me ha asaltado de nuevo el problema del tap click en el touch mouse, busque por un buen rato y no encontré nada bueno casi nada jjeje lo que si encontré fue este hermoso comando "synclient" el cual palabras mas palabras menos es la interfaz de linea de comandos del driver synaptics.
Una ves he hecho las mil vueltas le doy "synclient -l" y me arroja:
Parameter settings:
LeftEdge = 1752
RightEdge = 5192
TopEdge = 1620
BottomEdge = 4236
FingerLow = 24
FingerHigh = 36
FingerPress = 255
MaxTapTime = 180
MaxTapMove = 221
MaxDoubleTapTime = 180
SingleTapTimeout = 180
ClickTime = 100
FastTaps = 1
EmulateMidButtonTime = 75
EmulateTwoFingerMinZ = 280
EmulateTwoFingerMinW = 7
VertScrollDelta = 100
HorizScrollDelta = 100
VertEdgeScroll = 1
HorizEdgeScroll = 1
CornerCoasting = 0
VertTwoFingerScroll = 0
HorizTwoFingerScroll = 0
MinSpeed = 0.4
MaxSpeed = 0.7
AccelFactor = 0.00995223
TrackstickSpeed = 40
EdgeMotionMinZ = 29
EdgeMotionMaxZ = 159
EdgeMotionMinSpeed = 1
EdgeMotionMaxSpeed = 401
EdgeMotionUseAlways = 0
UpDownScrolling = 1
LeftRightScrolling = 1
UpDownScrollRepeat = 1
LeftRightScrollRepeat = 1
ScrollButtonRepeat = 100
TouchpadOff = 0
GuestMouseOff = 0
LockedDrags = 1
LockedDragTimeout = 5000
RTCornerButton = 0
RBCornerButton = 0
LTCornerButton = 0
LBCornerButton = 0
TapButton1 = 1
TapButton2 = 0
TapButton3 = 0
ClickFinger1 = 1
ClickFinger2 = 1
ClickFinger3 = 1
CircularScrolling = 0
CircScrollDelta = 30
CircScrollTrigger = 0
CircularPad = 0
PalmDetect = 1
PalmMinWidth = 10
PalmMinZ = 199
CoastingSpeed = 0
PressureMotionMinZ = 29
PressureMotionMaxZ = 159
PressureMotionMinFactor = 1
PressureMotionMaxFactor = 1
GrabEventDevice = 1
TapAndDragGesture = 1
AreaLeftEdge = 0
AreaRightEdge = 0
AreaTopEdge = 0
AreaBottomEdge = 0
En el cual me doy cuenta que:
TapButton1 = 0
la solución fue tan facil como: synclient TapButton1=1
y listo eso fue todo por esta ves ;)