Archivos de la categoría ‘Linux Tips’

Cuotas De Disco En Linux!

Publicado: 6 enero 2008 en Informática, Linux Tips

En sistemas con muchos usuarios se presenta un problema, el espacio en disco duro, los usuarios guardan y guardan cosas en el disco duro y si no existe un limite para ésto el espacio de disco duro se terminará, ésto posiblemente se solucione agregando mas discos duros, pero al final resultará lo mismo, el disco se llenará de nueva cuenta.

Las cuotas de disco no son más que un limite para los usuarios que les indica que cantidad de espacio en disco pueden almacenar y en caso de alcanzar este limite no podrán almacenar más cosas.

Para poder aplicar cuotas de disco a los usuarios nuestro kernel debe soportar cuotas, es decir debió haber sido compilado con soporte para cuotas, por defecto los sistemas debian y ubuntu traen el kernel compilado con ésta opción, lo siguiente es ejecutar el comando:

aptitude install quota

Lo siguiente es configurar las cuotas, lo primero que debemos hacer es agregar la opción usrquota en el archivo /etc/fstab en el campo de opciones del sistema de archivos que quieres que se controle, tal y como lo vemos a continuación:

# /dev/sda3
UUID=eafaac3c-6918-4a6b-b1f0-f33cebaae8dc / ext3 defaults,errors=remount-ro,usrquota 0 1

Guardamos el archivo y lo cerramos, de igual forma podemos aplicar cuotas a grupos de usuario y ésto lo habilitamos agregando en lugar de usrquota la opción grpquota, o también podemos agregar las dos opciones, lo siguiente será reiniciar el sistema para que se monte la partición con el parámetro de cuota o si no lo hiciste sobre el sistema raíz (/) puedes remontar la partición.

Posteriormente lo que debemos hacer es ejecutar el siguiente comando:

quotacheck -avugm -f

Después de ejecutar éste comando demos activar las cuotas sobre al punto de montaje que especificamos en el archivo /etc/fstab, en el caso de éste ejemplo elegimos el punto de montaje / así que lo que haremos será lo siguiente:

quotaon /

Con esto las cuotas están activadas en la partición que se especifico, para este caso “/”, lo que sigue es editar las cuotas de los usuarios o de los grupos dependiendo de lo que quieras hacer, antes de editar las cuotas de los usuarios debemos saber que hay dos tipos de cuotas, las denominadas soft y las hard las especificadas en soft son limites que pueden ser rebasados, y sólo se recibirán alertas de que el limite de almacenamiento ha sido superado, en el caso de los hard una vez que el limite especificado sea alcanzado el usuario no podrá almacenar nada mas, y lo que le restará al usuario es eliminar cosas de su cuenta.

Cuando editamos las cuotas de un usuario mediante el comando edquota -u nombreUsuario obtendremos la siguiente pantalla:

Donde se  puede ubicar el sistema de archivos que esta siendo monitoreado por las cuotas, después esta la sección que dice blocks que nos indica la cantidad de bloques que el usuario esta usando el usuario, después siguen los limites soft y hard que afectan a los bloques, aquí especificamos el limite en kb que el usuario tiene antes de ser avisado de que esta llegando al limite (soft) y el limite en kb que el usuario podrá usar para almacenar datos (hard), en caso de poner estos campos a 0 indicaremos que no tiene limite, lo que sigue son los campos que afectaran a los inodes y aplica de manera igual que para los blocks, estos dejaremos los valores a 0 tanto para soft como para hard y el valor que contenga el campo inodes no lo tocaremos puesto que solo indica la cantidad de inodes usada por el usuario.

Después de modificarlo lo guardamos no importa que nos de una ruta temporal, lo guardamos y podemos verificarlo mediante el comando “quota nombreUsuario” o si estas logueado como el usuario al que se le aplicaron las cuotas simplemente ejecuta el comando quota y con eso dejamos lista una cuota para un usuario.

Espero les sea de utilidad, Saludos!

Anuncios

Cuando creamos un archivo en nuestro sistema por defecto se le asignan permisos de lectura y escritura tanto para el propietario como para todos los demás, los permisos pueden ser modificados para que se asignen otros permisos distintos a los que vienen por defecto en la distribución, ésto lo logramos mediante el comando umask.

Hay dos formas de cambiar el valor de los permisos por defecto, una temporal que es ejecutando el comando desde la consola, y que durará mientras nos encontremos activos en esa consola y la otra es hacerla de manera permanente modificando el archivo .bashrc que se encuentra en nuestra carpeta home y que afectará solo a nuestro usuario y la otra es modificando el archivo /etc/profile que afectará a todos los usuarios del sistema, para poder modificar el segundo debemos tener permisos de root.

Generalmente el valor por defecto es 022 en casi todas las distribuciones linux, puedes comprobarlo con el siguiente comando:

huevas@Ubuntu:~$ more /etc/profile | grep umask

Si ejecutas ese comando sustituyendo /etc/profile por .bashrc probablemente no aparezca nada dado que esta configurado directamente en profile, pero es no es impedimento para agregar el umask en .bashrc y afectar únicamente nuestro usuario.

Aquí empezamos a jugar un poco con los números para poder entender un poco más lo que viene debes de saber como se manejan los permisos de lectura, escritura y ejecución de los archivos, si no sabes que onda, aqui puedes aprender un poco al respecto, existen permisos base para la creación de archivos y la de directorios, los permisos base de los archivos es 666 y los de los directorios es 777 partiendo de ésta base de permisos la operación para determinar los permisos de creación de archivos y de directorios es que restemos el valor que le hemos dado a umask a los permisos base, si creamos un archivo se lo restamos a los permisos base de los archivos que son 666 y en caso de ser un directorio lo que se hace es restárselo a los permisos base de los directorios que son 777, a continuación veremos un ejemplo para que sea más claro.

DIRECTORIOS

Permisos base para directorios: 777

Permisos definidos en umask: 022

Operación: Restarle el umask a los permisos base de la siguiente manera:

777 – 022 = 755

Recordando que los valores de los permisos son 1 : Ejecución, 2 :  Escritura y 4 : Lectura tenemos que los directorios se crearán con permisos de lectura, escritura y ejecución para el propietario y solo de lectura y ejecución para todos los demás.

ARCHIVOS

Permisos base para archivos: 666

Permisos definidos en umask: 022

Operación: Restarle el umask a los permisos base de la siguiente manera:

666 – 022 = 644

Recordando que los valores de los permisos son 1 : Ejecución, 2 :  Escritura y 4 : Lectura tenemos que los archivos se crearán con permisos de lectura y escritura para el propietario y solo de lectura para todos los demás.

¿Cómo modifico el umask?

Bien, como ya se había mencionado arriba, hay dos formas de modificar el valor de umask, una es ejecutando en la consola el comando umask seguido del valor que queremos que obtenga que será sólo temporal es decir en el momento en que cerremos la consola se perderá ese valor y se volverá al que se encuentra almacenado en /etc/profile y la otra hacerlo de forma permanente modificando el archivo .bashrc que solo afectará a nuestro usuario o modificando el archivo /etc/profile que afectará a todos los usuarios del sistema, bien, a continuación veremos un ejemplo de la modificación temporal.

huevas@Ubuntu:~/Pruebas$ umask 022 ; touch archivo ; mkdir directorio
huevas@Ubuntu:~/Pruebas$ ls -l
total 4
-rw-r–r– 1 huevas huevas    0 2008-01-05 12:31 archivo
drwxr-xr-x 2 huevas huevas 4096 2008-01-05 12:31 directorio
huevas@Ubuntu:~/Pruebas$ rm archivo ; rmdir directorio/
huevas@Ubuntu:~/Pruebas$ umask 044 ; touch archivo ; mkdir directorio
huevas@Ubuntu:~/Pruebas$ ls -l
total 4
-rw–w–w- 1 huevas huevas    0 2008-01-05 12:33 archivo
drwx-wx-wx 2 huevas huevas 4096 2008-01-05 12:33 directorio
huevas@Ubuntu:~/Pruebas$

En el ejemplo de arriba podemos ver que umask tendrá los permisos por defecto 022, posteriormente creamos un archivo y un directorio, si hacen las cuentas verán que los permisos son correctos acorde a la resta entre umask y los permisos base, después eliminamos el archivo y directorio y modificamos el umask para que tenga un valor de 044, volvemos a crear el archivo y el directorio y mostramos los permisos, hagan las cuentas!!!, que tal???. Ahora, ésto es temporal cuando cerremos la consola umask volverá a tener 022.

Para hacerlo permanente editamos el archivo .bashrc que se encuentra en nuestro home, si están en la consola pueden ejecutar el siguiente comando “gedit .bashrc” y agregar al final del archivo la linea “umask 022” el 022 pueden modificarlo como ustedes gusten, es el valor que queremos sea restado para obtener los permisos deseados, guardamos el archivo cerramos la consola y la volvemos a abrir, de ahora en adelante umask tendrá el valor que especificamos en .bashrc, si queremos todo como antes pueden eliminar la linea que agregaron al archivo o darle el valor 022.

Espero les sea útil. Saludos!

A continuación veremos como instalar Apache 2 y PHP 5 directo desde el código fuente, así que si eres usuario de ubuntu lo primero que debes de hacer es instalar el paquete build-essential y libxml2-dev ya sea desde synaptic o desde la consola usando apt o aptitude el que prefieras, ésto para tener disponible en el sistema las herramientas necesarias para poder realizar la compilación del código fuente.

Después de haber instalado build-essential procedemos a descargar los paquetes del servidor web que será Apache (Descargalo Aquí) y de PHP5 (Descargalo Aquí) después de los descargaste será necesario abrir una consola y comenzaremos a trabajar desde ahí.

En la consola deberás ubicarte en la carpeta donde descargaste los paquetes tar.gz, lo que debemos hacer es descomprimir esos paquetes mediante la instrucción:

tar xzvf nombreArchivo.tar.gz

Después de descomprimir los dos paquetes el del apache y de php debemos entrar a la carpeta de apache mediante la instrucción “cd” para compilarlo de manera que soporte la carga de módulos, ésto lo vamos a hacer ejecutando las siguientes instrucciones una tras otra y verificando que todas terminen con éxito y no con algún error, daremos por hecho que ya estamos dentro de la carpeta de apache.

huevas@Ubuntu:~/httpd-2.2.6$ ./configure –enable-so huevas@Ubuntu:~/httpd-2.2.6$ make
huevas@Ubuntu:~/httpd-2.2.6$ sudo make install

Después de ésto y si todo salio bien ya tenemos listo nuestro servidor web instalado en /usr/local/apache2, para probarlo debemos arrancar el demonio mediante el siguiente comando:

huevas@Ubuntu:~/httpd-2.2.6$ sudo /usr/local/apache2/bin/apachectl start

httpd: Could not reliably determine the server’s fully qualified domain name, using 127.0.1.1 for ServerName
huevas@Ubuntu:~/httpd-2.2.6$

Para verificar abrimos un navegador de internet y en la barra de direcciones escribimos http://localhost/ y debemos ver un mensaje que diga IT WORKS (osea, yasta), para detener el servidor solo ejecutamos el comando de arriba y sustituimos el start por un stop, después de hacerlo pueden verificar en el navegador que la pagina no se mostrará más, ahora es tiempo de instalar php5 y lo haremos introduciendo las instrucciones tal y como se presentan y verificando que no se generen errores:

huevas@Ubuntu:~/php-5.2.5$ ./configure –with-apxs2=/usr/local/apache2/bin/apxs

huevas@Ubuntu:~/php-5.2.5$ make

huevas@Ubuntu:~/php-5.2.5$ sudo make install

Después lo que hacemos es copiar el archivo php.ini-dist a la carpeta /usr/local/lib con el siguiente comando: cp php.ini-dist /usr/local/lib/php.ini luego debemos editar el archivo httpd.conf para quecargue el modulo de php5, este archivo lo encontramos en /usr/local/apache2/conf/httpd.conf
en ese archivo debemos buscar y descomentar si es que esta comentada la siguiente linea “LoadModule php5_module modules/libphp5.so” y agregar las siguientes dos:

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

De esa forma queda instalado nuestro servidor apache con soporte para PHP, para probarlo creamos un archivo que sea index.php que contendrá lo siguiente:

<?php

phpinfo();

?>

Y lo guardamos en la siguiente ruta: /usr/local/apache2/htdocs, después procedemos a arrancar el servicio de la misma forma que lo hicimos arriba y en la barra de direcciones del navegador web escribimos http://localhost/index.php lo que debemos ver es una pagina que nos muestre información sobre php, el equivo que esta brindando el servicio entre otras.

Con eso terminamos la instalación, espero les sea útil, Saludos!

Realmente haciendo lo siguiente permite cambiar el password de cualquier usuario del sistema, pero es bastante práctico en el caso de haber olvidado el password de root.

Para no transcribir pongo la referencia al post de Cesarius donde podrán encontrar los pasos detallados que deben seguir para realizar esta tarea, bastante fácil, yo lo probé en Ubuntu 7.10 y funciono bien.

Cambiar Contraseña Por Cesaruis

Saludos!

Ya que hemos visto como agregar usuarios al sistema, ahora veremos como eliminar, y modificar usuarios del sistema, de igual forma que para agregarlos podemos hacer uso de las herramientas de linea de comandos y de herramientas con una interfaz gráfica de usuario.

Desde la linea de comandos podemos hacer uso del comando userdel y deluser para eliminar usuarios y de usermod para modificar aspectos de los usuarios.

deluser, éste comando  elimina usuarios del sistema acorde a las configuraciones que se encuentren en /etc/deluser.conf y las opciones que se le pasen al comando al momento de ejecutarlo. Éste comando es un front end para el comando userdel, por defecto deluser eliminará un usuario sin eliminar ninguno de los archivos del ususario, podemos hacer uso de la opción –remove-home para eliminar el directorio home y los archivos de correo del usuario, de igual forma podemos usar –remove-all-files lo que eliminará todos los archivos que pertenecen al usuario y usando –remove-all-files ya no es necesario que usemos la opción –remove-home puesto que ya va incluida.

deluser también nos permite hacer un respaldo de los archivos del usuarios que queremos eliminar haciendo uso de la opción –backup que creará un archivo con el nombre del usuario que estamos eliminando, la forma del archivo que se creará será de la siguiente forma usuario.tar.(gz|bz2) y será guardado en el directorio que se le pase a la opción –backup-to, por defecto el archivo se guardará en el directorio en el que nos encontremos actualmente, la forma de usar este comando es como se muestra a continuación.

root@Ubuntu:~# deluser –remove-all-files –backup prueba3
Buscando archivos para respaldar/eliminar…
Haciendo copia de seguridad en . de los archivos que serán borrados…
backup_name = ./prueba3.tar/bin/tar: Eliminando la `/’ inicial de los nombres
Removiendo archivos …
Removiendo usuario prueba3…
Terminado.

userdel es considerado una utilidad de bajo nivel, y se recomienda más usar deluser en lugar de éste comando, podemos usar 2 opciones con éste comando, una de ellas es -f ó –force que que forzará la eliminación del usuario aunque éste se encuentre logueado, también eliminará el directorio home y los correos, aunque otros usuarios usen el mismo home y el mismo spool de correo, ésta opción no se recomienda dado que puede dejar el sistema con inconsistencias. La segunda opción que podemos usar con éste comando es -r ó –remove quehará que se eliminen el directorio home y el spool de correo, si no se hace uso de la opción -f el usuario no podrá ser eliminado si se encuentra logueado en el sistema. A continuación se muestra como usarlo.

root@Ubuntu:~# userdel -r prueba2
root@Ubuntu:~#

usermod es un comando que nos permite modificar aspectos de las cuentas de los usuarios del sistema, como su home, poner tiempos de expiración a las cuentas, entre otras que veremos a continuación.

La opción -d ó –home nos creará un nuevo directorio home para el usuario, y si usamos la opción -m conjuntamente se moverán todos los archivos de  el home viejo al nuevo, de igual forma se creará el directorio en caso de no existir.  Otra opción es -e ó –expiredate  con la que especificamos  la fecha en la que la cuenta expirará, la fecha se pasa con el formato AAAA-MM-DD.  Después de que la cuenta expira podemos especificar la cantidad de días que  se esperará el sistema hasta desactivarla por completo con la opción -f ó –inactive ésta opción recibe un valor entero y que por defecto es -1, si le pasamos un valor 0, la cuenta se desactivará inmediatamente cuando expire la misma. Podemos  cambiar el ID del grupo inicial del usuario mediante la opción -g ó –gid seguida de un GID de un grupo existente, podemos también hacer que el usuario pertenezca a otros grupos mediante la opción -G ó –groups seguida de la lista de grupos alternos a los que pertenece o queremos que pertenezca el usuario.

Podemos modificar el login del usuario, es decir su nombre de usuario mediante la opción -l ó –login, el nombre de la carpeta home del usuario cambiará también para reflejar el cambio, con la opción -L ó –lock desactivamos un password, con la opción -s ó –shell modificamos el shell de inicio del usuario, de igual forma que modificamos el ID del grupo del usuario también podemos modificar el id del usuario con la opción -u ó –uid.

A continuación veremos un ejemplo de como usar este comando.

root@Ubuntu:~# usermod -l nuevoLogin -s /bin/sh prueba
root@Ubuntu:~# su – nuevoLogin
$ pwd
/home/prueba
$ exit
root@Ubuntu:~# usermod -d /home/nuevoLogin -m nuevoLogin
root@Ubuntu:~# su – nuevoLogin
$ pwd
/home/nuevoLogin
$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  .profile
$ exit
root@Ubuntu:~# usermod -l usuario -d /home/usuario -m -s /bin/bash nuevoLogin
root@Ubuntu:~# su – usuario
usuario@Ubuntu:~$ pwd
/home/usuario
usuario@Ubuntu:~$ ls -a
.  ..  .bash_history  .bash_logout  .bashrc  .profile
usuario@Ubuntu:~$ exit
logout
root@Ubuntu:~#

De ésta forma podemos modificar y eliminar usuarios de nuestro sistema directo desde la consola, las herramientas gráficas que puede haber no serán comentadas ya que son más fáciles de usar y sólo requiere navegar un poco entre menús, espero les sea de utilidad.

Saludos!

En los sistemas linux los grupos son una forma de otorgar permisos para ciertos recursos del sistema y posteriormente asignar usuarios a esos grupos para que esos usuarios tengan permiso de usar esos recursos.

De la misma forma que los usuarios los grupos también los podemos agregar, eliminar y modificarlos, tenemos dos formas de hacerlo, manualmente o usar herramientas que nos permitan hacerlo más fácil, ya sean de linea de comandos o gráficas.

En la linea de comandos tenemos los comandos groupadd, groupmod, groupdel, a continuación veremos como usar cada uno de éstos, para crear un grupo nuevo la forma más simple de hacerla es con el comando groupadd seguido del nombre del grupo, y se automaticamente se asignara un id del grupo y se modificará el archivo /etc/group, en caso de querer especificar un ID se hace uso del modificador -g seguido del ID que deseemos, a continuación vemos un ejemplo.

root@Ubuntu:~# groupadd nuevogrupo

Podemos modificar un grupo existente con el comando groupmod, éste comando nos permite modificar el GID (Group ID) y el nombre del grupo, la forma de usarlo es pasándole parámetros mediante el modificador -g especificamos un nuevo GID, y con el modificador -n un nuevo nombre, y al final de todos los parámetros ponemos el nombre del grupo que queremos que se modifique, a continuación podemos ver un ejemplo donde se modifican el nombre y el GID y se muestra para verificar que en efecto han sido modificados.

root@Ubuntu:~# more /etc/group | grep nuevogrupo
nuevogrupo:x:1007:
root@Ubuntu:~# groupmod -g 1008 nuevogrupo
root@Ubuntu:~# more /etc/group | grep nuevogrupo
nuevogrupo:x:1008:
root@Ubuntu:~# groupmod -n nuevonombregrupo nuevogrupo
root@Ubuntu:~# more /etc/group | grep nuevonombregrupo
nuevonombregrupo:x:1008:
root@Ubuntu:~#

Por ultimo veremos el comando groupdel que se usa de la misma forma que groupadd, solo escribimos groupdel seguido del nombre del grupo que queremos eliminar, así como se ve en el siguiente ejemplo:

root@Ubuntu:~# more /etc/group | grep nuevonombregrupo
nuevonombregrupo:x:1008:
root@Ubuntu:~# groupdel nuevonombregrupo
root@Ubuntu:~# more /etc/group | grep nuevonombregrupo
root@Ubuntu:~#

Esas son las tres formas que tenemos de crear, modificar y eliminar grupos desde la consola, de manera adicional podemos usar alguna herramienta que tenga una interfaz gráfica como la que a continuación veremos y que viene incluida en la distribución Ubuntu.

La pantalla inicial tiene un botón con la leyenda gestionar grupos, tal y como se ve a continuación:

usuarios y grupos en ubuntu

Después de presionar el botón obtendremos una pantalla con la lista de grupos del sistema donde podremos seleccionar alguno de ellos y modificarlo eliminarlo o agregar algún otro grupo tal y como se ve en la siguiente pantalla.

Mediante el botón propiedades podemos modificar su GID, los usuarios que pertenecen al grupo y el nombre del grupo tal y como se muestra en la siguiente imagen.

propiedades de un grupo linux

Esas son algunas de las cosas que podemos hacer para administrar  grupos, espero les sea de utilidad.

 Saludos!

Por defecto en casi todas las distribuciones de Linux se usa el shell bash, sin embargo se proveen también con más de un shell, como pueden ser el sh, csh, ksh, tcsh entre otros, para saber que shells tienes disponibles en tu sistema puedes ejecutar el siguiente comando en la consola: more /etc/shells.

Para cambiar el shell por defecto desde la consola hacemos uso del comando chsh, éste comando tiene dos formas de ejecutarse, una es mediante parámetros y la otra de manera interactiva con el usuario, para hacer uso del mismo mediante parámetros hacemos uso del modificador -s seguido del shell que queremos utilizar, de la manera siguiente:

chsh -s /bin/sh

Cuando ingresemos de nuevo al sistema nuestra shell habrá cambiado de bash a sh, la manera interactiva la conseguimos sólo poniendo el comando chsh en la consola y presionando enter, lo que obtendremos será lo siguiente:

$ chsh
Contraseña:
Cambiando la shell de acceso para prueba
Introduzca el nuevo valor, o presione ENTER para el predeterminado
Shell de acceso [/bin/sh]: /bin/bash
$

Después de reingresar al sistema volvemos a tener nuevamente el shell bash, de esta forma podemos seleccionar entre el shell que más nos guste.

Saludos!