jueves, 28 de junio de 2012

Archivos Bloqueados en Samba


Hoy llego a la empresa y varios usuarios no podían acceder a un archivo compartido porque estaba bloqueado por un usuario system.


Ejecuto el siguiente comando con el nombre del archivo:

# smbstatus -vL | grep "Nombre_Archivo_Bloqueado.xls"

Me arroja un resultado como el siguiente:

Pid          Uid        DenyMode   Access      R/W        Oplock           SharePath   Name   Time20541        1134       DENY_WRITE 0x20089     RDONLY     EXCLUSIVE+BATCH  /home/compartidos   "Nombre_Archivo_Bloqueado"  Thu Jun 28 10:22:39 2012

Verifico el pid y simplemente lo mato:

# kill -15 20541

Listo, pudieron acceder nuevamente.

jueves, 14 de junio de 2012

Clonando Zonas en Solaris 10


Listamos las zonas, vemos sólo que aparece la global:

-bash-3.00# zoneadm list
global


Crearemos dos zonas, primero empezamos con "zona1" editando un archivo de configuración. Más adelante crearemos la zona2 clonando la zona1.

-bash-3.00# vi /root/config_de_zona1
create -b
set zonepath=/export/home/zona1
set autoboot=true
set ip-type=shared
add inherit-pkg-dir
set dir=/lib
end
add inherit-pkg-dir
set dir=/platform
end
add inherit-pkg-dir
set dir=/sbin
end
add inherit-pkg-dir
set dir=/usr
end
add net
set address=192.168.0.227
set physical=rtls0
end


Creamos la "zona1" desde el archivo creado previamente:

-bash-3.00# zonecfg -z zona1 -f /root/config_de_zona1


Vemos que el estado pasa a configurado:

-bash-3.00# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   - zona1            configured /export/home/zona1             native   shared


Luego de configurarla debemos instalarla con el siguiente comando:

-bash-3.00# zoneadm -z zona1 install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <14418> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1214> packages on the zone.
Initialized <1214> packages on zone.
Zone is initialized.
La instalación de estos paquetes ha generado errores: SUNWpostgr-82-server-data-root SUNWpostgr-82-server SUNWpostgr-82-contrib SUNWpostgr-82-devel
SUNWpostgr-83-server-data-root>
El archivo contiene un registro de la instalación por zonas.


Ahora ya está instalada la zona1:

-bash-3.00# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   - zona1            installed  /export/home/zona1             native   shared


Iniciamos la zona recién creada:

-bash-3.00# zoneadm -z zona1 boot


Vemos que está en ejecución:

-bash-3.00# zoneadm list
global
zona1


Nos logueamos a la zona para crear un archivo cualquiera para clonarla y ver que existe dicho archivo en la zona2:

-bash-3.00# zlogin zona1
[Conectado a la zona 'zona1' pts/3]
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
#
# echo "Archivo creado en zona1" > /file.txt
# cat /file.txt
Archivo creado en zona1
# exit
[Conexión con zona 'zona1' pts/3 cerrada]
-bash-3.00#


Bajamos la zona1 para poder clonarla:

-bash-3.00# zoneadm -z zona1 halt
-bash-3.00# zoneadm list
global


Exportamos la config de zona1 a un archivo llamado config_de_zona1:

-bash-3.00# zonecfg -z zona1 export -f /root/config_de_zona1


Verificamos que fue exportado al archivo:

-bash-3.00# cat /root/config_de_zona1
create -b
set zonepath=/export/home/zona1
set autoboot=true
set ip-type=shared
add inherit-pkg-dir
set dir=/lib
end
add inherit-pkg-dir
set dir=/platform
end
add inherit-pkg-dir
set dir=/sbin
end
add inherit-pkg-dir
set dir=/usr
end
add net
set address=192.168.0.228
set physical=rtls0
end


Copiamos el archivo config_de_zona1 a config_de_zona2 y cambiamos los parámetros zonepath y la ip:

-bash-3.00# cp -pf /root/config_de_zona1 /root/config_de_zona2
-bash-3.00# vi /root/config_de_zona2
create -b
set zonepath=/export/home/zona2
set autoboot=true
set ip-type=shared
add inherit-pkg-dir
set dir=/lib
end
add inherit-pkg-dir
set dir=/platform
end
add inherit-pkg-dir
set dir=/sbin
end
add inherit-pkg-dir
set dir=/usr
end
add net
set address=192.168.0.229
set physical=rtls0
end


Creamos la "zona2" con el archivo que exportamos y modificamos:

-bash-3.00# zonecfg -z zona2 -f /root/config_de_zona2


Clonamos "zona2" utilizando la "zona1" existente:

-bash-3.00# zoneadm -z zona2 clone zona1
Copiando /export/home/zona1...
grep: can't open /a/etc/dumpadm.conf


Vemos que ambas ahora figuran instaladas:

-bash-3.00# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   - zona1            installed  /export/home/zona1             native   shared
   - zona2            installed  /export/home/zona2             native   shared


Iniciamos ambas zonas:

-bash-3.00# zoneadm -z zona1 boot
-bash-3.00# zoneadm -z zona2 boot


Vemos que ambas están ejecutando:

-bash-3.00# zoneadm list
global
zona1
zona2


Sólo nos logueamos en la zona2 para verificar si existe el archivo creado en la zona1 y que tiene el mismo contenido:

-bash-3.00# zlogin zona2
[Conectado a la zona 'zona2' pts/3]
Last login: Fri Jun 15 18:37:22 on pts/3
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005
# ls -l /file.txt
-rw-r--r--   1 root     root          24 Jun 15 18:38 /file.txt
# cat /file.txt
Archivo creado en zona1
#

miércoles, 13 de junio de 2012

Denegar modificación de crontab de usuario

Agregamos el usuario pepe al final del archivo cron.deny quedando como:

server /# vi /etc/cron.d/cron.deny
daemon
bin
nuucp
listen
nobody
noaccess
pepe


Nos logueamos con pepe:

server /# su - pepe


Intentamos modificar el crontab con el usuario pepe:

[server ~]$ crontab -e
crontab: you are not authorized to use cron.  Sorry.
[server ~]$

lunes, 4 de junio de 2012

Testear un Servicio en Nagios sólo en horas laborales

Editamos el archivo timeperiods.cfg y colocamos lo siguiente dentro:

# vim /etc/nagios/timeperiods.cfg
define timeperiod{
        timeperiod_name HorasLaborales
        alias           "Trabajo" Horas Laborales
        monday          09:00-18:00
        tuesday         09:00-18:00
        wednesday       09:00-18:00
        thursday        09:00-18:00
        friday          09:00-18:00
        }


Editamos el archivo de servicios en el cuál deseamos sólo testear en horas laborales y agregamos la línea resaltada en rojo:

# vim /etc/nagios/services.cfg
define service{
use                             generic-service
host_name                       servidor
service_description             Mi_descripción
check_period                    HorasLaborales
check_command                   check_ping
}


Testeamos el archivo de configuración antes de reiniciar el nagios:

# /bin/nagios -v /etc/nagios/nagios.cfg
Total Warnings: 0
Total Errors:   0


Si el resultado del comando anterior nos dá como resultado 0 warnings y 0 errores reiniciamos el nagios con el siguiente comando:

# /etc/init.d/nagios reload

domingo, 3 de junio de 2012

Creación de Zonas en Solaris 10


Configuramos la Zona:
# zonecfg -z zona
zona: No se ha configurado esa zona
Use 'create' para comenzar a configurar una zona nueva.


Creamos la Zona
zonecfg:zona> create


Seteamos el Path donde se almacenará la Zona:
zonecfg:zona> set zonepath=/export/home/


Habilitemos que inicie automáticamente inicie:
zonecfg:zona> set autoboot=true


Agregamos la interface de red:
zonecfg:zona> add net
zonecfg:zona:net> set address=192.168.0.227
zonecfg:zona:net> set physical=rtls0


Finalizamos la configuracion y salimos:
zonecfg:zona:net> end
zonecfg:zona> exit


Listamos el Estado de las Zonas y vemos que aparece que está configurada
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   - zona           configured /export/zona                 native   shared


Creamos el archivo donde amacenaremos la Zona:
# mkdir /export/home/


Damos los permisos correspondientes a la Zona: 
# chmod 700 /export/home/


Vemos que si listamos las Zonas que están corriendo y todavía no aparece la no global que creamos recientemente:
# zoneadm list
global


Instalamos la Zona ya configurada, para que comience a ejecutarse:
# zoneadm -z zona install
Preparing to install zone .
Creating list of files to copy from the global zone.
Copying <14418> files to the zone.
Initializing zone product registry.
Determining zone package initialization order.
Preparing to initialize <1214> packages on the zone.
Initializing package <27> of <1214>: percent complete: 2%
Determining zone package initialization order.
Preparing to initialize <1214> packages on the zone.
Initialized <1214> packages on zone.
Zone is initialized.
El archivo contiene un registro de la instalación por zonas.



Volvemos a ejecutar el comando previamente que lista los estados y vemos que ahora cambió el estado de configurado a instalado:
# zoneadm list -cv
  ID NAME             STATUS     PATH                           BRAND    IP
   0 global           running    /                              native   shared
   - zona             installed  /export/home                   native   shared



Iniciamos la Zona:
# zoneadm -z zona boot



Verificamos que ahora sí está ejecutándose la zona no global llamada "zona":

# zoneadm list
global
zona


Accedemos a la zona que creamos:
# zlogin zona
[Conectado a la zona 'zona' pts/5]
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005


Salimos de la zona:
# exit
[Conexión con zona 'zona' pts/5 cerrada]