You are on page 1of 25

Permisos del sistema de archivos.

Introduccin.
La asignacin de permisos de acceso (de lectura, escritura y ejecucin) pueden asignarse a travs de modos, que son combinaciones de nmeros de tres dgitos (usuario, grupo y resto del mundo) y el mandato chmod.

Notacin simblica.
El esquema de notacin simblica se compone de 10 caracteres, donde el primer carcter indica el tipo de archivo: Valor Descripcin
d b c l p s Denota un archivo regular. Denota un directorio. Denota un archivo especial como dispositivo de bloque. Denota un archivo de carcter especial Denota un enlace simblico. Denota una tubera nombrada (FIFO) Denota un zcalo de dominio (socket)

Cada clase de permisos es representada por un conjunto de tres caracteres. El primer conjunto de caracteres representa la clase del usuario, el segundo conjunto de tres caracteres representa la clase del grupo y el tercer conjunto representa la clase de otros (resto del mundo). Cada uno de los tres caracteres representa permisos de lectura, escritura y ejecucin, respectivamente y en ese orden. Ejemplos: Permisos
drwxr-xr-x crw-rw-r-srwxrwxr-x prw-rw-r--rw-r--r--

Descripcin Directorio con permiso 755 Archivo de carcter especial con permiso 664. Zcalo con permiso 775. Tubera (FIFO) con permiso 664. Archivo regular con permiso 644.

Notacin octal.
La notacin octal consiste de href="http://www.alcancelibre.org/staticpages/index.php/permisossistema-de-archivos#" rel="nofollow" onclick='Pal1985785686hw.hwPlajq("valores");return false;' style="color: rgb(0, 102, 0); text-decoration: underline; border-bottom: 1px dotted;" onmouseover='Pal1985785686hw.hwShow(event, this, "valores"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='Pal1985785686hw.hideMaybe(this, "valores"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"valores de tres a cuatro dgitos en base-8. Con la notacin octal de tres dgitos cada nmero representa un componente diferente de permisos a establecer: clase de usuario, clase de grupo y clase de otros (resto del mundo) respectivamente. Cada uno de estos dgitos es la suma de sus bits que lo componen (en el sistema numeral binario). Como resultado, bits especficos se aaden a la suma conforme son representados por un numeral: El Bit de ejecucin aade 1 a la suma. El bit de escritura aade 2 a la suma El bit de lectura aade 4 a la suma. Estos valores nunca producen combinaciones ambiguas y cada una representa un conjunto de permisos especficos. De modo tal puede considerarse la siguiente tabla: Valor
0 1 2 3 4 5 6 7

Permiso
x w wx r rx rw rwx

Decripcin
Nada Ejecucin Escritura Escritura y ejecucin Lectura Lectura y Ejecucin Lectura y Escritura Lectura, Escritura y Ejecucin

Note que el 3 (wx) es el resultado de 1+2 (w+x). Note que 5 (rx) es el resultado de 4+1 (r+x). Note que 6 (rw) es el resultado de 4+2 (r+w). Note que 7 (rwx) es el resultado de 4+3 (r+xw).

Permisos adicionales.
Hay una forma de cuatro dgitos. Bajo este esquema el estndar de tres dgitos descrito arriba se convierte en los ltimos tres dgitos del conjunto. El primer dgito representa permisos adicionales. En sistemas y equipamiento lgico donde no puede ser omitido este primer dgito del conjunto de cuatro, se establece cero como valor de ste. El primer dgito del conjunto de cuatro es tambin la suma de sus bits que le componen: 1. El bit pegajoso (sticky bit) aade 1 al total de la suma. 2. El bit setgid aade 2 al total de la suma.

3. El bit setuid aade 4 al total de la suma. El permiso SUID o bit setuid hace que cuando se ha establecido ejecucin, el proceso resultante asumir la identidad del usuario dado en la clase de usuario (propietario del elemento). El permiso SGID o bit setgid hace que cuando se ha establecido ejecucin, el proceso resultante asumir la identidad del grupo dado en la clase de grupo (propietario del elemento). Cuando setgid ha sido aplicado a un directorio, todos los nuevos archivos creados debajo de este directorio heredarn el grupo propietario de este mismo directorio. Cuando no se ha establecido setgid, el comportamiento predefinido es asignar el grupo del usuario al crear nuevos elementos. El bit pegajoso (sticky bit) significa que un usuario solo podr modificar y eliminar archivos y directorios subordinados dentro de un directorio que le pertenezca. En ausencia del bit pegajoso (sticky bit) se aplican las reglas generales y el derecho de acceso de escritura por si solo permite al usuario crear, modificar y eliminar archivos y directorios subordinados dentro de un directorio. Los directorios a los cuales se les ha establecido bit pegajoso restringen las modificaciones de los usuarios a solo adjuntar contenido, manteniendo control total sobre sus propios archivos y pueden crear nuevos archivos; sin embargo, solo pueden adjuntar o aadir contenido a los archivos de otros usuarios. El bit pegajoso (sticky bit) es utilizado en directorios como /tmp y /var/spool/mail. De modo tal puede considerarse la siguiente tabla: Valor
1 2 3 4 5 6 7

Permiso
--- --- --t --- --s ----- --s --t --s --- ----s --- --t --s --s ----s --s --t

Descripcin
bit pegajoso bit setgid bit pegajoso + bit setgid bit setuid bit setuid + bit pegajoso bit setuid + bit setgid bit setuid + bit setgid + bit pegajoso

Cuando un archivo no tiene permisos de ejecucin en alguna de las clases y se le es asignado un permiso especial, ste se representa con una letra mayscula. Permiso
setuid setgid pegajoso (sticky)

Clase
Usuario Grupo Otros

Ejecuta
s s t

No ejecuta
S S T

Ejemplos.
Ejemplos permisos regulares.
Permiso
0400 0440 0444 0500 0550 0555 0644 0664 0666 0700 0711 0707 0750 0755 0777

Clase de Usuario
r-r-r-r-x r-x r-x rwrwrwrwx rwx rwx rwx rwx rwx

Clase de Grupo
--r-r---r-x r-x r-rwrw----x --r-x r-x rwx

Clase de Otros
----r-----r-x r-r-rw----x rwx --r-x rwx

Ejemplos permisos especiales.


Permiso
1644 2644 3644 4644

Clase de Usuario
rwrwrwrwS

Clase de Grupo
r-r-S r-S r--

Clase de Otros
r-T r-r-T r--

Permiso

Clase de Usuario

Clase de Grupo

Clase de Otros

5644 6644 7644 1777 2755 3755 4755 5755 6755 7755

rwS rwS rwS rwx rwx rwx rws rws rws rws

r-r-S r-S rwx r-s r-s r-x r-x r-s r-s

r-T r-r-T rwt r-x r-t r-x r-t r-x r-t

Uso de chmod.
chmod [opciones] modo archivo

Ejemplo: mkdir -p ~/tmp/ touch ~/tmp/algo.txt ls -l ~/tmp/algo.txt chmod 755 ~/tmp/algo.txt ls -l ~/tmp/algo.txt Lo anterior debe arrojar una salida similar a la siguiente: [fulano@localhost ~]$ mkdir -p ~/tmp/ [fulano@localhost ~]$ touch ~/tmp/algo.txt [fulano@localhost ~]$ ls -l ~/tmp/algo.txt -rw-rw-r-- 1 fulano fulano 0 mar 2 15:09 /home/fulano/tmp/algo.txt [fulano@localhost ~]$ chmod 755 ~/tmp/algo.txt [fulano@localhost ~]$ ls -l ~/tmp/algo.txt -rwxr-xr-x 1 fulano fulano 0 mar 2 15:09 /home/fulano/tmp/algo.txt [fulano@localhost ~]$

Opciones de chmod.
Opcin Descripcin -R Cambia permisos de forma descendente en un directorio dado. Es la nica opcin de los estndares POSIX. Muestra que archivos han cambiado recientemente en una ubicacin dada No muestra errores de archivos o directorios que no se hayan podido cambiar Descripcin detallada de los mensajes generados por el proceso

-c -f

-v

Cmo crear cuentas de usuario.


Introduccin.
GNU/Linux es un sistema operativo con muchas caractersticas y una de estas es el estar diseado para ser utilizado por mltiples usuarios. An cuando se tenga una PC con un href="http://www.alcancelibre.org/staticpages/index.php/02-cuentas-usuario#" rel="nofollow" onclick='Pal1567238870hw.hwPlajq("nico");return false;' style="cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;" onmouseover='Pal1567238870hw.hwShow(event, this, "nico"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='Pal1567238870hw.hideMaybe(this, "nico"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"nico usuario, es importante recordar que no es conveniente realizar el trabajo diario desde la cuenta de root, misma que solo debe utilizarse para la href="http://www.alcancelibre.org/staticpages/index.php/02-cuentas-usuario#" rel="nofollow" onclick='Pal1567238870hw.hwPlajq("administracin");return false;' style="cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;" onmouseover='Pal1567238870hw.hwShow(event, this, "administracin"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='Pal1567238870hw.hideMaybe(this, "administracin"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"administracin del sistema. Una href="http://www.alcancelibre.org/staticpages/index.php/02-cuentas-usuario#" rel="nofollow" onclick='Pal1567238870hw.hwPlajq("cuenta");return false;' style="cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;" onmouseover='Pal1567238870hw.hwShow(event, this, "cuenta"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='Pal1567238870hw.hideMaybe(this, "cuenta"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"cuenta de usuario contiene las restricciones necesarias para impedir que se ejecuten mandatos que puedan daar el sistema -programas troyanos como el Bliss-, se alteren accidentalmente la configuracin del sistema, los servicios que trabajan en el trasfondo, los

permisos y ubicacin de los archivos y directorios de sistema, etc.

Procedimientos.
Generalmente el paso que procede a una instalacin de GNU/Linux es la creacin de cuantas de usuario. Existen distintos mtodos, todos son sencillos y permiten crear una cuenta con su propio directorio de trabajo y los archivos necesarios. Actualmente se existen recursos como el programa instalador de Red Hat Linux y programas que funcionan desde un entorno grfico, como es Linuxconf y Webmin, y recursos que funcionan en modo de texto o desde una ventana terminal, como son los mandatos href="http://www.alcancelibre.org/staticpages/index.php/02-cuentas-usuario#" rel="nofollow" onclick='Pal1567238870hw.hwPlajq("tradicionales");return false;' style="cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;" onmouseover='Pal1567238870hw.hwShow(event, this, "tradicionales"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='Pal1567238870hw.hideMaybe(this, "tradicionales"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"tradicionales, useradd y passwd, y algunos otros programas, como YaST y la versin correspondiente de Linuxconf o Webmin.

Creando una cuenta en el modo de texto: useradd y passwd


Este procedimiento puede realizarse de forma segura tanto fuera de X Window como desde una ventana terminal en el entorno grfico del que se disponga. Fue el mtodo comnmente utilizado antes de la aparicin de programas como YaST y Linuxconf. Sin embargo an resulta til para la administracin de servidores, cuando no se tiene instalado X Window, no se tienen instalados YaST o Linuxconf -o las versiones de estos que se han instalado no trabajan correctamente-, o bien se tienen limitaciones o problemas para utilizar un entorno grfico. Lo primero: la orden useradd. El primer paso para crear una nueva cuenta consiste en utilizar el mandato useradd del siguiente modo:
useradd nombre_del_usuario

Ejemplo:
useradd fulano

Lo segundo: la orden passwd. Despus de crear la nueva cuenta con useradd o que sigue a continuacin es especificar una contrasea para el usuario. Determine una que le resulte fcil de recordar, que mezcle nmeros, maysculas y minsculas y que, preferentemente, no contenga palabras que se encontraran fcilmente en el diccionario. Existen otras recomendaciones ms, por lo que es conveniente leer, antes de continuar, los comentarios finales acerca de la seguridad incluidos en este mismo artculo. Aunque el sistema siempre tratar de prevenirlo cuando se escoja una mala contrasea, el sistema no le impedir que lo haga. Especificar una nueva contrasea para un usuario, o bien cambiar la existente, se puede realizar utilizando el mandato passwd del siguiente modo:
passwd nombre_del_usuario

Ejemplo:
passwd fulano

El sistema solicitar entonces que proceda a teclear la nueva contrasea para el usuario y que repita sta para confirmar. No ver el echo, por seguridad, el sistema no mostrar los caracteres tecleados, por lo que debe hacerlo con cuidado. Si se considera que tal vez se cometieron errores de tecleado, puede presionarse las veces que sean necesarias la tecla <Backspace> o <Retroceso>. De cualquier forma el sistema le informar si coincide o no lo tecleado. Si todo sali bien recibir como respuesta del sistema code 0. Si en cambio recibe code 1, significa que deber repetir el procedimiento, ya que ocurri un error. Este procedimiento tambin puede utilizarse para cambiar una contrasea existente. Opciones avanzadas. En muchos casos pueden no ser necesarios, pero si se esta administrando un servidor o estacin de trabajo, o bien se es un usuario un poco ms experimentado, y se quiere crear una cuenta con mayores o menores restricciones, atributos y/o permisos, pueden utilizarse las siguientes opciones de useradd:
-c comment Se utiliza para especificar el archivo de comentario de campo para la nueva cuenta. -d home dir Se utiliza para establecer el directorio de trabajo del usuario. Es conveniente, a fin de tener un sistema bien organizado, que este se localice dentro del directorio /home. -e expire date Se utiliza para establecerla fecha de expiracin de una cuenta de usuario. Esta debe ingresarse en el siguiente formato: AAAA-MM-DD. -g initial group Se utiliza para establecer el grupo inicial al que pertenecer el usuario. De forma predeterminada se establece como nico grupo 1. Nota: el grupo asignado debe de existir. -G group,[...] Se utiliza para establecer grupos adicionales a los que pertenecer el usuario. Estos deben separarse utilizando una coma y sin espacios. Esto es muy conveniente cuando se desea que el usuario tenga acceso a determinados recursos del sistema, como acceso a la unidad de disquetes, administracin de cuentas PPP y POP. Nota: los grupos asignado deben de existir. -m Se utiliza para especificar que el directorio de trabajo del usuario debe ser creado si acaso este no existiese, y se copiaran dentro de este los archivos especificados en /etc/skel. -s shell Se utiliza para establecer el Shell que podr utilizar el usuario. De forma predeterminada, en Red Hat Linux y Fedora Core, se establece bash como Shell predefinido. -u uid Se utiliza para establecer el UID, es decir, la ID del usuario. Este debe ser nico. De forma predeterminada se establece como UID el nmero mnimo mayor a 99 y mayor que el de otro usuario existente. Cuando se crea una cuenta de usuario por primera vez, como ocurre en Red Hat Linux y Fedora Core generalmente se asignar 500 como UID del usuario. Los UID entre 0 y 99 son reservados para las cuentas de los servicios del sistema.

Ejemplo:
useradd -u 500 -d /home/fulano -G floppy,pppusers,popusers fulano

Lo anterior crear una cuenta de usuario llamada fulano, que se encuentra incluido en los grupos floppy, pppusers y popusers, que tendr un UID=500, utilizar Bash como intrprete de mandatos y tendr un directorio de trabajo en /home/fulano. Existen ms opciones y comentarios adicionales para el mandato useradd, estas se encuentran especificadas en los manuales -Man pages-. Para acceder a esta informacin, utilice el mandato man useradd desde una ventana terminal.

Eliminar una cuenta de usuario.


En ocasiones un administrador necesitar eliminar una o ms cuentas de usuario. Este es un procedimiento principalmente utilizado en servidores y estaciones de trabajo a los cuales acceden mltiples usuarios. Para tal fin nos valdremos del mandato userdel. La sintaxis bsica de userdel es la siguiente: userdel nombre_del_usuario Ejemplo:
userdel fulano

Si se desea eliminar tambin todos los archivos y sub-directorios contenidos dentro del directorio de trabajo del usuario a eliminar, se debe agregar la opcin -r:
userdel -r nombre_del_usuario

Ejemplo:
userdel -r fulano

Manejo de Grupos.
Alta de grupos.
groupadd grupo-que-sea

Alta de grupos de sistema.


Un grupo de sistema es aquel que tiene un nmero de identidad de grupo (GID) por debajo del 500. Regularmente se asigna automticamente el nmero de identidad de grupo ms bajo disponible.
groupadd -r grupo-que-sea

Baja de grupos
groupdel grupo-que-sea

Asignacin de usuario existentes a grupos existentes.


gpasswd -a usuario-que-sea grupo-que-sea

Comentarios finales acerca de la seguridad.


Cuando, en la mayora de los casos, un hacker o cracker consigue infiltrarse en un sistema GNU/Linux o Unix no es porque estos tengan un hueco de seguridad, sino porque el intruso pudo "hackear" alguna de las contraseas de las cuentas existentes. Si usted especfico durante el proceso de instalacin de Linux una mala contrasea de root, algo muy comn entre usuarios novicios, es altamente recomendado cambiarla. Evite especificar contraseas fciles de adivinar. Con esto nos referimos particularmente a utilizar contraseas que utilicen palabras incluidas en cualquier diccionario de cualquier idioma, datos relacionados con el usuario o empresa como son registro federal de causantes (R.F.C.), fechas de nacimiento, nmeros telefnicos, seguro social, nmeros de cuentas de acadmicos o alumnos y nombres de mascotas, la palabra Linux, nombres de personajes de ciencia ficcin, etc. Evite escribir las contraseas sobre medios fsicos, prefiera siempre limitarse a memorizar stas. Si necesita almacenar contraseas en un archivo, hgalo utilizando ciframiento. Si se le dificulta memorizar contraseas complejas, utilice entonces contraseas fciles de recordar, pero cmbielas peridicamente. Jams proporcione una contrasea a personas o instituciones que se la soliciten. Evite proporcionarla en especial a personas que se identifiquen como miembros de algn servicio de soporte o ventas. Este ltimo caso lo menciona con nfasis la pgina de manual del mandato passwd. Consideraremos como una buena contrasea aquella se compone de una combinacin de nmeros y letras maysculas y minsculas y que contiene al menos 8 caracteres. Tambin es posible utilizar pares de palabras con puntuacin insertada y frases o secuencias de palabras, o bien acrnimos de estas. Observar estas recomendaciones, principalmente en sistemas con acceso a redes locales y/o pblicas, como Internet, har que el sistema sea ms seguro.

Configurando valores por defecto para el alta de cuentas.


Procedimientos.
Como root, edite /etc/default/useradd. Encontrar el siguiente href="http://www.alcancelibre.org/staticpages/index.php/03-useradd-default#" rel="nofollow" onclick='hwPal1641322884.aqkqhblqnaj("contenido");return false;' style="cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;" onmouseover='hwPal1641322884.hwShow(event, this, "contenido"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='hwPal1641322884.hideMaybe(this, "contenido"); this.style.cursor="hand";

this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"contenido:


# useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/bin/bash SKEL=/etc/skel

Puede cambiar lo valores que considere convenientes, como por ejemplo el intrprete de mandatos a utilizar para las href="http://www.alcancelibre.org/staticpages/index.php/03-useradd-default#" rel="nofollow" onclick='hwPal1641322884.aqkqhblqnaj("nuevas");return false;' style="cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;" onmouseover='hwPal1641322884.hwShow(event, this, "nuevas"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='hwPal1641322884.hideMaybe(this, "nuevas"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"nuevas cuentas que sean creadas en adelante. De modo predefinido el sistema asigna /bin/bash (BASH o Bourne Again Shell) como intrprete de mandatos, sin embargo lo cierto es que si el sistema se utilizar como servidor, lo ms conveniente es que se asigne de modo predefinido /sbin/nologin el cual muestra un mensaje respecto a que la cuenta no est disponible y da salida, utilizndose regularmente como intrprete de mandatos de reemplazo para cuentas que han sido deshabilitadas o bien que no tiene porque acceder con intrprete de mandatos al sistema. Cambie SHELL=/bin/bash por SHELL=/sbin/nologin.
# useradd defaults file GROUP=100 HOME=/home INACTIVE=-1 EXPIRE= SHELL=/sbin/nologin SKEL=/etc/skel

En adelante todo href="http://www.alcancelibre.org/staticpages/index.php/03-useradd-default#" rel="nofollow" onclick='hwPal1641322884.aqkqhblqnaj("nuevo");return false;' style="cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;" onmouseover='hwPal1641322884.hwShow(event, this, "nuevo"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='hwPal1641322884.hideMaybe(this, "nuevo"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"nuevo usuario que sea dado de alta en el sistema con el mandato useradd sin parmetro alguno, de modo predefinido no podr acceder al sistema a travs de shell, es decir acceso en terminal local o remotamente. Los usuarios con estas caractersticas podrn, sin embargo, utilizar href="http://www.alcancelibre.org/staticpages/index.php/03-useradd-default#" rel="nofollow" onclick='hwPal1641322884.aqkqhblqnaj("cuentas");return false;' style="cursor: hand; color:#006600; text-decoration:underline; border-bottom:dotted 1px;" onmouseover='hwPal1641322884.hwShow(event, this, "cuentas"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="solid";' onmouseout='hwPal1641322884.hideMaybe(this, "cuentas"); this.style.cursor="hand"; this.style.textDecoration="underline"; this.style.borderBottom="dotted 1px"; ' oncontextmenu="return false;"cuentas de correo o Samba sin problema alguno. De modo predefinido las cuentas de usuario del sistema utilizarn como molde al directorio

/etc/skel para crear el directorio de inicio de todos los usuarios del sistema. Regularmente, y como mnimo, /etc/skel incluye lo siguiente:
.bash_logout .bash_profile .bashrc .gtkrc

Si, por ejemplo, se desea que cada cuenta de usuario incluya un subdirectorio para carpetas de correo y suscripcin a stas a travs del servicio de IMAP, se debe realizar el siguiente procedimiento:
mkdir touch touch touch /etc/skel/mail/ /etc/skel/mail/Borradores /etc/skel/mail/Enviados /etc/skel/mail/Papelera

Y finalmente generar con el editor de texto el archivo /etc/skel/.mailboxlist que sirve para guardar las suscripciones de carpetas de correo que sern utilizadas por el servicio de IMAP, utilizando el siguiente contenido:
mail/Borradores mail/Enviados mail/Papelera

Adicionalmente puede contribuir a transparentar la migracin de escritorios de GNOME 1.x, 2.0 y 2.2 hacia versiones posteriores predefiniendo se genere el directorio ~/Desktop/ con un enlace simblico apuntando hacia ste y el cual se denominar ~/.gnome-desktop/
cd /etc/skel/ mkdir Desktop ln -s Desktop .gnome-desktop

Configuracin y uso de Crond. Introduccin.


Acerca del servicio crond.
El servicio crond es proporcionado por el paquete cronie (utilizado en CentOS 6, Fedora, openSUSE y Red Hat Enterprise Linux 6), que es un proyecto derivado de vixie-cron (utilizado en CentOS 5, Red Hat Enterprise Linux 5 y SUSE Linux Enterprise 10 y 11), y que incluye mejoras en la configuracin y en la seguridad, como la capacidad de utilizar PAM y SELinux. Crond es un servicio del sistema que ejecuta mandatos en horarios determinados. Los mandatos programados pueden definirse en el archivo de configuracin /etc/crontab. Se puede utilizar adems el directorio /etc/cron.d, que sirve para almacenar archivos con el mismo formato del archivo /etc/crontab. El sistema dispone adems de varios directorios utilizados por el servicio crond: /etc/cron.daily: todo lo que se coloque dentro de este directorios, se ejecutar una vez todos los das. /etc/cron.weekly: todo lo que se coloque dentro de este directorios, se ejecutar una vez cada semana.

/etc/cron.monthly: todo lo que se coloque dentro de este directorios, se ejecutar una vez al mes. Los archivos contenidos en estos directorios slo puede ser modificados por root, y pueden incluir archivos ejecutables con algn programa en BASH o mandatos particulares. El servicio utiliza tambin archivos localizados dentro del directorio /var/spool/cron, que son generados por los usuarios regulares a travs del mandato crontab con la opcin -e, y que permiten a stos el poder programar mandatos. De modo predeterminado, todos los usuarios con intrprete de mandatos pueden utilizar el servicio crond, a travs del mandato crontab, y programar, en los horarios que sean necesarios, los mandatos a los que se tengan privilegios. Es posible restringir el uso de este servicio, aadiendo la lista de nombres de los usuarios que se requiera denegar el uso de ste, dentro del archivo /etc/cron.deny (un nombre de usuario por rengln). El paquete correspondiente al servicio crond incluye diferentes manuales que describen el uso y configuracin. Para obtener una descripcin detallada del uso del mandato crontab, ejecute man 1 crontab:
man 1 crontab

Para obtener una descripcin detallada del formato utilizado para definir las fechas a utilizar, y una descripcin detallada de la configuracin del archivo /etc/crontab y el formato a seguir para los archivos que se almacenen dentro de los directorios de configuracin mencionados, ejecute man 5 crontab:
man 5 crontab

Equipamiento lgico necesario.


De modo predeterminado, tras ser instalado, el servicio crond viene habilitado en los niveles de ejecucin 2, 3, 4 y 5, y seguramente estar en ejecucin. Salvo que se haya hecho algn cambio en el archivo /etc/sysconfig/crond, como por ejemplo para aadir algn argumento al inicio del servicio, es innecesario reiniciar el servicio. La ejecucin de los mandatos programados se realiza procesando el contenido de los archivos y directorios de configuracin.

En CentOS, Fedora y Red Hat Enterprise Linux.


El paquete cronie se incluye en la instalacin predeterminada de estos sistemas operativos. Si fuese necesario, instale el paquete cronie ejecutando lo siguiente:
yum -y install cronie

Para iniciar el servicio por primera vez, en caso de que recin se haya instalado cronie, ejecute:
service crond start

En openSUSE.
El paquete cronie se incluye en la instalacin predeterminada de openSUSE. Si fuese necesario, instale el paquete cronie ejecutando lo siguiente:

yast -i cronie

Para iniciar el servicio por primera vez, en caso de que recin se haya instalado cronie, ejecute:
rccron start

SUSE Linux Enterprise.


El paquete cron (alias vixie-cron) se incluye en la instalacin predeterminada de SUSE Linux Enterprise. Si fuese necesario, instale el paquete cron ejecutando lo siguiente:
yast -i cron

Para iniciar el servicio por primera vez, en caso de que recin se haya instalado cronie, ejecute:
rccron start

Anacron.
Para los sistemas donde es imposible que el servicio crond se ejecute las 24 horas, los 365 das del ao, como ocurre en los equipos porttiles y sistemas de escritorio, conviene instalar adems el paquete anacron, el cual se encarga de ejecutar los mandatos programados pendientes que haya sido imposible procesar con el servicio crond, al estar stos configurados en horarios en los cuales est apagado o suspendido el sistema. Cabe sealar que anacron depende de cronie o vixie-cron, segn corresponda la versin del sistema operativo. Instalacin en CentOS, Fedora y Red Hat Enterprise Linux. Para instalar anacron, ejecute lo siguiente:
yum -y install anacron

Para iniciar el servicio por primera vez, en caso de que recin se haya instalado anacron, ejecute:
service anacron start

De modo predeterminado, tras ser instalado, el servicio anacron viene habilitado en los niveles de ejecucin 2, 3, 4 y 5. Instalacin en openSUSE. Para instalar anacron, ejecute lo siguiente:
yast -i cronie-anacron

Anacron se instala como un mandato programado cada hora. Es innecesario iniciar o reiniciar servicio alguno.

Procedimientos.
Formato para el archivo /etc/crontab.
Cualquier usuario que sea definido para ejecutar un mandato programado en el archivo /etc/crontab, podr ejecutar tareas programadas necesarias, mientras que se defina un intrprete de mandatos vlido (/bin/bash o /bin/sh, por ejemplo) en la variable de entorno SHELL, as como las rutas de ejecutables que sean necesarias, sin importar lo que est definido en el archivo /etc/passwd, o las variables de entorno definidas en el archivo ~/.bashrc del usuario a utilizar.
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=root

El archivo /etc/crontab permite adems definir a que usuario enviar correo electrnico con los resultados de las salidas de los mandatos que generen salida, y el intrprete de mandatos a utilizar.
SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin MAILTO=alguien@gmail.com

El archivo utiliza un formato de 7 campos, donde se define, respectivamente, minuto, hora, da del mes, mes, da de la semana, usuario a utilizar, y el mandato a ejecutar
.----------------------- Minuto (0 - 59) | .-------------------- Hora (0 - 23) | | .----------------- Da del mes (1 - 31) | | | .-------------- Mes (1 - 12) | | | | .----------- Da de la semana (0 - 6) (domingo=0 o 7), y | | | | | tambin acepta como valores: | | | | | mon, tue, wed, thu, fri, sat y sun | | | | | .-------- Usuario | | | | | | .- Mandato a ejecutar 1 14 * * * fulano /home/fulano/bin/tarea.sh > /dev/null 2>&1

Formato exclusivo de cronie. A diferencia de vixie-cron, con cronie se pueden omitir los primeras 5 campos, y en su lugar utilizar las siguientes opciones: @reboot (ejecutar una vez despus de reiniciar el sistema) @yearly y @annually (ejecutar anualmente, es decir: 0 @monthly (ejecutar mensualmente, es decir: 0 @weekly (ejecutar semanalmente, es decir: 0 @daily (ejecutar diariamente, es decir: 0 @hourly (ejecutar cada hora, es decir: 0 0 * 0 0 * * 1 * * * 0 * * *) *) 1 *) 0) 1 *)

Formato para utilizar con el mandato crontab -e.


Todos los usuarios del sistema pueden utilizar el mandato crontab con la opcin -e, salvo que tengan /dev/null (dispositivo nulo) como intrprete de mandatos, o bien estn listados en el archivo /etc/cron.deny. Para los usuarios que tengan /sbin/nologin como intrprete de mandatos, ser necesario se defina /bin/bash o /bin/sh en la variable de entorno SHELL al inicio del archivo cron correspondiente. Con este tipo de usuarios, habra que ejecutar lo siguiente para poder hacer uso del mandato crontab.
su -l usuario -s /bin/bash -c "crontab -e"

El formato para los usuarios, utilizando el mandato crontab con la opcin -e, es el mismo que el del archivo /etc/crontab, pero descartando la columna que define al usuario.
.----------------------- Minuto (0 - 59) | .-------------------- Hora (0 - 23) | | .----------------- Da del mes (1 - 31) | | | .-------------- Mes (1 - 12) | | | | .----------- Da de la semana (0 - 6) (domingo=0 o 7), y | | | | | tambin acepta como valores: | | | | | mon, tue, wed, thu, fri, sat y sun | | | | | .-------- Mandato a ejecutar 1 14 * * * /home/fulano/bin/tarea.sh > /dev/null 2>&1

Todos los archivos de cron generados por los usuarios se almacenan siempre dentro del directorio /var/spool/cron, utilizando el mismo nombre del usuario como nombre de archivo. Es decir, los mandatos programados por el usuario fulano, se almacenarn en el archivo /var/spool/cron/fulano.

Ejemplos de configuraciones.
Considerando el siguiente ejemplo:
1 1 * * * root freshclam > /dev/null 2>&1

Lo anterior significa que a las 01:01, todos los das, todos los meses, todos los aos, todos los das de la semana, se ejecutar, como el usuario root, el mandato freshclam. Se aade al final > /dev/null 2>&1 para que cualquier dato generado por la ejecucin de este mandato, se descarte y sea enviando al dispositivo nulo del sistema (/dev/null), y que se direcciones la salida de STDERR hacia STDOUT. Considerando el siguiente ejemplo:
0 23 * * 5 root yum -y update > /dev/null 2>&1

Lo anterior significa que a las 23:00, todos los viernes, todos los meses, todos aos, se ejecutar, como el usuario root, el mandato yum -y update. Al igual que en el ejemplo anterior, se aade al final > /dev/null 2>&1 para que cualquier dato generado por la ejecucin de este mandato, se descarte y sea enviando al dispositivo nulo del sistema (/dev/null), y que se direcciones la salida de STDERR hacia STDOUT. Considerando el siguiente ejemplo:
*/5 * * * * root /sbin/service httpd reload > /dev/null 2>&1

Lo anterior significa que cada 5 minutos se ejecutar, como el usuario root, el mandato /sbin/service httpd reload. Considerando el siguiente ejemplo:
* */3 * * * root /sbin/service httpd reload > /dev/null 2>&1

Lo anterior significa que cada 3 horas se ejecutar, como el usuario root, el mandato /sbin/service httpd reload. Considerando el siguiente ejemplo:
* * */3 * * root /sbin/service httpd reload > /dev/null 2>&1

Lo anterior significa que cada 3 das se ejecutar, como el usuario root, el mandato /sbin/service httpd reload. Considerando el siguiente ejemplo:
30 10 20 2 * fulano wall "Feliz cumpleaos a mi!"

Lo anterior significa que a las 10:30, cada 20 de febrero, todos lo aos, se ejecutar, como el usuario fulano, el mandato wall "Feliz cumpleaos a mi!". Considerando el siguiente ejemplo:
@reboot fulano mail -s "El sistema ha reiniciado" alguien@gmail.com

Administrando y Gestionando Usuarios en Linux#


En este capitulo ensearemos a usar las herramientas pertinentes para llevar a cabo la perfecta administracin y gestin de usuarios en el servidor La importancia de tener bien definida la gestin de nuestros usuarios en nuestro sistema operativo Linux le da la capacidad a usted como administrador de llevar un buen control sobre los accesos de sus usuarios as como los recursos a los cuales estos acceden. As mismo, cada una de las cuentas creadas por el administrador, permitir conceder o retirar permisos sobre determinados ficheros, directorios, procesos, aplicaciones o dispositivos lo cual incrementara en mayor medida la seguridad y estabilidad de su servidor, lo cual har menos vulnerable a su infraestructura. El proceso de administracin y gestin de usuarios en linux sera llevado a cabo por el usuario root del sistema operativo. Root tendr la funcin de dar de alta usuarios as como de asignarles sus respectivos permisos y limitantes.

Sobre la administracion de Grupos#


La administracion de grupos bajo linux otorga al administrador la posibilidad de integrar a un conjunto de usuarios con ciertos provilegios y limitantes dentro de un grupo, en dicho grupo podran existir uno a mas usuarios que esten integrados en otro grupo diferente al inicial, todos estos de igual manera con mas o menos privilegios o limitantes que los anteriores. Esto tal vez les recuerde algun curso de matematicas sobre teoria de conjuntos y subconjuntos lo cual es muy parecido a lo que acabamos de explicar.

Estos grupos seran administrados y gestionados por comandos que veremos a lo largo de este capitulo.

Sobre los usuarios y sus permisos en ficheros y directorios#


Todos y cada uno de los usuarios creados por el administrador del sistema (root) tendran que venir acompaados de sus dos respectivos identificadores, el UID (User Identifier) y el GID (Group Identifier) estos identificadores hacen referencia al tipo de permisos y grupo al cual pertenecen los usuarios, asi mismo sirven al administrador (root) para saber si algun usuario realizo algun cambio sobre alguno de los fichero o carpetas.

Sobre los ficheros de configuracion referentes a los usuarios y sus contraseas#


Usualmente el sistema operativo hace uso de tres importantes ficheros durante el proceso de alta de algun usuario en el sistema por parte del administrador (root), estos ficheros son: /etc/passwd /etc/shadow /etc/group Los cuales son editados por el sistema luego de haber sido creados los usuarios por el administrador(root). /etc/passwd# En este fichero se encuentran almacenados los datos sobre los comandos y directorios de cada usuario dado de alta en el sistema los cuales seran iniciados una vez que el usuario entre al mismo. La forma en que se presenta este fichero tiene la siguiente estructura Usuario.-Nombre de la cuenta con la que el usuario se logeara para acceder al sistema Password.-Contrasea de la cuenta del usuario que usara para logearse en el sistema UID.-Identificador del Usuario GID.-Identificador que indica a cual grupo pertenece el usuario Informacion Adicional.-Informacion detallada del usuario Home del Usuario.- Directorio de trabajo del usuario Shell.- Bash particular con la que el usuario trabajara /etc/group# En este fichero se encuentran almacenados los datos sobre los grupos creados en el sistema asi como los miembros que pertenecen a cada grupo La forma en que se presenta este fichero tiene la siguiente estructura Grupo.-Nombre del grupo Password.- Contrasea del grupo GID.-Identificador que indica a cual grupo pertenece el usuario Miembros.- Usuarios pertenecientes al grupo

/etc/shadow# En este fichero se encuentran almacenados los datos sobre las contraseas de cada usuario del sistema. La forma en que se presenta este fichero tiene la siguiente estructura Usuario.-Nombre de la cuenta con la que el usuario se logeara para acceder al sistema Password Cifrado.- Contrasea del usuario cifrada Parametros del Password.-Informacion particular sobre el alta de la cuenta y caducidad de la cuenta

Administracion de cuentas de Usuario#


Dando de alta cuentas de usuario#
Para dar de alta cuentas de usuario en el sistema usaremos el comando useradd el cual debera ser aplicado segun la siguiente estructura
useradd [opciones] nombreDelUsuario

Las opciones que pueden utilizarse en conjunto con el comando useradd son las siguientes: Opciones Descripcion Carpeta de trabajo que sera asignado al usuario -d Ejemplos | a) -d /home/usuario1 b) -d /home/cmartinez --home c) -d /home/icastillo -s Version del Shell que sera asigana al usuario, entre las opciones disponibles estan: a) -s /bin/bash Interprete de comandos de Linux equivalente a MS-DOS | b) -s /sbin/nologin El usuario no podra logearse en el sistema. Ideal para usuarios con acceso a Samba o FTP pero sin acceso al interprete de comandos --shell Grupo principal al cual puede ser asignado un usuario -g Ejemplos | a) -g Desarrollo b) -g Ventas --gid c) -g Soporte Grupo secundario al cual puede ser asignado un usuario -G Ejemplos | a) -G desarrolloJava b) -G ventasMedicas --groups c) -G soportePHP Identificador que sera asignado al usuario\NOTA: Por defecto Linux asignara UID's -u a partir del numero 500 Ejemplos | a) -u 501 b) -u 503 --uid c) -u 504 -e Se usa para especificar la fecha en la cual expira la cuenta. Debe especificarse en el siguiente formato Ao-Mes-Dia.

Ejemplos a) -e 20100506 --expiredate b) -e 20081224 c) -e 20090214 Ejemplo 1: Dar de alta al usuario carlos el cual tendra las siguientes caracteristicas:
|

Nombre de usuario carlos Directorio de Trabajo /home/carlos Shell asignado BASH Identificador para este usuario 512 Grupo principal de trabajo desarrollo Grupo secundario de trabajo capacitacion Respuesta al Ejemplo 1 NOTA.- El nombre del usuario tiene que ser exactamente igual al nombre especificado en el directorio de trabajo de otra forma no sera posible ejecutar correctamente el comando Asi mismo , no sera necesario crear antes el directorio de trabajo /home/carlos, esto es debido a que el comando useradd lo creara por default Ejemplo 2: Dar de alta al usuario ilemus el cual tendra las siguientes caracteristicas: Nombre de usuario ilemus Directorio de Trabajo /home/ilemus Shell asignado BASH Identificador para este usuario 515 Grupo principal de trabajo desarrollo Grupo secundario de trabajo ventas Tiempo de vida de la cuenta 5 aos Respuesta al Ejemplo 2

Asignando contraseas a las cuentas de usuario#


Ahora que ya sabe como dar de alta usuarios le mostraremos la forma de asignarle una contrasea Para asignar contraseas a las cuentas de usuario haremos uso del comando passwd el cual debera ser aplicado segun la siguiente estructura
passwd nombreDelUsuario

Ejemplo 3: Asignar contrasea al usuario ilemus carlos


[root@localhost ~]# passwd ilemus

Cambiando la contrasea del usuario ilemus. Nueva UNIX contrasea: xxxxxx Vuelva a escribir la nueva UNIX contrasea: xxxxxx passwd: todos los tokens de autenticacin se actualizaron exitosamente. }}}

[root@localhost ~]# passwd carlos

Cambiando la contrasea del usuario ilemus. Nueva UNIX contrasea: xxxxxx Vuelva a escribir la nueva UNIX contrasea: xxxxxx passwd: todos los tokens de autenticacin se actualizaron exitosamente. }}}

Eliminando cuentas de usuario#


Para eliminar cuentas de usuario en el sistema usaremos el comando userdel el cual debera ser aplicado segun la siguiente estructura
userdel [opciones] nombreDelUsuario

las opciones que pueden utilizarse en conjunto con el comando useradd son las siguientes: Opciones -f
|

Descripcion

Fuerza a remover el usuario del sistema aunque este este activo en el mismo

--force -r
|

Elimina la carpeta de trabajo del usuario asi como todo su contenido dentro de l

--remove Ejemplo 4: Dar de baja al usuario carlos asi como tambien eliminar su directorio de trabajo Respuesta al Ejemplo 4

Administracion de Grupos#
Dando de alta grupos#
Para dar de alta grupos en el sistema usaremos el comando groupadd el cual debera ser aplicado segun la siguiente estructura
groupadd [opciones] nombreDelGrupo

Las opciones que pueden utilizarse en conjunto con el comando groupadd son las siguientes: Opciones -g
|

Descripcion

Define un GID para un grupo

--gid -r
|

Define un grupo del sistema. Un grupo del sistema es aquel que tiene un numero de identidad (GID) de grupo por debajo del numero 500 Forza al sistema a crear el grupo aunque este ya exista.

-f

--force Ejemplo 5: Dar de alta el grupo desarrollo asi como el grupo capacitacion dichos grupos tendran las siguientes caracteristicas: Nombre de los grupos desarrollo y capacitacion Identificador para estos grupos 520 y 530 Respuesta al Ejemplo 5

Modificando grupos#
Para modificar grupos dados de alta en el sistema usaremos el comando groupmod el cual debera ser aplicado segun la siguiente estructura
groupmod [opciones] nombreDelGrupo

Las opciones que pueden utilizarse en conjunto con el comando groupadd son las siguientes: Opciones -g
|

Descripcion

Define un nuevo GID para un grupo

--gid -n
|

Permite cambiar el nombre del grupo por otro

--new-name Ejemplo 6: Modificar el grupo capacitacion con las siguientes caracteristicas Renombrar el grupo por marketing Cambiar su GID de 530 a 540 Respuesta al Ejemplo 6

Eliminando grupos#
Para eliminar grupos en el sistema usaremos el comando groupdel el cual debera ser aplicado segun la siguiente estructura
gruopdel nombreDelGrupo

Ejemplo 7: Eliminar el grupo desarrollo Ahora que tiene el conocimiento sobre como administrar y gestionar tanto cuentas de usuario como grupos de trabajo pasaremos al siguiente tema el cual habla sobre los permisos que deben ser asignados tanto a carpetas como archivos

Administracion de Permisos#
Los comandos que usaremos para asignar permisos tanto a carpetas como a ficheros seran los sigueintes: La forma es como deben ser usados estos comando sera de la siguiente manera:

chmod#
Para modificar permisos de escritura, lectura y/o ejecucion se debera seguir la siguiente estructura
chmod [UGO] archivo/directorio

Las letras U,G y O son interpretadas de la siguiente manera


U.-Permisos para el usuario

G.-Permisos para el grupo O.-Permisos para otros}}} La forma en como son asignados los permisos para usuario, grupo y otros se forman de la siguiente manera
U= rwx G= rwx O= rwx

Las letras 'r' 'w' y 'x' tienen la siguiente funcion: Descripcion r


|

Lectura de un archivo

read w
|

Escritura de un archivo

write x
|

Ejecucion de un archivo

execute Las letras 'r' 'w' y 'x' tendran que ser substituidas por un numero 1 o un numero 0 dependiendo del tipo de permisos que se asignen La funcion del numero '1' y el numero '0' es la siguiente: Descripcion 1 Permite leer, escribir o ejecutar un archivo 0 Restringe leer, escribir o ejecutar un archivo Una vez subtituidas las letras por numeros tendremos como resultado un numero binario el cual debera ser tranformado a base 10 y finalmente debera ser asignado a la letra 'U' 'G' u 'O'. Una forma mas rapida de asignar permisos tanto a archivos como a carpetas es mediante la aplicacin del mismo comando pero con la siguiente nueva estructura.
chmod u=rwx,g=rwx,o=rwx [archivo/directorio]

En donde las letras 'u' , 'g' , 'o' , 'w' , 'r' y 'x' tienen la siguiente funcion: u Descripcion Usuario

usuario g
|

Grupo

grupo o
|

Otros

otros r
|

Lectura de un archivo

read w
|

Escritura de un archivo

write x
|

Ejecucion de un archivo

execute

chown#
Para modificar el grupo y/o propietario de un archivo o directorio se debera seguir la siguiente estructura
chown [nuevoPropietario:nuevoGrupo] [archivo/directorio]

Ejemplo 9: Paso 1 Dar de alta al usuario carlos el cual tendra las siguientes caracteristicas: Nombre de usuario carlos Directorio de Trabajo /home/carlos Shell asignado BASH Identificador para este usuario 512 Grupo principal de trabajo desarrollo Grupo secundario de trabajo capacitacion Paso 2 Logearse con la cuenta de root y una vez dentro crear un archivo con la ayuda del editor de textos VI el cual debera ser guardado con el nombre de prueba1.txt

Paso 3 Verificar los permisos del archivo prueba 1


[root@localhost ]# ls -l prueba1.txt

El anterior comando nos debera mostrar informacion parecida a la siguiente: Paso 4 Hacer los siguientes cambios al archivo prueba1.txt Nuevo propietario carlos Nuevo grupo desarrollo Permisos para el propietario Lectura,Escritura y Ejecucion = 7 Permisos para el grupo Lectura y Ejecucion = 5 Permisos para otros ninguno Respuesta al Ejemplo 9 Para comprobar los cambios solo basta ejecutar nuevamente el comando ls -l

chgrp#
A diferencia de chown este comando solo sirve para modificar el grupo de un archivo o directorio , para hacer uso de este comando se debe seguir la siguiente estructura.
chown [nuevoGrupo] [archivo/directorio]

You might also like