0% encontró este documento útil (0 votos)
31 vistas4 páginas

Permisos de Archivos en Linux

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
31 vistas4 páginas

Permisos de Archivos en Linux

Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

UNIVERSIDAD CENTRAL DE VENEZUELA

FACULTAD DE CIENCIAS
ESCUELA DE COMPUTACIÓN
UNIDAD DOCENTE DE REDES, ARQUITECTURA Y SISTEMAS
ORGANIZACIÓN Y ESTRUCTURA DEL COMPUTADOR I

TUTORIAL
Permisos de archivos en Linux

1. Conceptos básicos

En los sistemas operativos UNIX/LINUX, cada archivo (o directorio) tiene asociados una serie de
permisos, que permiten establecer quién puede hacer qué con el mismo. De igual forma, cada
archivo (o directorio) tiene un propietario o dueño, y un grupo asociado. Por ejemplo, cuando
creamos un archivo, nuestro usuario se convierte en el propietario del mismo, mientras que nuestro
grupo, o el grupo asociado a la carpeta en la que se creó el archivo es normalmente asociado al
mismo.

De esta forma, cualquier usuario del sistema puede ser clasificado dentro de una de las siguientes
categorías en referencia a un archivo cualquiera:

Propietario (Owner): Si es el dueño del archivo. Representado por la letra u (de user).
Grupo (Group): Si pertenece al grupo asociado al archivo. Representado por la letra g.
Otros (Others): Si no cae en ninguna otra categoría. Representado por la letra o.

Ahora bien, como mencionamos antes, los permisos asociados a un archivo se refieren a la capa-
cidad que tiene un usuario para llevar o no a cabo una acción sobre el archivo. Básicamente, las
acciones que se pueden llevar a cabo sobre un archivo son:

Lectura (Read): Ver el contenido del archivo. Para un directorio este permiso representa el
poder ver o no el contenido del mismo. Representado por la letra r.
Escritura (Write): Modificar el contenido del archivo. Para un directorio este permiso represen-
ta el poder crear o borrar archivos en el mismo. Representado por la letra w.
Ejecución (Execute): Ejecutar el programa o shellscript. Para un directorio este permiso represen-
ta el poder acceder o no a los archivos contenidos en el mismo. Representa-
do por la letra x.

2. Verificación de los permisos

Cuando hacemos un listado con formato largo (ls –l) del contenido de un directorio, observamos
varias columnas de información para cada uno de los archivos (o directorios) listados. Las colum-
nas son las siguientes:

Columna Descripción
1 Conjunto de banderas de permisología (10 banderas)
2 Contador de enlaces
3 Propietario del archivo
4 Grupo asociado al archivo
5 Tamaño del archivo
6, 7, 8 Fecha de la última modificación
9 Nombre del archivo

Para efectos de este tutorial, las columnas de nuestro interés son la primera, la tercera y la cuarta.
La primera columna, representa los permisos asociados al archivo, y está compuesta por diez ca-
racteres que pueden ser interpretados de la siguiente manera de derecha a izquierda:

Posición Significado
1 Bandera de directorio. Básicamente indica si el elemento es un directorio o un ar-
chivo normal y corriente. (existen otras posibilidades pero no vienen al caso).
2, 3, 4 Permisos de lectura, escritura y ejecución para el propietario del archivo
5, 6, 7 Permisos de lectura, escritura y ejecución para el grupo asociado al archivo
8, 9, 10 Permisos de lectura, escritura y ejecución para los demás usuarios.

Caracter Significado
- Si está en la posición 1, indica que el elemento es un archivo normal. Si está en la
posición de algún permiso, indica que el mismo se encuentra desactivado.
d Indica que el elemento es un directorio.
r Indica que el elemento tiene el permiso de lectura activado.
w Indica que el elemento tiene permiso de escritura activado.
x Indica que el elemento tiene permiso de ejecución activado.
s A veces puede aparecer en la posición correspondiente al permiso de ejecución
(x). Esto indica que la bandera set-UID o la bandera set-groupID se encuentra en-
cendida. Más adelante se analizará este caso más a fondo.

Ejemplo:
drwxr-xr-x 2 root root 4096 oct 25 13:22 taller 1
-rw-r--r-- 1 root root 1247 oct 24 22:09 taller-2.8.c
-rw-r--r-- 1 vicente vicente 10409 oct 24 22:12 taller-2.tar.gz

En este caso observamos que:


taller 1 es un directorio con todos los permisos para el propietario, y con todos los permisos
para ver el contenido y acceder a los archivos del mismo sin poder borrar ni crear archivos de-
ntro de èste.
Los otros dos elementos son archivos comunes con permisos de lectura y escritura para el
propietario y ùnicamente de lectura para el grupo y los otros. Sin embargo uno de los archivos
pertenece al administrador del sistema (root), mientras que el otro pertenece al usuario ‘vicen-
te’.

3. Modificación de los permisos

Existe un comando (chmod) por medio del cual es posible modificar los permisos de un archivo (o
directorio), el cual solo puede ser utilizado por el propietario del archivo (o el superusuario ‘root’).
En su forma más básica, la utilización del comando es como sigue:

chmod <permisos> <nombre de archivo>

Existen dos formas de expresar los permisos, y básicamente se utiliza una u otra de acuerdo al tipo
de modificaciones que se quieran realizar.

La primera forma (notación de letras) se utiliza cuando queremos agregar o eliminar un permiso sin
modificar los demás, por ejemplo, queremos añadir permiso de lectura a el grupo sin modificar los
demás permisos. En esta notación, primero se coloca un carácter que identifica a quién va a afec-
tar el cambio (u, g. o), seguido de un símbolo que indica si se agrega o elimina un permiso (+, -) y
finalmente el tipo de permiso a modificar (r, w, x).
Ejemplo:
chmod u+r oeci.txt Otorga permiso de escritura al propietario.
chmod go-rw oeci.txt Elimina permiso de lectura y escritura al grupo y a los otros.
chmod u+rwx,o-rwx oeci.txt Otorga todos los permisos al propietario y ninguno a los otros.

Adicionalmente podemos usar la letra ‘a’ para modificar los permisos al propietario, grupo y otros a
la vez (all). De igual forma, podemos usar el operador ‘=’ en lugar de ‘+’ o ‘-‘ para asignar exacta-
mente los permisos que queremos.

Ejemplo:
chmod a+x oeci.txt Otorga permiso de ejecución a todos los usuarios.
chmod u=rw, go= oeci.txt Otorga permiso de lectura/escritura al propietario y revoca explici-
tamente todos los demás permisos.

Finalmente, existe una segunda forma de expresar los permisos, mediante la notación de números.
La idea es la siguiente: si se expresan los permisos (rwx) como un número de 3 bits, en el cual el
valor encendido (1) indica que el permiso está otorgado y el valor apagado (0) que no lo está, po-
demos escribir los permisos del propietario, el grupo y los otros como un número octal de 3 dígitos.
De esta forma, para cada tipo de usuario (u, g, o), se tiene que un dígito octal representa los si-
guientes permisos:

Binario Octal Permisos


000 0 ---
001 1 --x
010 2 -w-
011 3 -wx
100 4 r--
101 5 r-x
110 6 rw-
111 7 rwx

Ejemplo:
chmod 700 oeci.txt Otorga todos los permisos al propietario, ninguno al grupo y otros.
chmod 111 oeci.txt Otorga únicamente permiso de ejecución a todos, revocando todos
los demás permisos..

4. Permisos por defecto

Cada usuario tiene un conjunto de permisos por defecto, los cuales se aplican a todos los archivos
creados por el mismo, al menos que el software explícitamente especifique permisos distintos. Este
conjunto de permisos es comúnmente llamado ‘umask’, así como el comando utilizado para modifi-
carlo. Normalmente el mismo es ‘heredado’ del proceso de logueo al sistema, o se encuentra esta-
blecido en el archivo ‘.cshrc’ o ‘.login’ el cual configura la cuenta individual del usuario.

El comando umask (sin argumentos), nos permite verificar el conjunto de permisos por defecto que
estamos utilizando actualmente. Utilizando la opciòn ‘-S’ mostrará dicho conjunto en notación de
letras. Si se le proporciona un argumento (que puede ser numérico o con letras, al estilo de
chmod), se modifica el conjunto. Aunque no está dentro del alcance de este tutorial el estudiar la
forma en la se utiliza este comando, se puede resumir diciendo que si el argumento pasado al co-
mando es un número octal de tres dígitos, el mismo será restado de ‘777’ y el resultado será el
conjunto de permisos por defecto. Sin embargo el permiso de ejecuciòn de un archivo (no un direc-
torio) no se asigna por defecto, no importa que el conjunto por defecto así lo indique.
Ejemplos:
Normalmente la configuración por defecto es equivalente a escribir el comando ‘umask 22’:
-rw-r--r-- (Archivos normales)
drwxr-xr-x (Directorios)

Cuando se trabaja en grupo es común usar el conjunto ‘umask 2’:


-rw-rw-r-- (Archivos normales)
drwxrwxr-x (Directorios)

Para trabajo privado, se utiliza '


umask 77'
:
-rw------- (Archivos normales)
drwx------ (Directorios)

5. Modificación del propietario y el grupo asociado

De igual forma que es posible cambiar los permisos de un archivo, también es posible cambiar su
propietario o el grupo al que se encuentra asociado, mediante los comandos chown y chgrp res-
pectivamente.

Solo el propietario del archivo (o el superusuario ‘root’) pueden cambiar el grupo y el propietario de
un archivo. En caso de hacerlo el propietario, éste solo puede cambiar el grupo por uno del cual
sea miembro él mismo.

Ejemplo:
chown vicente taller-2.tar.gz
chgrp vicente taller-2.tar.gz

6. Las banderas set-userID y set-groupID

Finalmente tenemos las banderas set-userID y set-groupID. Un archivo ejecutable que tenga acti-
vada alguna de estas banderas va a correr con los permisos correspondientes a su propietario o
grupo en lugar de los del usuario que lo ejecuta. Para un directorio, la bandera set-groupID signifi-
ca que todos los archivos creados dentro de dicho directorio heredarán el grupo del mismo. Si esta
bandera se encuentra apagada, el archivo creado se asocia al grupo primario del usuario que lo
crea.

Al momento de hacer un list (ls), podemos identificar que estas banderas se encuentran encendi-
das si observamos una letra ‘s’ en el lugar del permiso de ejecución del propietario o el grupo se-
gún sea el caso.

De igual forma, es posible modificar el estado de dichos bits mediante el comando chmod, bien sea
utilizando la letra ‘s’ en la notación de letras, o añadiendo al comienzo un cuarto dígito octal inter-
pretado de la siguiente forma: El bit más significativo representa el set-userID, mientras que el bit
intermedio el set-groupID, y el menos significativo es el ‘sticky bit’, que no tiene relevancia para
efectos de este tutorial.

Ejemplo:
chmod u+s oeci.txt Enciende el bit set-userID
chmod g+s oeci.txt Enciende el bit set-groupID
chmod 4711 oeci.txt Enciende ambos bits y otorga los permisos 711 de la manera habitual.

Vicente Robles Bango


Noviembre de 2005

También podría gustarte