Permisos y Privilegios en Linux

En Linux existe toda una gran variedad de permisos y tipos de permisos los cuales vamos a estudiar en detalle en este articulo, lo primero que se debe saber al respecto es que en linux los permisos se definen de modo octal, es decir en una pequeña secuencia de bits, los cuales nos van a permitir tener un mejor control respecto a los permisos que deseemos otorgar o eliminar a un archivo o usuario. De la misma forma que Unix implementa un sistema de permisos que permite definir las operaciones que un usuario del sistema puede realizar sobre un fichero. El esquema de permisos es necesario para mantener la confidencialidad de los ficheros entre los distintos usuarios del sistema.

El propietario del fichero puede definir quien ingresa a cierto fichero y de que forma. Mientras que el usuario root o superusuario tendra todos permisos de acceso sobre los ficheros. Para conocer quien tiene permisos sobre un fichero, es necesario fijarse en la primera columna de la salida del comando ls -l.

lsl

Como puede ver el primer caracter define el tipo de fichero, si es un guión (-) significa que es un archivo, sí es una (d) significa que es un directorio, los siguientes nueve caracteres definen los permisos del fichero. Estos nueve caracteres se pueden dividir en tres grupos de tres caracteres cada uno. El primer grupo define los permisos que se aplicaran cuando acceda el propietario del fichero (indicando en la tercera columna del comando ls -l)

El segundo grupo define los permisos que se aplicaran para los usuarios que pertenezcan al grupo propietario del fichero (indicado en la cuarta columna del comando ls -l).

Y el tercer grupo define los permisos que se aplicaran para el resto de los usuarios, es decir usuarios que no son ni propietarios del fichero ni pertenecen a ningún grupo. En palabras más sencillas estos se definen en Owner, Grupos y otros como muestro en la siguiente imagen.

lsl2

Los recuadros de color amarillo son los representados por el owner, con el color azul tenemos a los grupos y con el morado tenermos a otros.

Estos permisos quieren decir lo siguiente

r = read y es representado por el número 4

w = write y es representado por el numero 2

x = execute y es representado por el numero 1

En el siguiente recuadro se muestra la explicación de estos permisos.

tipos-ficheros

La suma total de estos bits es de 7, la mayor cantidad de permisos que podemos otorgar al owner, group u others, en una carpeta  y para cambiar los permisos de un fichero debemos ejecutar el siguiente comando

chmod

Si desemos cambiar los permisos a un archivo en especifico lo podemos hacer de la siguiente manera:

chmod 760 nombre del archivo

En la pantalla muestro un ejemplo con uno de mis archivos

lsl3

Como pueden observar utilice el comando chmod y la combinacion de numeros para darle al archivo udemy, permisos para ser ejecutado por el usuario root, ya que no los tenia anteriormente, y esto puede ser tambien con el grupo y con otros usuarios del sistema.

Por lo tanto, lo que Linux y Unix hacen para saber si un usuario o comando tiene permiso sobre un fichero es, primero averiguar que conjunto de los tres posibles, (propietario, grupo u otros) define los permisos para el comando, teniendo en cuenta el usuario y el grupo con el que lo ejecuta. Un comando se ejecuta con el identificador de usuario y de grupo del usuario que lo ejecuta. Lo que accede a un fichero es un proceso lanzado por un usuario. En las siguientes clases hablaremos un poco sobre los procesos, por el momento tenga en cuenta que un proceso es un programa que ejecuta un usuario, y que por defecto, el proceso se ejecuta con la misma identidad (usuario y grupo) del usuario que lo ejecuto.

Vamos a ver el siguiente ejemplo para comprender mejor el funcionamiento de los permisos, suponga que esta en un directorio con los siguientes ficheros:

lsl4

Despues de ver la salida del comando ls -la, podemos afirmar que:

 

  • Nadie tiene acceso al directorio dir0
  • el usuario root solo puede leer el contenido del dir1  mediante la ejecucion del comando ls -l, pero no podra borrar los ficheros que estan dentro de el ni acceder a el, porque no tiene permisos de ejecución. El resto de los usuarios del sistema no podran hacer nada en el directorio dir1
  • En el directorio dir2 el usuario root tiene permisos para leer, borrar y ejecutar todo en ese directorio, los demas usuarios solo pueden ver y ejecutar pero no pueden modificar lo que se encuentra allí.
  • En el archivo file1 el usuario root es el unico que puede leer, modificar y ejecutar el archivo.
  • En el archivoi file2 el usuario udemy, es el unico que puede leer, modificar y ejecutar el archivo.
  • El fichero file3, root solo puede leer y escribir pero no puede ejecutar el archivo, y los grupos solo pueden leerlo.
  • El fichero file4, ocurre lo mismo que en el paso anterior pero en este caso otros usuarios si pueden leer su contenido.

Espero haya sido de tu agrado este articulo, nos vemos en la proxima clase.

Anuncios