ᛉ
  • ✦ desarrollo_y_software
    • ✦ bases_de_datos
      • ✦ fundamentos
        • 📄 Apuntes de triggers
      • ⟡ practicas_academicas
        • 📄 Resolviendo un ejercicio
  • ⟡ infraestructura
    • ✦ linux
      • ✦ fundamentos
        • 📄 01_comandos_basicos_nivel_1
        • 📄 02_standard_streams_y_redireccion
        • 📄 03_permisos_propiedad_y_atributos
      • ⟡ micro_labs
        • 📄 lab_01_navegacion_y_manipulacion
        • 📄 lab_021_fontaneria_de_datos
        • 📄 lab_02_fontaneria_de_datos
Descender a la Tierra
✦ Tipo: teoria-core
✧ Estado: En forja
✥ Materia: cortex_core
🏷 Runas: ##Linux
ᛞ

Permisos, propiedad y atributos

Cuando hacemos un ls -l y vamos a la parte de los permisos encontraremos algo como esto: permisos

Modelo UGO

El modelo UGO viene de User, Group y Others, que es como un archivo en linux gestiona los permisos sobre un archivo, si tu uid(identificador) es igual al Uid del user o pertenece al Gid, entonces tendras los permisos que tiene designado alguno de ellos, y si no recibiras los permisos del archivo que pertenecen a otros.

  • User: usuario que es el dueño del archivo
  • Group: Grupo o el equipo que tiene ciertos permisos sobre el archivo.
  • Other: otros y si eres el dueño y perteneces al grupo, lo que pasa es que cuando evalua primero al propietario y coincide, linux no continua evaluando el resto y se detiene ahi.

La Trinidad de los Permisos (rwx)

En linux los permisos son representados usando estos (no son los unicos hay permisos especiales):

  • read: que se traduce como leer, y si esto lo que nos permite es leer archivos (lo que tiene anotado dentro del archivo), y en caso de un directorio ver la lista de elementos como archivos, o subdirectorios.

    Como dato en linux un directorio es un archivo que dentro tiene los punteros o datos de sus subdirectorios o archivos que este contiene.

  • write: que se traduce como escribir, y este permiso en un archivo te permite modificar el contenido del archivo, mientra que en un directorio este permiso te permite eliminar, renonbrar o crear archivos o subdirectorios dentro del directorio.

    Como en linux el directorio es un archivo que contiene los datos como el puntero nombre, puedes reescribirlo, incluso agregar mas datos para crear archivos.

  • execute: que se traduce como ejecutar, y este permiso en un archivo te permite ejecutar el archivo como si fuese un programa, binario o un script, mientras que en un directorio te permite entrar al directorio.

    Es como el permiso necesario para tocar el directorio, asi que sin este permiso, el permiso de rw no sirven para un directorio.

Estos permisos tambien pueden ser representados por:

permisoletranumero
readr4
writew2
executex1

Notación Octal vs. Notación Simbólica

En linux se tiene dos formas de manipular los permisos, una que es la notacion octal y otra que es la notacion simbolica.

Notación Simbólica

Esta notacion tiene esta estructura: <A quien> <que se va hacer> <el permiso>:

  • A quien: este puede ser representado con u para usuario, g para grupo, o para otros o por ultimo a para todos.
  • Que se va hacer: este se puede representar usando el + para agregar un permiso, - para quitar o = para asignar tal cual le pasas los permisos, si no le pasas este no se pone.
  • El permiso: donde representamos con r para lectura, w para escritura o x para ejecucion. (en caso de que se necesite representar ninguno, se debe dejar vacio)___

Ejemplos:
u+x le sumamos por así decirlo el permiso de ejecucion a los permisos que ya se tenian a propietario del archivo.
g-w le quitamos o restamos el permiso de escritura al grupo.
o=r le asignamos el permiso de lectura a los otros, pero remplazamos los permisos, asi que el permiso quedo como r--.

Notación Octal

Esta notacion tiene esta estructura: <valor octal u><valor octal g><valor octal o>.
En la notacion octal se usa la suma de los valores numericos que tiene cada permiso:

permisoletranumero
readr4
writew2
executex1
Sin permiso-0

Para encontrar el valor octal se suma los 3 permisos dependiendo a cuales quieras agregar y el resultado es el valor octal que termina representando el conjunto de permisos que se le agregar:

permisos (rwx)SumaValor octal
---0+0+00
—x0+0+11
-w-0+2+02
-wx0+2+13
r—4+0+04
r-x4+0+15
rw-4+2+06
rwx4+2+17

Entonces ahora con los permisos, este seria un ejemplo de su uso 755 significa: 7 para el User (rwx), 5 para el Group (r-x) y 5 para Others (r-x), donde el primer digito es el propietario, el segundo el grupo y el tercero siempre los demas.

Herramientas de control

chmod (Change Mode)

Este comando significa cambiar modo, y lo que hace es alterar los permisos de un archivo(incluyendo directorios), y este acepta tant la notacion octal como la notacion simbolica.

  • Su Sintaxis base es: chmod [banderas] [permisos] [archivo/directorio].
  • ejemplo con notacion octal: chmod 777 test.sh.
  • ejemplo con notacion simbolica: chmod u+xr,g+x archivo.sh.

chown (Change Owner)

Este comando se traduce al español como cambiar propietario, y eso es justo lo que hace, cambia al propietario o dueño del archivo o directorio a alguien mas, pero tambien te da la opcion de poder cambiar de grupo al archivo.
Pero este comando solo esta limitado al uso del usuario root.

  • Su Sintaxis base es: chown [banderas] [nuevo_dueño]:[nuevo_grupo] [archivo/directorio], pero no necesariamente se debe poner un nuevo grupo, solo cuando tambien desees cambiar el grupo y el propietario.
  • ejemplo basico solo cambiando al propietario: chown cypher hola.txt
  • ejemplo basico cambiando al propietario y al grupo: chown cypher:inf reporte.txt

chgrp (Change Group)

Este comando se traduce al español como cambiar grupo, y solo se usa para cambiar el grupo de un archivo(o directorio).
Pero este comando esta limitado, solo puede ser usado si es que el usuario es el propietario y pertenece al nuevo grupo.

  • Su Sintaxis basica es: chgrp [banderas] [nuevo_grupo] [archivo].
  • ejemplo basico: chgrp inges report.txt

Bandera de recursividad -R

Esta bandera es usable por los 3 comandos anteriores y sirve para seleccionas directorios y sus archivos de forma recursiva, es decir a sus directorios, sus directorios hijas, sus archivos, y normalmente se pone dentro de una directorio.

📝 Apuntes bajo CC BY 4.0 por Jhoel Villca.