Professional Documents
Culture Documents
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
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
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
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.
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.
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
Baja de grupos
groupdel grupo-que-sea
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
/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
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
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 *)
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
Estos grupos seran administrados y gestionados por comandos que veremos a lo largo de este capitulo.
/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
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
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. }}}
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. }}}
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
--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
--gid -n
|
--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
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
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
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]