martes, 10 de mayo de 2011

Apache public\_html por usuarios

Sacado de:

Si tenemos una instlación de apache default. Deberemos de tener privilegios de superusuario para modificar el archivo userdir.conf ubicado en la carpeta: /etc/apache2/mods-available/


Ahi deberemos agregar la siguiente línea.

UserDir disabled
UserDir enable usuario1 usuario2

Esto permitirá un sitio web sólo para los usuarios 1 y 2 exclusivamente.
Una vez hecho esto procederemos a cargar los módulos. Para esto debemos crear un enlace simbólico entre mods-available y mods-enabled

sudo ln -s ../mods-available/userdir.load .
sudo ln -s ../mods-available/userdir.conf .

Una vez hecho esto reiniciamos el servidor apache con:

sudo /etc/init.d/apache2 restart

Listo!

jueves, 14 de abril de 2011

Logearse como root en una partición externa al sistema operativo.

Hoy vamos a ver como montar un sistema operativo Linux y administrarlo de forma externa con el comando chroot.

Consideremos el siguiente escenario.

Alguien desconfiguró el grub principal de la máquina sobre la que trabajamos.
La solución es simple, utilizar el comando grub-install. Sin embargo dado que no podemos montar la partición, deberemos utilizar un usb (cd) rescue (live-cd) y una vez funcionando el sistema en vivo. Procederemos a montar la partición donde tengamos instalado el sistema que contiene el grub a reconfigurar.

Para esto utilizaremos los siguientes comandos:

#Root
:~/$ sudo mkdir /mnt/c
:~/$ sudo mount /dev/sda5 /mnt/c/
sudo mount --bind /dev/ /mnt/c/dev/
:~/$ sudo mount --bind /sys/ /mnt/c/sys/
:~/$ sudo mount --bind /proc/ /mnt/c/proc
# :~/$ sudo chroot /mnt/c/
# :~/$ sudo chroot /mnt/c/ bash
# :~/$ sudo umount /mnt/c/dev
# :~/$ sudo umount /mnt/c/proc
# :~/$ sudo umount /mnt/c/sys
# :~/$ sudo umount /mnt/c/
# :~/$ sudo grub-install /dev/sda9 -f
# :~/$ sudo reboot
Listo!

martes, 12 de abril de 2011

Compilación del Kernel

Una vez bajado el kernel de kernel.org
debemos modificar el archivo de configuración.

lo que vamos a hcer primero es ir al directorio de las fuentes y dar los siguientes comandos.

make mrproper

cp .config

make oldconfig

make menuconfig

make

make modules

sudo make modules_install

make install



jueves, 31 de marzo de 2011

Conectarse a nuestro servidor nts

La dirección IP en LAN para el servidor donde tenemos instalado el servicio es:

10.0.1.43

La carpeta a la que podemos accesar es:

tourette

Debemos instalar los paquetes siguientes:

apt-get install nfs-kernel-server nfs-common portmap


Para conectarnos, sólo hay que montar el sistema de archivos ntfs en nuestro cliente.

mount -t nfs 10.0.1.43:/srv/tourette nfs/

Si se quiere montar automáticamente hay que modificar el archivo /etc/fstab y agregar lo siguiente:

#montar sistema nfs
10.0.1.43:/srv/tourette /media/nfs nfs defaults 1 2

Como poner un cliente NFS

Estos pasos están descritos aquí.

http://www.debianhelp.co.uk/nfs.htm

El Network File System (Sistema de archivos de red), o NFS, es un protocolo de nivel de aplicación, según el Modelo OSI. Es utilizado para sistemas de archivos distribuido en un entorno de red de computadoras de área local. Posibilita que distintos sistemas conectados a una misma red accedan a ficheros remotos como si se tratara de locales. Originalmente fue desarrollado en 1984 por Sun Microsystems, con el objetivo de que sea independiente de la máquina, el sistema operativo y el protocolo de transporte, esto fue posible gracias a que está implementado sobre los protocolos XDR (presentación) y ONC RPC (sesión) .[1] El protocolo NFS está incluido por defecto en los Sistemas Operativos UNIX y la mayoría de distribuciones Linux.

  • NULL: no hace nada, pero sirve para hacer ping al server y medir tiempos.
  • CREATE: crea un nuevo archivo.
  • LOOKUP: busca un fichero en el directorio actual y si lo encuentra, devuelve un descriptor a ese fichero más información sobre los atributos del fichero.
  • READ y WRITE: primitivas básicas para acceder el fichero.
  • RENAME: renombra un fichero.
  • REMOVE: borra un fichero.
  • MKDIR y RMDIR: creación/borrado de subdirectorios.
  • READDIR: para leer la lista de directorios.
  • GETATTR y SETATTR: devuelve conjuntos de atributos de ficheros.
  • LINK: crea un archivo, el cual es un enlace a un archivo en un directorio, especificado.
  • SYMLINK y READLINK: para la creación y lectura, respectivamente, de enlaces simbólicos (en un "string") a un archivo en un directorio.
  • STATFS: devuelve información del sistema de archivos.
  • ROOT, para ir a la raíz (obsoleta en la versión 2).
  • WRITECACHE: reservado para un uso futuro.

En la versión 3 del protocolo se eliminan los comandos se STATFS, ROOT y WRITECACHE; y se agregaron los siguientes:[3]

  • ACCESS: Para verificar permisos de acceso.
  • MKNOD: Crea un dispositivo especial.
  • READDIRPLUS: una versión mejorada de READDIR.
  • FSSTAT: devuelve información del sistema de archivos en forma dinámica.
  • FSINFO: devuelve información del sistema de archivos en forma estática.
  • PATHCONF: Recupera información POSIX.
  • COMMIT: Enviar datos de caché sobre un servidor un sistema de almacenamiento estable.
____________________________________________________________________________________
Instalación, en inglish porqui somos huevones

Installing NFS in Dedian

Making your computer an NFS server or client is very easy.A Debian NFS client needs

# apt-get install nfs-common portmap

while a Debian NFS server needs

# apt-get install nfs-kernel-server nfs-common portmap

NFS Server Configuration

NFS exports from a server are controlled by the file /etc/exports. Each line begins with the absolute path of a directory to be exported, followed by a space-seperated list of allowed clients.

/etc/exports
/home 195.12.32.2(rw,no_root_squash) www.first.com(ro)
/usr 195.12.32.2/24(ro,insecure)

A client can be specified either by name or IP address. Wildcards (*) are allowed in names, as are netmasks (e.g. /24) following IP addresses, but should usually be avoided for security reasons.

A client specification may be followed by a set of options, in parenthesis. It is important not to leave any space between the last client specification character and the opening parenthesis, since spaces are intrepreted as client seperators.

For each options specified in /etc/exports file can be check export man pages.Click here for manpage.

If you make changes to /etc/exports on a running NFS server, you can make these changes effective by issuing the command:

# exportfs -a

__________________________________________________________________________________

viernes, 18 de marzo de 2011

Mecanismo para monitorear la actividad de "su".

La configuración de las variables que el comando "su" utiliza se encuentra generalmente en el archivo /etc/login.defs el cual contiene, entre otras cosas, las opciónes que el comando interpretará, en las últimas versiones "su" utiliza el archivo syslog para monitorear los intentos de uso, sin embargo no guarda la actividad realizada por dicho comando y para habilitarla es necesario descomentar esta línea:


SULOG_FILE /var/log/sulog

Obviamente se puede establecer otro archivo como destino.

Determinar cuotas en Linux

Para activar las cuotas en el sistema ubuntu 10.04.

Supongamos este escenario:
"Mediante un mecanismo de cuotas, establecer límites en cuanto a la cantidad máxima de espacio asignado y la cantidad máxima de archivos a cada usuario. Concretamente quisieramos establecer un máximo de 200MB de espacio y un máximo de 1000 archivos."

Para solucionar esto debemos habilitar el manejo de cuotas en nuestro sistema Linux-


Debemos instalar los programas de gestión de cuotas. Estos son:
quotacheck y quotaon.

Ambos se encuentran el los repositorios de debian/ubuntu. Por lo que se puede instalar con aptitude. El paquete que contiene estos comandos es quota .

$ sudo aptitude install quota

Dos pasos

1.- Configuración del sistema para el uso de cuotas.

2.- Modificar el archivo /etc/fstab
(este paso debe repetirse para cada partición del disco que se quiera gestionar con cuotas.)

Debemos añadir una línea al final de los scripts de configuración. (/etc/rc.local)

#!/bin/sh -e
#
# rc.local
#
# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits.
#
# By default this script does nothing.
#Checar cuotas
if [ -x /usr/quotacheck ]
then
echo "Verificando cuotas, esto puede llevar tiempo, vato!"
#Estos argumentos son por esto:
#-a, --all Check all mounted non-NFS filesystems in /etc/mtab
# -v, --verbose quotacheck reports its operation as it progresses. Normally it operates silently. If the option is specified twice, also the current directory is printed (note that printing can slow down the scan measurably).
# -u, --user Only user quotas listed in /etc/mtab or on the filesystems specified are to be checked. This is the default action.
#-g--group Only group quotas listed in /etc/mtab or on the filesystems specified are to be checked.
/usr/quotacheck -avug
echo "completado"
fi

if [ -x /usr/quotaon ]
then
echo "Activando cuotas, carnal!"
/usr/sbin/quotaon -avug
fi
exit 0

Podemos asignar diferentes cuotas para usuarios y grupos.
Supongamos que en el sistema esta un grupo de usuarios de GRASS y queremos asignarle aeste grupo una cuota de disco duro de 500GB. Es bien sabido que los mapas ocupan mucha memoria por lo que hay que restringir un mal uso del disco.
En este ejemplo chafa, el grupo de estos usuarios se puede llamar SIG.

Para cada partición, sobre la que se desee cuota, se necesitarán configurar 3 cosas:
  1. En el archivo /etc/fstab deberemos agregar la opción usrquota
  2. En el archivo /etc/fstab deberemos agregar la opción grpquota
  3. Debemos crear una base de datos de las copias.
Opción USRQUOTA
Para cada partición se le debe agregar esta opción en el archivo /etc/fstab
En nuestro sistema quedará de la siguiente forma
Más información de fstab en:
https://help.ubuntu.com/community/Fstab

#definir opción de cuotas para la partición 9
#
#/dev/sda9 / ext4 defaults,usrquota,grpquota 0 1

UUID=cdb835e7-460d-49f7-8dad-7956aeef3799 / ext4 errors=remount-ro,usrquota,grpquota 0 1


Aquí estamos especificando que la partición 9 del dispositivo sda, montado en la raíz del sistema con tipo de archivos ext4 tenga las opciones: usrquota, grpquota

Base de datos de cuotas
De
bemos crear un archivo para almacenar la información de cuotas de usuario y grupos. Estos archivos están vacios, por defecto. Se encuentran en el directorio. Debemos crear con el comando touch los siguientes archivos en la raiz de la partición.

$sudo touch quota.user
$sudo touch quota.group

Configuración de los parámetros de cuotas

El comando edquota nos da la posibilidad de crear, modificar o eliminar cuotas de usuarios y grupos.

Primero debemos definir los siguiente.

In addition to edquota, there are 3 terms which you should familiarize yourself with: Soft Limit, Hard Limit, and Grace Period.

5.4 Soft Limit

_Soft limit_ indicates the maximum amount of disk usage a quota user has on a partition. When combined with grace period, it acts as the border line, which a quota user is issued warnings about his impending quota violation when passed.

5.5 Hard Limit

Hard limit works only when grace period is set. It specifies the absolute limit on the disk usage, which a quota user can't go beyond his hard limit.

5.6 Grace Period

Executed with the command "edquota -t", grace period is a time limit before the soft limit is enforced for a file system with quota enabled. Time units of sec(onds), min(utes), hour(s), day(s), week(s), and month(s) can be used. This is what you'll see with the command "edquota -t":

Más info en:
http://www.faqs.org/docs/Linux-mini/Quota.html

edquota ejecuta un editor de texto para modificar el archivo de cuotas que hemos creado. Por default el editor que ejecuta es el que está definido en la variable de entorno $EDITOR

edquote tiene varios paŕametros. (ver: http://publib.boulder.ibm.com/infocenter/aix/v6r1/index.jsp?topic=/com.ibm.aix.cmds/doc/aixcmds2/edquota.htm)

Supongamos que queremos editar el usuario juan.
PARA PODER HACER ESTO SERÁ
NECESARIO REINICIAR EL EQUIPO o volver a montar la partición.

$ sudo edquota -u juan

En terminal veremos algo así.
Disk quotas for user juan (uid 1002):
Filesystem blocks soft hard inodes soft $
/dev/sda9 24 0 0 7 0 $

los ceros indican que no hay cuiotas para la cuenta de juan.
Observemos que hay cuota para los i-nodos. Aquí podemos poner la cuota para los archivos.
Para cumplir con nuestro cometido bastará con modificar este script para que quede así.


para saber cuánto vale un bloque debemos ejecutar el comando
$sudo tune2fs -l /dev/sda9

Disk quotas for user juan (uid 1002):
Filesystem blocks soft hard inodes soft $
/dev/sda9 24 45 50 1000 950 $

Para copiar a otros usuarios podemos copiar la configuración con la opción -p


$ sudo edquota -p juan grillo


listo, lo podemos hacer pa todos los usuarios con:


Checar los siguientes comandos para la gestión de cuotas

quotacheck
quotaon
repquota