Permisos En Linux

Publicado por admin en

linuxPERMISOS DEL SISTEMA DE ARCHIVOS

El sistema de archivos basado en permisos establece que usuario puede leer, escribir o ejecutar sobre un determinado “nodo”.

En GNU/Linux, los permisos que los usuarios pueden tener sobre determinados archivos en los que se establecen tres niveles y son los siguientes:

  • Permisos del propietario: 
    El propietario es quien genera o crea un nodo dentro de cualquier directorio del que tenga los suficientes derechos para ello.
  • Permisos del grupo:
    Normalmente, cada usuario pertenece a un determinado grupo de trabajo. De esta manera, cuando se gestiona un grupo, se gestionan todos los usuarios que pertenecen a este.
  • Permisos del resto de usuarios:
    Otros usuarios que no pertenezcan al grupo de trabajo del nodo en cuestión, pueden tener algunos privilegios sobre este.

Para identificar los diferentes permisos en un directorio se emplea la siguiente orden:

ls -al

El comando devuelve la información dividida en distintas secciones, como se puede apreciar en la siguiente imagen:

ls -al

Las secciones son las siguientes:

  1. El primer carácter de la línea indica el tipo de nodo. Un carácter “-” indica un archivo regular, por otro lado, un carácter “d” indica que el nodo es un directorio.
  2. Los 9 caracteres siguientes indican los permisos aplicables al nodo:
    • Los primeros tres indican los permisos del propietario
    • Los tres siguientes los del grupo
    • Y el ultimo trío indica los permisos para el resto de usuarios
  3. Los siguientes caracteres no blancos indican el número de enlaces físicos del nodo.
  4. La próxima columna contiene el login del propietario del nodo.
  5. La siguiente columna contiene el identificador del grupo de usuarios del sistema al que está asociado el nodo.
  6. Esta columna contiene los datos temporales de la última modificación
  7. La última columna contiene el nombre del nodo.

TIPOS DE PERMISOS EN LINUX

Los caracteres que definen los permisos son los siguientes:

  • “-“: Sin permisos
  • “r”: Permiso de lectura
  • “w”: Permiso de escritura
  • “x”: Permiso de ejecución

PERMISOS PARA ARCHIVOS

  • Lectura: permite visualizar el contenido del archivo.
  • Escritura: autoriza a modificar el contenido del archivo.
  • Ejecución: concede la ejecución del archivo, es decir, realizar la operación para la que esta destinado.

PERMISOS PARA DIRECTORIOS

  • Lectura: permite saber que archivos y directorios están contenidos en el directorio al que se tiene permiso
  • Escritura: da permiso para crear archivos, ya sean archivos ordinarios o nuevos directorios. También se pueden borrar, copiar, mover o cualquier otra modificación sobre directorios o archivos que estén contenidos en el directorio en cuestión.
  • Ejecución: permite situarse dentro del directorio(ejecutar el comando “cd”) y copiar archivos de o hacia él.

CAMBIOS DE PROPIETARIO Y GRUPO

La orden para cambiar el propietario de un nodo es chown. Este comando indica el nuevo propietario para los nodos objetivo, y para su ejecución se necesitan privilegios de superusuario.

La sintaxis es la siguiente:

chown [opciones] nuevo_usuario nodo

El comando para cambiar el grupo de un nodo es chgrp, que también necesita permisos de superusuario.

La sintaxis es la siguiente:

chgrp [opciones] nuevo_grupo nodo

Cabe destacar que tanto el nuevo usuario como el nuevo grupo se pueden indicar mediante los nombres o mediante los números correspondientes.

CAMBIOS DE PERMISOS

Para cualquier operación que se realiza sobre un nodo el sistema de archivos unix controla si se tiene permiso para hacerla o no mediante el siguiente algoritmo:

algoritmo permisos

Cuando una aplicación crea un nodo le asigna unos permisos, por tanto, el propietario y el grupo del nodo quedan asignados como el login y el identificador de grupo del usuario que ejecuta la aplicación.

Posteriormente, si se quieren cambiar los permisos del nodo, solo el propietario y el superusuario podrán cambiar los permisos del nodo.

La orden del shell para cambiar permisos es chmod, y su formato es el siguiente:

chmod [opciones] nuevos_permisos nodo

Existen dos formas de especificar los nuevos permisos, la absoluta y la simbólica.

FORMA ABSOLUTA

Esta forma de especificar los nuevos permisos se realiza mediante tres cifras octales, ya que éstas corresponden a 9 bits(los 9 caracteres explicados anteriormente). Formaremos este valor octal a partir de un número binario de 9 bits, en el cual un 1 representa el permiso concedido y un 0 no concedido.

Por ejemplo, si queremos que los nuevos permisos sean “r – – r w x – w -” se realizaría el siguiente procedimiento:

  • Representación binaria de los permisos: 100111010
  • Representación en octal del binario anterio: 472

Después de averiguar el número de 3 cifras en octal, bastaría con ejecutar el comando anterior en el cual el parámetro “nuevos_permisos” quedaría con éste valor.

FORMA SIMBÓLICA

Esta segunda forma de cambiar los permisos de un nodo se realizaría con la ejecución del mismo comando, pero esta vez los nuevos permisos quedarían representados de distinta forma.

Para representar a quién se le emplean los permisos:

  • “u”: propietario
  • “g”: grupo
  • “o”: resto de usuarios

Para especificar como se dan los permisos se usan los siguientes signos:

  • “=”: los permisos son exactamente iguales a como se indican posteriormente al signo
  • “+”: los permisos deben añadirse a los actuales
  • “-“: los permisos deben retirarse a los actuales

Para especificar que permisos se asignan se utilizan las letras vistas anteriormente(“r”, “w”, “x”).

Si se quieren asignar distintos permisos a diferentes usuarios las expresiones se pueden encadenar con una coma.

Un ejemplo de modificación de permisos utilizando esta simbología es el siguiente:

  • Los permisos que se quieren asignar son los siguientes: ” ug+rw,o=rx “, es decir, para el propietario y el grupo se quieren añadir permisos de lectura y escritura. Para el resto de usuarios los permisos serán lectura y ejecución.
  • Bastaría simplemente con ejecutar el comando con el formato anterior. Por ello sería de la siguiente manera:
chmod ug+rw,o=rx nodo

 

Categorías: Linux

Deja un comentario