gentoo linux, java, software libre y otras hierbas
Ene, 26 2010 - 11:23 pm

Códigos de shell script útiles en cualquier programa

shell scriptA continuación voy a poner algunos snippets de código de shell script que me han sido siempre útiles cuando escribo algún script. La mayoríá funcinoan en cualquier shell de Unix, aunque algunos requieren que sean ejecutados por Bash.

Evitar que usuarios sin privilegios ejecuten el script

Algunos scripts realizan tareas administrativas por lo cual podríamos querer que solo el usuario root ejecute el script. En ese caso podemos usar algo como esto:

#!/bin/bash
if [[ $EUID -ne 0 ]]; then
echo "Este script debe ser ejecutado por el usuario root" 1>&2
    exit 1
fi

Permitir la ejecución del script solo a un usuario específico

De manera similar al código anterior, podríamos querer que solo un usuario específico ejecute el script. Lo hacemos así:

#!/bin/bash
AUTHORIZED_USER="usuario_permitido"
if [ $USER != $AUTHORIZED_USER ]; then
    echo "Este script debe ser ejecutado por el usuario $AUTHORIZED_USER" 1>&2
    exit 1
fi

Verificar que un servicio/proceso se está ejecutando

Si queremos saber si existen procesos de algún servicio o programa ejecutándose podríamos usar este script (en este caso verifica que el demonio de Apache esté corriendo):

Leer el resto de la entrada…

14 Comentarios | deja el tuyo

Ene, 01 2010 - 1:03 am

Montar particiones/slices de *BSD en Linux

A veces es necesario trabajar con el sistema de archivos UFS (el que viene por defecto en FreeBSD, OpenBSD, NetBSD, etc.) desde Linux. En este pequeño artículo explicaré cómo configurar el kernel de tal manera que quede habilitado el soporte de lectura y escritura de UFS. Me enfocaré en FreeBSD, que es donde hice las pruebas.

Tengamos en cuenta además que el esquema de particiones de FreeBSD es distinto al de Linux. Este solo necesita una ‘partición’ primaria (llamadas slices en BSD) para administrar las particiones que utilizará el sistema, y cada una de esas particiones tiene un esquema de nombres en particular. Puesto que dicho esquema algunas veces no es soportado por nuestro kernel, activaremos también esta opción (de lo contrario solo podremos montar la raiz del sistema FreeBSD mas no sus particiones).

0. Preparando el kernel

Tal vez ya tengas soporte para UFS, pero para esta entrada asumiré que no es así.

Así que, vamos a la configuración del kernel (en este momento estoy usando Linux kernel 2.6.32):

Leer el resto de la entrada…

5 Comentarios | deja el tuyo

Ene, 01 2010 - 1:02 am

Mounting *BSD partitions/slices on Linux

Some times it’s necessary to work with UFS (the default filesystem on FreeBSD, OpenBSD, NetBSD, etc.) from your linux box. Here I’ll explain how to do so by configuring your kernel in order to enable UFS read/write support. We’ll focus on FreeBSD.

Also, as you should know, FreeBSD uses its own hard disk partition scheme on your PC. It requires only one entry in the primary partition table of your disk and manages it similarly to DOS extended partitions, putting in its first sector a new partition table in BSD disklabel format. So we’ll enable support for reading these disklabels; otherwise we just will be able to mount the root ’slice’ of FreeBSD but not the partitions ‘inside’.

0. Preparing your kernel

You may already have support for UFS and BSD disklabel format, but I’ll assume that you have built your kernel by your self and/or don’t have those options enabled.

So, let’s get into the menu configuration of your kernel (I’m using Linux kernel 2.6.32):

Leer el resto de la entrada…

3 Comentarios | deja el tuyo

« Entradas anteriores