Un poco de permisos

No pretendemos hacer una explicación profesional, solo se va a dar a conocer, a nivel de introducción, los permisos que afectan a los ficheros y directorios para los usuarios de Linux que acceden a su ordenador tengan una pequeña base.

Entendemos que es interesante una pequeña explicación a nivel de divulgación para entender que nos dicen los permisos tanto si accedemos desde el terminal como desde las propiedades del archivo del propio entorno gráfico.

En la estructura de los permisos de los archivos deben considerarse tres 3 atributos básicos.

  - Lectura: (Read), se representa por   -->   r
    Si no tenemos este permiso podemos impedir simplemente que no se permita su abertura para visualizarlo.

  - Escritura (Write), se representa por -->  w
    Si no tenemos este permiso simplemente impedimos su modificación, podremos ver el archivo pero nos nos permitirá ninguna modificación.

  - Ejecución: (Execute), se representa por --> x
    Este permiso es necesario activarlo en caso de necesitar ejecutar un fichero.


El orden en el que van es el siguiente: rwx, ponemos dos ejemplos de lo que nos podemos encontrar.

   - w x --> nos indica que no tiene el permiso de lectura, tiene el de escritura y el de ejecución.
   r - x  --> nos indica que tiene el permiso de lectura no tiene el de escritura y tiene el de ejecución.


Cuando hay el signo "-"  nos indica que el permiso no esta activado y cuando hay la letra correspondiente significa que está activo.


Si se quiere agregar o sacar un permiso desde un Terminal se pone delante el signo +, -, o =:

  - El signo menos (-)     saca el permiso
  - El signo más    (+)    da  el permiso
  - El signo  igual (=)   da exactamente

- chmod

La orden chmod sirve para cambiar un permiso desde el Terminal.

Ejemplo sencillo:

Si se quiere cambiar el permiso de un archivo de forma que no se pueda modificar se le saca el permiso de escritura. De esta forma no se podrá cambiar el contenido por accidente

$ chmod -w nombre_archivo

Ahora bien resulta más cómodo hacerlo desde el propio entorno gráfico sin necesidad de acudir a órdenes desde un terminal.  Las imágenes que se presentan a continuación cambian un poco en función del entorno gráfico que se tenga instalado en el ordenador, pero la operación a realizar es la misma. Así, Con el botón derecho del ratón sobre el archivo  se accede a la propiedades del mismo.


Seguidamente, se accede a la ventana superior de permisos, y ya podemos acceder a todos los permisos tanto de usuario, como de grupo, como de otros, como a la ejecución.

Y en cada uno podemos escoger diferentes opciones, por ejemplo en grupo podemos escoger: ninguno, solo lectura, o lectura y escritura.




2.- Si se quiere que un archivo sea ejecutable se escribe la siguiente orden

$ chmod +x nombre_archivo

De forma más cómoda se puede hacer gráficamente igual que antes. Ahora se marcaría el recuadro para permitir la ejecución del archivo como un programa.


Este permiso de ejecución es importante cuando queremos ejecutar un fichero, veamos un ejemplo.


EJEMPLO. Deseamos instalar, por ejemplo, el programa Hplip directamente desde la última versión de HP para instalar nuestra impresora, vamos a la web y lo descargamos:


Una vez descargado vamos al archivo y con el botón derecho del ratón escogemos propiedades.




















Seguidamente hacemos que sea ejecutable


 Y de esta forma desde un Terminal podremos ejecutar la orden  que nos permitirá instalar nuestra impresora con el propio programa de HP, que sería en este caso:

$ sudo bash hplip-3.20.6.run

Esto anterior ha sido simplemente un ejemplo.

En el caso de los directorios

En el caso  de los directorios se tienen los mismos permisos pero su significado es un poco diferente.

1.- Permiso de lectura de un directorio  (r)

Si un directorio tiene permiso de lectura, se pueden ver los archivos que contiene el mismo. La orden "ls -l" permite ver el contenido de los permisos.
 
2.- Permiso de escritura de un directorio (W)
Con el permiso de escritura se pueden borrar o agregar ficheros en un directorio.

3.- Permiso de ejecución de un directorio (x)

Permite utilizar los ficheros para acceder a ellos con las órdenes de sistema; es decir, este permiso hace que se tenga en cuenta en las búsquedas realizadas por un programa, por ejemplo, un directorio sin permiso de ejecución no sería revisado por la orden find.

Usuarios,  grupos y otros

Ahora que ya conocemos los permisos, debemos saber que estos se pueden corresponder a tres estamentos diferentes:


  - Usuarios, que corresponden  (user)   --> u
  - Grupos,  que corresponden a (group)  --> g
  - Otros,  que corresponden a (other)    --> o

Debe indicarse que un archivo en un sistema Linux tiene tres categorías el usuario propietario, el grupo al cual pertenecen los usuarios, y otros usuarios que no son del grupo. El primero o especial aquí no se comenta.



Ya veis que solo es una introducción al sistema de permisos, no es una explicación ni compleja, ni completa, ni extensa; solo se ha primado la iniciación a este concepto.