Posts Tagged ‘ubuntu’

Quota: Limitar el disco duro a un usuario

Mayo 21st, 2010

Descripción

Disco duro SATA

Cualquier usuario en un sistema compartido se ha visto alguna vez en la situación de tener que borrar archivos de otro para que no ocupen parte de tu disco duro. Quien comparta el ordenador con hermanos lo comprenderá rápidamente :P

Para solucionar este problema existe un programa llamado quota para Linux que permite limitar el tamaño máximo que podrá ocupar un usuario en un sistema. Esta limitación se puede hacer de dos formas:

  • Limitando el número de KBytes que podrá utilizar este usuario en el disco duro
  • Limitar el número de archivos que tendrá

Preparando el terreno

Veamos como se utiliza. Lo primero, obviamente, es instalarlo. Para esto valdría con escribir en una consola (en el caso de Ubuntu o Debian):

sudo apt-get install quota

Ahora lo que hace falta es indicar qué particiones de tu disco duro van a ser controladas por quota. Para esto vamos a editar el archivo donde están todas las particiones declaradas con sus opciones, este archivo es el /etc/fstab. Para editarlo puedes escribir en la consola:

sudo gedit /etc/fstab

Cuando lo ejecutes se abrirá una ventana con un editor de texto (si no tienes el gedit utiliza tu editor de textos preferido) con un archivo un poco extraño. Por ejemplo, mi archivo fstab es el siguiente:

captura fstab

Formato fstab: clic para agrandar

Cada línea que empieza con almuadilla (#) es un comentario que se puede ignorar. El resto de líneas son unidades de disco o particiones que contienen la siguiente información: identificador en el sistema, punto de montaje, formato de la partición, opciones (el círculo rojo), dump y pass. Estos campos están separados por uno o más espacios (las flechas verdes).

Para que quota pueda obrar su magia necesitamos añadir la opción usrquota dentro del campo de opciones de la partición donde quieras que funcione (puede ser más de una). En este caso nos interesa la partición donde está montado todo el sistema y cambiamos sus opciones (el del círculo rojo, el 4º de la línea). Para esto simplemente añadimos una coma al final de las opciones que ya existían y escribimos usrquota. De manera que quede como en mi archivo fstab.

Para hacer las pruebas de quota crearemos un usuario de prueba en el sistema que además tenga un directorio home que pueda manipular. Esto se hace facilmente utilizando los menús de Ubuntu: Sistema -> Administración -> Usuarios y grupos.

Acceso a la opción de usuarios y grupos

Acceso a usuarios y grupos: clic para agrandar

Una vez dentro del menú de Usuarios y grupos lo único que hay que hacer es hacer clic en Añadir un usuario y rellenar los datos que se necesitan. En nuestro ejemplo vamos a suponer que hemos creado el usuario pedro.

Nota: Otra manera más sencilla de crear un usuario sería escribir en la consola

sudo useradd -s /bin/bash -m pedro; sudo passwd pedro

Ahora reiniciamos para que se vuelva a montar la partición y ya está! Ya tenemos el terreno preparado para que funcione quota.

Uso

Quota tiene dos parámetros que puede limitar: el número de archivos y el número de KB que tiene un usuario. Puedes configurarlo para que funcione de forma diferente para cada usuario. Por ejemplo:

Restricciones al usuario Juan: Puede tener un máximo de 10GB
Restricciones al usuario Pedro: Puede tener un máximo de 512KB y 16 archivos.

Cada usuario tiene una configuración diferente y ésta se aplica individualmente (aunque existen maneras de automatizarlo).

Primero comprobamos que el usuario pedro no tenga ninguna cuota habilitada ya. Para ver las cuotas existentes en un usuario basta con escribir en la consola:

sudo quota -u pedro

Este comando nos devolverá una frase del tipo:

Cuotas de disco para user pedro (uid 1001): ninguno

Esto se debe a que aún no hemos aplicado ninguna cuota. Vamos a aplicarle al usuario pedro una restricción de tamaño total de archivos, por ejemplo 10GB. Para ésto, utilizaremos un programa que viene con quota que se llama edquota. Forma parte del paquete y es el programa específico para modificar las cuotas a los usuarios.

Para abrir el editor de cuotas escribimos en la consola:

sudo edquota pedro

Este comando abrirá nuestro editor de texto por defecto y nos mostrará una pantalla parecida a la del fstab donde cada espacio (o grupo de espacios) separa unas opciones de otras.

Formato edquota

Formato edquota: clic para agrandar

En este caso he pintado las flechas de colores de forma que cada opción tiene una flecha del mismo color que su valor. En este ejemplo tendríamos las opciones configuradas de esta manera:

  • Sistema de archivos: /dev/sda1
  • bloques: 44
  • límiteflexible: 0
  • tope: 0
  • inodes: 15
  • límiteflexible: 0
  • tope: 0

Sistema de archivos indica en qué partición de tu disco duro se encuentra el usuario pedro. Esta opción no hay que tocarla (si nos fijamos es la misma partición a la que le dimos la opción usrquota antes).

Bloques indica el número actual de bloques (un bloque es igual a 1 KB). Por lo tanto, la ocupación de pedro en el sistema actualmente es de 44KB.

Límiteflexible es un parámetro que indica el número máximo de KB que puede ocupar pedro en el sistema sin que se le borren. Es una barrera que se puede pasar pero cuando pasa un tiempo si se sigue pasando esa barrera de KB se borran los archivos. En un  otro post enseñaré a usarlo.

Tope es lo que buscábamos. En esta opción está se indica el número de KB máximo que podrá ocupar pedro en el sistema. Pedro no podrá pasar de ese espacio.

Inodes es el número de archivos actual de pedro. En este caso tiene 15 archivos.

Límiteflexible indica otra vez lo mismo pero para los archivos. El máximo de archivos que podrá tener pedro sin que se le borren en un tiempo.

Tope indica lo mismo que el tope de los bloques pero para los archivos. El número máximo de archivos que tendrá pedro.

Con estas opciones puedes tener un completo control sobre el espacio que pedro ocupará en tu sistema. Ahora si que vamos a aplicarle a pedro la restricción de 10GB como máximo. Primero calculamos cuántos KB son 10GB:

10GB = 10*1024*1024 = 10485760 KB

Y ahora editamos las cuotas de pedro con el comando de antes:

sudo edquota pedro

Y cambiamos el primer tope (el que está relacionado con los bloques) a 10485760. Tiene que quedar algo así:

Archivo de cuotas modificado

Archivo de edquota modificado para 10GB: clic para agrandar

Para cambiar el límite de archivos en el disco solo tendrías que cambiar el valor del segundo tope al máximo que quieras. Si dejas algún valor a 0 significa que no se aplicará ninguna restricción.

Por último comentar que puedes combinar las dos restricciones o aplicarlas individualmente. Y el límite flexible lo explicaré otro día :)

Conclusiones

Hemos conseguido instalando un programa ligerísimo llevar un control total sobre el uso de disco de los usuarios de tu sistema.

Un saludo a todos, espero que os sea útil.

Broadcom bcm4311 con Ubuntu 8.10

Noviembre 30th, 2008

Hola!

Acabo de instalar la nueva versión de Ubuntu (un poco tarde, lo sé, pero uno que esta ocupado y se le van retrasando las cosas..).

Una de las cosas que más me interesaba que solucionaran era la compatibilidad con mi tarjeta wifi (Broadcom 4311 (rev 01)) porque con la versión anterior había que emular los drivers de Windows con el ndiswrapper y la verdad es que era un coñazo.

Pero como en el anuncio de hace mil años de Ariel: EL FROTAR SE VA A ACABAR. Aunque parezca increible solo con instalar un controlador restrictivo (concretamente el: Broadcom STA) la red funciona de puta madre (de hecho, estoy escribiendo inalámbricamente!).

Solo recalcar que es importante instalar el Broadcom STA porque si instalais el Broadcom B43 estareis en las mismas que con la versión anterior y tendreis que usar el ndiswrapper.

En fin, que estoy muy contento con los chicos de Ubuntu!

Ahora solo queda arreglar un puto error con el Avant Window Navigator y a correr!

Un saludete a todos!

Montar partición del disco duro al arranque en Ubuntu

Julio 9th, 2008

En Ubuntu cuando arrancas el sistema no es como en Windows que se montan todas las particiones del disco duro al principio.
En Ubuntu solo se monta (por defecto) la partición donde tienes el sistema de archivos, por lo que si tienes algún programa en otra partición, o datos a los que suelas acceder con frecuencia, tienes que montar la partición siempre la primera vez que vayas a acceder.
Aunque esto no supone demasiada molestia porque Ubuntu las reconoce y las monta automaticamente cuando haces click en la unidad (en el menú Lugares están todas las particiones que Ubuntu reconoce).

Pero el problema viene cuando tienes más de una partición en el disco duro. Ubuntu pone el alias de /media/disk a la primera partición del disco duro en montarse, disk-1 a la segunda, disk-2 a la tercera y así sucesivamente y todos los puntos de montaje los guarda en el directorio /media/.
Imaginemonos que tenemos el sistema de archivos de Ubuntu, una segunda partición ext2 y la partición ntfs de Windows. Dentro de la segunda partición (la del tipo ext2) tenemos un directorio con toda nuestra música que se llama ‘Musica’.
Lo que queremos hacer ahora es indexar toda la biblioteca musical en un programa tipo Rhythmbox y lo que hacemos es montar la partición de manera que la ruta será /media/disk (suponiendo que no hemos montado ninguna otra antes). Entonces indexamos nuestra biblioteca musical a partir del directorio /media/disk/Musica y escuchamos música sin parar.

Apagamos el ordenador y lo encendemos de nuevo. Montamos la partición de Windows (/media/disk) porque necesitamos coger algún dato y montamos la partición ext2 para escuchar música (/media/disk1). Y tachán! Ya tenemos el error porque Rhythmbox busca el archivo de música que quieras escuchar en /media/disk/Musica (que es donde pusiste que indexara) y no encuentra nada porque realmente está en /media/disk1/Musica.
Esto sucede porque al montar primero la partición de Windows le diste el nombre de /media/disk. Para escuchar música lo que tendrías que hacer es desmontar las 2 y volver a montar partición ext2 para que tuviera el nombre /media/disk y poder escuchar música. Y esto si que es molesto :p

La solución está en montar la partición ext2 al arranque de Ubuntu y darle un nombre concreto. De esta manera no cambiará nunca la ruta /media/NOMBRE_CONCRETO y así no tendremos el problema.

Para hacer esto existe un archivo que se llama fstab que es la que ordena el montaje de las particiones y dispositivos al inicio de Ubuntu (tanto es así que este archivo ordena el montaje del sistema raiz). Lo primero que tienes que hacer es saber el nombre del dispositivo en el directorio /dev/. Para ello si usas Gnome puedes utilizar la herramienta gparted.

$ gparted

Y ves como se llama tu particion. En mi caso es sda7. Esto significa que /dev/sda7 es el enlace a la partición. Una vez tienes localizado el nombre del enlace debes editar el archivo fstad que está dentro del directorio /etc. (usa otra instrucción sino usas Gnome)

$ sudo gedit /etc/fstab

Una vez tengas abierto el editor verás que hay ya líneas escritas que son las que corresponden con el montaje del sistema raiz o la partición swap. Ahora escribes al final del archivo:

#Particion secundaria
/dev/sdaN    /media/NOMBRE_CONCRETO ext2    auto,nodev,rw,noexec,sync,user    0    0

Sustituyendo /dev/sdaN por el nombre del enlace que conseguiste antes mediante gparted. Y sustituyendo también NOMBRE_CONCRETO por el nombre que le quieras dar (yo tengo Secundario). Ten en cuenta que los espacios que hay entre parámetro y parámetro son tabulaciones.

Ahora lo último que tienes que hacer es crear el punto de montaje. Para esto solo tienes que crear en /media un directorio que se llame NOMBRE_CONCRETO (el nombre que le hayas dado, en mi caso Secundario):

$ sudo mkdir /media/NOMBRE_CONCRETO

Ya está todo hecho, ahora para probarlo puedes hacer dos cosas: Reiniciar el ordenador o ejecutar:

$ sudo mount -a

Y ahora ya puedes indexar tu música o lo que quieras sin miedo a que cambie de nombre el punto de montaje.

Un saludo!