1.10 Enumerar, configurar y cambiar permisos ugo/rwx estándar

Como lo he mencionado en redacciones pasadas, la esencia de Linux es que todo es un archivo, y la seguridad de sus archivos y directorios radica en la propiedad y permisos de los mismos. Es por eso que este tema es uno de los más importantes dentro del mundo Linux y la administración del sistema operativo.

 

En Linux existen los siguientes permisos sobre archivos.

r read Permiso para leer (visualizar) los datos que contiene el archivo.

w write Permiso para poder modificar o escribir en el archivo.

x execute Permiso para ejecutar el contenido de archivo como un programa.

En Linux existen los siguientes permisos sobre Directorios.

r read Permiso para listar el contenido del directorio

w write Permiso para crear, borrar y renombrar archivos dentro del directorios.

x execute Permiso el acceso al directorio.

Los permisos mencionados anteriormente se aplican a:

Owner: Los dueños de los archivos o directorios

Group: El grupo que tendrá ciertos permisos sobre el archivo o directorio

Others: El resto de los usuarios ajenos al grupo y owner

 

 

-rw-r–r– 1 root root 31 jun 3 17:30 archivo1

-rwxrwxrwx 1 media media 29 jun 3 19:16 date.sh

drwxr-xr-x 2 media media 4096 jun 3 20:04 html

 

  1. En la primera columna tenemos el tipo de archivo y los permisos
  2. En la segunda tenemos la cantidad de subdirectorio que contiene el directorio, tomando en cuenta que para los archivos es 1 y directorios es 2 si tenemos un subdirectorio que contiene a su vez otro directorio su número será 3, 2 del subdirectorio y 1 del subdirectorio 2+1=3
  3. El siguiente es el dueño del archivo o directorio
  4. Después encontramos el nombre del grupo al que pertenece
  5. El tamaño del archivo
  6. El mes de creación
  7. Día de creación
  8. Hora de creación
  9. Nombre de archivo o directorio

Columna 1 permisos

Tomando el ejemplo del archivo1 observamos en la columna de permisos lo siguiente:

En este primer espacio determinamos el tipo de archivo – si es un archivo una d si es un directorio un b si es una archivo de bloque etc.

rw-

Los siguientes 3 espacios son los permisos del owner, por consiguiente el dueño (root, columna 3) de este objeto puede leer y escribir sobre el archivo archivo1

r–

Los siguientes 3 espacios son los permisos del Group, el grupo en este caso root (4 columnas) puede solo leer el archivo.

r–

Los siguientes 3 espacios son los permisos del Others, en este caso los permisos son de lectura para el resto de los usuarios que no sean root y que no pertenezcan al grupo root.

 

Tomando el ejemplo del directorio html observamos en la columna de permisos lo siguiente:

d

Es un directorio puesto que en este primer espacio determinamos el tipo de archivo, – si es un archivo una d si es un directorio un b si es una archivo de bloque etc.

rwx

Los siguientes 3 espacios son los permisos del owner, por consiguiente el dueño (media, columna 3) de este objeto puede leer y escribir accesar al directorio html.

r-x

Los siguientes 3 espacios son los permisos del Group, el grupo en este caso media (columna 4) puede solo listar el contenido del directorio y acceder a él.

r-x

Los siguientes 3 espacios son los permisos del Others, en este caso los permisos de listar y de acceso al directorio para el resto de los usuarios que no sean media y que no pertenezcan al grupo media.

Trabajando con permisos Estándares

Un vez entendiendo los tipos de permisos, hacia quien aplica los permisos y cómo ver las propiedades de los ficheros en Linux veremos  como proceder a cambiar todas estas capas de permisos en directorios y archivos dentro del sistema.

Comando chgrp

Change Group o bien Cambiar Grupo es un comando que nos permite cambiar la propiedad de un archivo o directorio entorno al grupo al que pertenecen, su sintaxis

chgrp name_grupo archivo_directorio.

Opciones

-c, –changes           como `verbose’ pero informa sólo de los cambios

-f, –silent, –quiet   suprime la mayoría de los mensajes de error

-v, –verbose           muestra un mensaje por cada fichero procesado

-R, –recursive         opera sobre ficheros y directorios recursivamente

Ejemplos:

Teniendo lo siguiente:

 

total 16K

-rw-r–r–. 1 root root 0 jul 7 18:08 enero

-rw-r–r–. 1 root media 0 jul 7 18:08 febrero

drwxr-xr-x. 2 root root 4, 0K jul 7 18:08 reportes

Cambiamos de grupo root a grupo contabilidad al archivo enero

 

-rw-r–r–. 1 root contabilidad 0 jul 7 18:08 enero

Cambiamos de grupo media a grupo finanzas al archivo febrero

 

-rw-r–r–. 1 root f finanzas 0 jul 7 18:08 febrero

Comando chown

Change Owner o bien Cambiar dueño Permite cambiar el usuario propietario del archivo o directorio, su sintaxis

Ejemplos

Cambiando el usuario dueño de root a gerente

 

-rw-r–r–. 1 gerente contabilidad 0 jul 7 18:08 enero

Cambiando el usuario dueño de root a secretaria

 

-rw-r–r–. 1 secretaria finanzas 0 jul 7 18:08 febrero

Es posible cambiar el grupo y el propietario en una sola línea de comandos con chown, veamos cómo asignar un owner y un grupo diferente al directorio  reportes y con la opción -R lo haremos de forma recursiva, es decir que todo su contenido tendrá de igual forma los mismos propietarios

 

drwxrwxr-x. 2 franklin franklin   4.0K nov 30 23:33  reportes

Comando chmod

Change Mod o bien Cambiar Modo es un comando que nos permite cambiar las 3 capas de los permisos de accesos de los ficheros o directorios de Linux, si sintaxis es sencilla como los comandos pasados chmod opciones archivo_directorio

Tomando en cuenta lo siguiente:

u = Owner r=read

g= grupo g=grupo

o= otros x=execute

Ejemplos:

Retomando el estado actual de nuestros ficheros

 

total 16K

-rw-r–r–. 1 gerente contabilidad 0 jul 7 18:08 enero

-rw-r–r–. 1 secretaria finanzas 0 jul 7 18:08 febrero

drwxr-xr-x. 2 franklin franklin 4,0K jul 7 18:08 reportes

Cambiaremos los permisos del owner gerente del fichero enero dándole:

Permisos de ejecución

Quitando de escritura

 

-r-xr–r–. 1 gerente contabilidad 0 jul 7 18:08 enero

Cambiaremos los permisos del grupo contabilidad del fichero enero dándole

Permisos de escritura

 

-r-xrw-r–. 1 gerente contabilidad 0 jul 7 18:08 enero

Cambiaremos los permisos de otros del fichero enero dándole

Quitando permisos de lectura

 

-r-xrw—-. 1 gerente contabilidad 0 jul 7 18:08 enero

 

Cambiaremos los permisos del owner secretaria del fichero febrero dándole:

En una sola línea de comando permisos de rwx

 

-rwxr—–. 1 secretaria finanzas 0 jul 7 18:08 febrero

Cambiaremos los permisos del grupo finanzas del fichero febrero dándole

En una sola línea de comando permisos de wx

 

-rwx-wx—. 1 secretaria finanzas 0 jul 7 18:08 febrero

Cambiando todos los permisos en un solo comando los permisos del directorio reportes

 

drw-rw-rw-. 2 franklin franklin 4,0K jul 7 18:08 reportes

Nomenclatura octal

Otra metodología usada por la vieja escuela Unix y Linux es manejar los permisos en formato octal, para eso tendremos que entender lo siguiente: r= 4, w=2 y x=1, es decir cada tipo de permiso se le asigna un valor número, por ejemplo, un permiso de lectura y escritura tendría un valor de 6, puesto que 4 de r y 2 de w suman 6, un permiso de escritura y ejecución será 2+1= 3, de tal forma que un permiso de lectura, escritura y ejecución = 7.

Para la asignación de permisos octales contamos con 3 dígitos en donde el primero representa los permisos del usuario owner el segundo al grupo y el tercer dígito a otros.

Ejemplos:

Al fichero enero daremos permisos de valor 1 (ejecución) para owner, un valor 3 (lectura y ejecución) para el grupo y un valor de 6 (lectura y escritura) para otros

 

—x-wxrw-. 1 gerente contabilidad 0 jul 7 18:08 enero

Permisos de rwx para owner, rwx para grupo y rx para otros

 

–rwxrwxr-x. 1 secretaria finanzas 0 jul 7 18:08 febrero

Permisos de rwx para owner, grupo y otros

 

drwxrwxrwx. 2 franklin franklin 4,0K jul 7 18:08 reportes

Permisos de rwx para owner, permisos rx para grupos y ningún permiso para otros

 

-rwxr-x—. 1 gerente contabilidad 0 jul 7 18:08 enero

La siguiente tabla contiene los posibles valores que se pueden asignar con la nomenclatura octal

 

Cadena de permisos Código octal Significado
rwx-rwx-rwx 777 Permisos de lectura, escritura y ejecución para todos los usuarios
rwxr-xr-x 755 Permisos de lectura y ejecución para todos los usuarios, el propietario también tiene permisos de escritura.
rwxr-x— 750 Permisos de lectura y ejecución para el propietario y el grupo, permisos de escritura para el propietario y sin acceso al fichero para todos los demás.
rwx—— 700 Permisos de lectura, escritura y ejecución para el propietario, los demás no tendrán acceso.
rw-rw-rw- 666 Permisos de lectura y escritura para todos los usuarios, nadie tiene permiso de ejecución.
rw-rw-r– 664 Permisos de lectura y escritura para el propietario y el grupo y de solo lectura para el resto.
rw-rw—- 660 Permisos de lectura y escritura para el propietario y el grupo, y no hay permisos para el resto de usuarios.
rw-r–r– 644 Permisos de lectura y escritura para el propietario, permisos de solo lectura para el resto.
rw-r—– 640 Permisos de lectura y escritura para el propietario y de solo lectura para el grupo, no hay permisos para los demás.
rw——- 600 Permisos de lectura y escritura para el propietario y nadie más tiene permisos.
r——– 400 Permiso de lectura para el propietario y nadie más tiene permisos.

umask

Es un parámetro de configuración por default definido en el archivo /etc/profile y hace referencia a los permisos que tendrán los directorios o ficheros que se creen en el sistema Linux. La mayoría de los sistemas Linux utilizan una umask por defecto de para los usuarios 002 o 022 para root.

 

Valores de muestra de umask y sus efectos

Umask Ficheros Creados Directorios Creados
000 666 (rw-rw-rw-) 777 (rwxrwxrwx)
002 664 (rw-rw-r–) 775 (rwxrwxr-x)
022 644 (rw-r–r–) 755 (rwxr-xr-x)
027 640 (rw-r—–) 750 (rwxr-x—)
077 600 (rw——-) 700 (rwx——)
277 400 (r——–) 500 (r-x——)

Para saber los valores actuales para esta configuración utilizará el comando umask sin parámetros y si se le añade el parámetro -S se obtendrá expresada simbólicamente en lugar de en forma octal. También se puede definir un umask simbólicamente, como, por ejemplo, umask u=rwx, g=rx, o=rx , que es equivalente a umask 022.

Ejemplos

Con el usuario root obtenemos los siguientes valores

 

0002

 

u=rwx,g=rx,o=rx

Con un usuario normal:

 

0002

 

u=rwx,g=rwx,o=rx

NOTA: el primer dígito “0 cero ” no tiene ningún valor solo indica el modo octal de umask

 

@franklinux

 

Deja un comentario