No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Cómo se manejan los permisos

11/23
Recursos

Los permisos son las capacidades que tiene cada usuario dentro del sistema operativo, no todos los usuarios pueden hacer todas las acciones sobre ciertos archivos y carpetas.

Cuando listamos archivos utilizando el comando ls -l la primera columna que nos aparece es la de permisos.

image.png

Tipos de archivos

El primer caracter puede ser uno de estos 3:

| Atributo | Tipo de archivo | | --- | --- | | - | Es un archivo normal, como un documento de texto, una foto, un video, etc. | | d | Por directory es un directorio | | l | Es un enlace simbólico. Es algo que veremos en próximas clases | | b | Bloque especial, son archivos que manejan información para el sistema, como la información de un disco duro |

Sin título.png

Permisos de usuario

Los siguientes caracteres se leen de 3 en 3, por cada uno de los tipos de usuario.

Owner

El dueño del archivo, si no se ha cambiado, es quien lo creo y tiene mayor jerarquía sobre los otros 3. Le corresponden los primeros 3 caracteres de los permisos.

Group

Se puede crear grupos de usuarios para darle a todos o varios los mismos permisos. A estos usuarios le corresponden el cuarto, quinto y sexto caracter de los permisos de usuarios y tienen mayor jerarquía que el último.

World

También llamado "otros", es cualquier otro usuario que no pertenezca a un grupo de usuario y tampoco sea el dueño, este tiene la menor jerarquía.

Tipos de permisos

| Símbolo | Significado | Permiso | | --- | --- | --- | | r | readable | Significa que puede leer su contenido | | w | writable | El usuario puede editar el contenido del archivo, también el nombre y los permisos | | x | executable | El usuario puede ejecutarlo en caso de que sea un programa |

Los permisos se escriben en ese orden rwx. Para indicar que el permiso no está disponible, se escribe un guion.

Ahora que sabes todo esto vamos con un ejercicio. Observa el siguiente grupo de permisos: drwxr-xr-x Recuerda que el primer caracter es el tipo y los siguientes se cuentan de 3 en 3 representando cada usuario.

| d | rwx | r-x | r-x | | --- | --- | --- | --- | | Esto es un directorio | owner | group | world | || El dueño puede leer, escribir y ejecutar | El grupo puede leer y ejecutar | Los demás pueden leer y ejecutar |

Vamos con otro

-rw-r--r--

| - | rw- | r-- | r-- | | --- | --- | --- | --- | | Esto es un archivo normal, como una imágen o un video | owner | group | world | | | El dueño puede leer y escribir | El grupo sólo puede leer | El resto sólo puede leer |

Representando permisos de forma octal

Si organizamos los permisos de esta forma

| r | w | x | | --- | --- | --- |

E indicamos con un cero si el usuario no tiene el permiso y con un uno si el usuario si lo tiene, pongamos de ejemplo el permiso r-x:

| r | w | x | | --- | --- | --- | | 1 | 0 | 1 |

Y ahora esos números los leemos en binario, nos quedaría así.

| r | w | x | | --- | --- | --- | | 1 | 1 | 1 | || 7 |

Si repetimos esto con el resto de las combinaciones tenemos un número por cada combinación de permiso, por ejemplo el permiso r-x queda así:

| r | - | x | | --- | --- | --- | | 1 | 0 | 1 | || 5 |

Usando todo esto podemos leer el conjunto de permisos rwxr-xr--, así:

| r | w | x | | r | - | x | | r | - | - | | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | | 1 | 1 | 1| | 1 | 0 | 1 | | 1 | 0 | 0 | 0 | || 7 |||| 5 |||| 1 |||

Ejercicios de práctica

Este concepto puede ser algo complicado así que lo mejor es prácticar, te dejaré unos ejercicios para que sea más fácil interpretarlo.

Convierte los siguientes permisos a símbolos y en su representación numérica:

  1. De un directorio, el dueño tiene permiso de lectura y escritura, el grupo tiene permisos de escritura y ejecución y world no tiene permisos.
  2. De un enlace simbólico el dueño tiene todos los permisos, el grupo y world sólo de lectura.
  3. De un archivo comun todos tienen todos los permisos, pero el world no tiene permiso de ejecución.

Si sientes que necesitas más información puedes preguntar a la comunidad o prácticar en la terminal.

Contribución creada con los aportes de: Miguel Gonzalez.

Aportes 284

Preguntas 25

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

Animo!! Si estás viendo esto, es porque ya estas por la mitad de este grandioso curso, y eres increíble por nunca parar de aprender.

Notas 😄
Cómo se manejan los permisos.

  • Cuando listamos con ls -l se muestran varias cosas. Los tipos de archivos:
    • - archivo normal.
    • d directorio.
    • l link simbólico.
    • b archivo de bloque especial.
  • Tipos de modos: rwx corresponde con read, write y execute. Se representan con 3 bits, y los podemos manejar a través de un modo octal, esto es, pasar de binario a número.
    • rwx (1,1,1) dueño. En modo octal es 7.
    • r-x (1,1,1) grupo. En modo octal es 5.
    • r-x (1,0,1) world. Octal 5.
  • Modo simbólico: Esto es para asignar los permisos a los diferentes posibles usuarios.
    • u Solo para el usuario.
    • g Solo para el grupo.
    • o Solo para otros (world).
    • a Aplica para todos.

📌 Los permisos nos permiten definir de una manera simple y efectiva las reglas de acceso como lectura ( r), escritura (w) o ejecución (x) a determinados archivos o directorios.

PERMISOS
El esquema de notación simbólica se compone de 10 caracteres, ejemplo:

<-rwxr-xr-x> 

El primer carácter corresponde al tipo de archivo, los nueve restantes dan a conocer el tipo de permiso que tiene dicho archivo. Los valores que toman los archivos son los siguientes:

Las letras representan permisos para el usuario (users), el grupo (group), y para otros o el mundo (world). Estos toman valores de r  read o lectura, w  writting o escritura, x  sólo ejecución de archivos o acceso a directorios. Y cuando están activos se representan con 1, caso contrario con un 0 o -. Adicional en el sistema octagonal estos permisos a su vez tienen los siguientes valores:

Por lo que nuestro ejemplo quedaría de la siguiente manera:

Entonces en conclusión se puede decir que nuestro ejemplo:

<-rwxr-xr-x> 

Corresponde a un archivo regular con permiso 755.

Permisos

💡 Los permisos son abstracciones de acciones con los cuales lo usuarios, humanos o no, pueden operar al computador.
.

Definición de los permisos

Los permisos definen la acciones posibles para con file o el directory, ya sea r lectura, w escritura y/o x ejecución

.

@roremDev
.
En sistemas Linux, cada file o directory posee ciertos permisos, por default o asignados, con los cuales, cada individuo o identidad, de usuarios puede gestionar dicha información.
.
Los permisos, poseen la siguiente extructura:

  • Type. Un tipo con el cual - indica un file y d indica un directory
  • Owner. Permisos del propietario de dicho elemento
  • Group users. Permisos para un grupo determinado de usuarios
  • Other. Permisos para los usuarios no incluyentes en lo anterior

Acá os dejos los apuntes completos. Les dejo un pequeño resumen de todos mis apuntes. Si quieren ver a mas detalle y otra informaciòn extra, entren al link 😄 ❤️

Les puede servir esta imagen que la saque del otro curos de la terminal del 2019

Les dejo mis apuntes sobre el significado de cada octal para asignar permisos a nuestros archivos:

1.- El archivo se puede ejecutar
2.- El archivo se puede escribir.
3.- El archivo se puede ejecutar y escribir
4.- El archivo se puede leer.
5.- El archivo se puede leer y ejecutar.
6.- El archivo se puede escribir y leer
7.- El archivo se puede leer, escribir y ejecutar.
0.- El archivo no posee ningún permiso.

Aquí se explica que significa cada atributo que tiene un usuario en Linux:
https://linuxjourney.com/lesson/etc-shadow-file
https://linuxjourney.com/lesson/etc-passwd-file
.
Y el significado que tiene cada grupo el Linux:
https://linuxjourney.com/lesson/etc-group-file

Usando una tabla de referencias binarias:
R W X
1 1 1 | 7 -> rwx
1 1 0 | 6 -> rw
1 0 1 | 5 -> rx
1 0 0 | 4 -> r
0 1 1 | 3 -> wx
0 1 0 | 2 -> wx
0 0 1 | 1 -> x
0 0 0 | 0 -> 0

El permiso seria 755, indicando que al dueño tiene todos los permisos, el grupo y otros (world) solo contará con lectura y ejecución


Esta imagen me ayudó a entender el modo octal.


Aquí mi respuesta teacher 😄

como recomendacion y un par de consejitos utiles:

1.Nunca debemos asignar permisos 777. Aunque a veces pueda parecer que una aplicación web no funciona si no le asignamos esos permisos a una carpeta donde se desea escribir información, el nivel 777 es muy peligroso ya que estamos asignando permisos totales a esos archivos o carpetas. Generalmente, hay que buscar soluciones de permisos más restrictivas y, en cambio, modificar los propietarios o el grupo de los archivos o carpetas.

2.Generalmente, trabajamos con 644 para ficheros y 755 para directorios. Esos son los permisos más estándar para los archivos y carpetas del servidor. Esta opción genérica no tiene por qué ser la necesaria para todos los proyectos, pero siempre es una solución bastante apropiada.
Nuevamente, si nuestra aplicación no funciona bien con este nivel de permisos, conviene estudiar quién se encuentra asignado como propietario y grupo de los archivos y carpetas. Un problema habitual es que el propietario sea root. Esto podría suponer que, cuando desde un lenguaje de programación se intenta acceder al archivo para su escritura, nos arroje un error de acceso. La solución adecuada nunca sería asignar 777 para que la aplicación funcione, sino encontrar el usuario y grupo adecuados para el contenido de la carpeta.

Esta información puede acalarar un poco más de donde salen los números 7 y 5.
(

Encontré esta tablita con algunos ejemplos del modo octal, me ayudo mucho:

Ejemplos:

Espero a alguien le sirva.

📌 Los permisos nos permiten definir de una manera simple y efectiva las reglas de acceso como lectura ( r), escritura (w) o ejecución (x) a determinados archivos o directorios.

Cómo se manejan los permisos.

• Cuando listamos con ls -l se muestran varias cosas. Los tipos de archivos:
o `` archivo normal.
o d directorio.
o l link simbólico.
o b archivo de bloque especial.

• Tipos de modos: rwx corresponde con read, write y execute. Se representan con 3 bits, y los podemos manejar a través de un modo octal, esto es, pasar de binario a número.

o rwx (1,1,1) dueño. En modo octal es 7.
o r-x (1,1,1) grupo. En modo octal es 5.
o r-x (1,0,1) world. Octal 5.
• Modo simbólico: Esto es para asignar los permisos a los diferentes posibles usuarios.
o u Solo para el usuario.
o g Solo para el grupo.
o o Solo para otros (world).
o a Aplica para todos.

Manejar Permisos.

Los archivos tienen persmisos de acceso según qué usuario intentente acceder a este, estos son:

  • Read ® → posisbilidad de leer el documento
  • Write (w) → posibilidad de escribir (modificar) el ducumento
  • eXecute (x) → posibilidad de ejecutar el documento
    .

Modo octal:
Read, write y execute (wrx) representan los permisos de un archivo, estos se pueden representar en sistema binario (en ese orden) según el permiso esté habilitado o no, así 101 representa r-x, a la vez este número binario se puede representar en número natural del 0 al 8 (de allí el nombre)
.
Ejemplos:

  • 7 → 111 → wrx
  • 4 → 100 → r–
  • 1 → 001 → --x
  • 5 → 101 → r-x

.
Estos permisos se aplican a tres usuarios:

  • user (u) → usuario o dueño
  • group(g) → grupo (entorno del dueño)
  • other(o) → world, cualquier otro usuario

Nota:

  • Se puede acceder a los tipos de usuario con el modo simbolico (u,g,o), además del modo a (all, todos los usuarios)

.
Tipos de archivos:
Al momento de consultar los permisos (ls-l) también accedemos a el tipo de archivo, que puede ser:

    • → archivo normal
  • d → directorio
  • l → link simbolico
  • b → archivo de bloque especial (guarda información de un dispositivo de almacenamiento externo)

No les ha pasado que ven archivos filename.exe en Windows (para lo que lo utilicen ), estos indica que el archivo es ejecutable. Lo que es un indicador para que el Sistema Operativo pueda ejecutar dicho archivo.
En el caso de Linux , los archivos no utilizan extensiones para indicarles al SO que es ejecutable.
Es por esa razón, que existen un conjunto de comandos para dar esos permisos de ejecución “chmod +x file name”, entre otros permisos.


Bueno aquí quería aportar mi granito de arena así pude entenderlo mucho mejor
ESPERO LES SIRVA SALUDOS DESDE COLOMBIA

Asigna permisos de lectura, escritura y ejecución para los usuarios “otros” a todos los archivos de la carpeta
#chmod o=rwx *

Asigna todos los permisos a todos los usuarios para el archivo fichero.txt
#chmod a=rwx fichero.txt

Quita todos los permisos para los usuario del grupo y los usuarios otros.
#chmod go= *

Da todos los permisos al dueño del fichero, a los del grupo del dueño le asigna permisos de lectura y escritura y a los otros usuarios les quita todos los permisos.
#chmod u=rwx,g=rw,o= *

GENERADOR DE PERMISOS

https://chmodcommand.com/ he encontrado esta web que me ha sido muy util :3

Les comparto mis apuntes, espero que le sirva. 😄

Operadores de control

Los operadores de control son símbolos reservados por la terminal que nos permiten ejecutar más de un comando o encadenarlos. Podemos correrlos síncronamente, asíncronamente e incluso con condicionales.

Utilidad

Es útil si queremos crear una carpeta y después movernos a ella, o queremos ver si se cumple un comando (que se ejecute exitosamente) se corra un segundo.

Síncrona

Quiere decir que se ejecuta un comando detrás de otro, es decir, termina de ejecutarse uno y luego se ejecuta el siguiente. Este funciona similar a al condicional OR.

;

Define que luego de un comando se ejecute otro.

$ comando1; comando2; comando3; comandoN

Así se ejecuta comandos de forma síncrona.

cal

Es una utilidad básica de la terminal que muestra un calendario y en blanco muestra la fecha en la que estamos.

Asíncrona

Por cada comando que ejecutemos se va a abrir una shell o línea de comandos en segundo plano, se va a estar usando un hilo del procesador por cada comando que estemos usando.

Esto permite ejecutar comandos de forma paralela, pero sin embargo, podemos atorar algún proceso o un comando se puede ejecutar indefinidamente.

&

Simboliza que vamos a ejecutar asíncronamente. Le estamos diciendo a la terminal que por cada comando que coloquemos queremos que la terminal cree una línea de comandos en segundo plano.

$ comando1 & comando2 & comando3 & comandoN

Aparte de los resultados que esperamos obtener tenemos otras cosas tales como estas.

$ [1] 6823 #Corresponde la comando1
$ [2] 1684 #Corresponde al comando2
$ [3] 1684 #Corresponde al comando3
$ [N] PID #Corresponde al comandoN

El [1] simboliza el primero comando que hemos puesto y los números seguidos a él es el número de proceso o PID.

$ [Orden del comando] [Número de PID]

Correr comandos de manera condicional

&& o AND

Va ejecutando los comandos a medida que los mismos se van ejecutando de manera conecta.

Es una forma de decir “Si el comando 1 se ejecutó correctamente entonces ejecute el comando 2, caso contrario que se detenga el proceso.”

$ comando1 & comando2 & comando3 & comandoN

|| o OR

Es como ejecutar comandos de manera asíncrona, pero no lo es. Lo que hace es que sin importar el estado de un comando el siguiente a este de todas formas igual se va a ejecutar.

$ comando1 || comando2 || comando3 || comandoN

Webpack

Es un empaquetador de archivos que nos ayuda a servirlos en las web para poder observarlos de manera activa.

Lo que hace este es que ejecuta los comandos que empaquetan todos estos archivos (HTML, CSS, JS, etc) y si el comando se ejecutó de manera exitosa hay que ejecutar otro que muestre estos archivos empaquetados ya en la web.

Reto

Hacer que el siguiente comando muestre el mensaje de “Archivo creado”.

#Comando que da error.
$ cd asdf && touch archivo.txt $$ echo "Archivo creado."
#Corrección
$ mkdir asdf && cd asdf && touch archivo.txt && echo "Archivo creado." || echo "Error."

Permisos especiales de Linux: SUID, SGID/GUID y Sticky Bit

SUID

SUID o Set Owner User ID es un indicador de bit de permiso que se aplica a los ejecutables. SUID permite que un usuario alternativo ejecute un ejecutable con los mismos permisos que el propietario del archivo en lugar de los permisos del usuario alternativo.

Agregar bit SUID

chmod u+s file
# forma numérica: cuarto dígito a los permisos normales con número octal siempre 4.
chmod 4766 file

# Queda así:
rwsrw-rw-

Eliminar bit SUID

chmod u-s file
chmod 0766 file

Agregar opción de ejecución cuando el bit SUID es s mayúscula para que pase a s minúscula y sea ejecutable:

chmod +x file

SGID / “GUID”

SGID es similar a SUID. Con el conjunto de bits SGID, cualquier usuario que ejecute el archivo tendrá los mismos permisos que el propietario del grupo del archivo.

Su beneficio está en el manejo del directorio. Cuando se aplica el permiso SGID a un directorio, todos los subdirectorios y archivos creados dentro de este directorio obtendrán la misma propiedad de grupo que el directorio principal (no la propiedad de grupo del usuario que creó los archivos y directorios).

💡 GUID (globally unique identifier) se refiere usualmente a una forma más robusta de UUID (universally unique identifier), y parece fuera de lugar respecto de los permisos de usuarios y grupos en particular. Tradicionalmente, sin embargo, alguna documentación de Unix refieren a SGID como bit GUID.

.
Agregar bit SGID

chmod g+s file

# forma numérica: cuarto dígito a los permisos normales con número octal siempre 2.
chmod 2766 file 
# Queda así:
rwxrwsrw-

Eliminar bit SGID

chmod g-s file
chmod 0766 file

Sticky bits

El sticky bit funciona en el directorio. Con el sticky bit establecido en un directorio, todos los archivos en el directorio solo pueden ser eliminados o renombrados por los propietarios del archivo o por la raíz.

Esto se usa normalmente en el directorio /tmp que funciona como la papelera de archivos temporales.

linuxhandbook:~$ ls -ld /tmp
drwxrwxrwt 1 root root 512 Apr 12 13:24 /tmp

Como puede ver, la carpeta /tmp, tiene la letra t en el mismo lugar donde esperamos ver x o  para otros permisos. Esto significa que un usuario (excepto root) no puede eliminar los archivos temporales creados por otros usuarios en el directorio /tmp.

Agregar sticky bit

chmod +t my_dir
chmod 1766

Eliminar:

chmod -t my_dir
chmod 0766

Si el directorio no tiene el permiso de ejecución establecido para todos, establecer un bit fijo hará que se muestre T en lugar de t. Una indicación de que las cosas no son del todo correctas con el bit pegajoso.
.
.

Para h4ckers, vector de Privilege Escalation SUID/SGID:

# para obtener todos los SUID
find / -perm -4000 2>/dev/null

# para obtener todos los SGID/"GUID"
find / -perm -2000 2>/dev/null

# encuentra todos los sticky bits
find / -perm -1000 2>/dev/null

Encontrar interesantes:

find / -type f -perm 0777  #busque archivos con los permisos 777 (archivos legibles, grabables y ejecutables por todos los usuarios)
find / -perm a=x    #encontrar archivos ejecutables

#Encuentra carpetas en las que se puede escribir en todo el mundo
find / -writable -type d 2>/dev/null  
find / -perm -222 -type d 2>/dev/null 
find / -perm -o w -type d 2>/dev/null

0 = — = sin acceso
1 = --x = ejecución
2 = -w- = escritura
3 = -wx = escritura y ejecución
4 = r-- = lectura
5 = r-x = lectura y ejecución
6 = rw- = lectura y escritura
7 = rwx = lectura, escritura y ejecución

Aquí hay una lista de los permisos más comunes para los archivos:

Valor Valor Numérico Explicación
-rw——- 600 El propietario puede leer y escribir.
-rw-r–r– 644 El propietario puede leer y escribir, el grupo y otros pueden leer.
-rw-rw-rw- 666 El propietario, el grupo y otros pueden leer y escribir.
-rwx—— 700 El propietario puede leer, escribir y ejecutar, el grupo y otros no pueden hacer nada con el archivo.
-rwx–x–x 711 El propietario puede leer, escribir y ejecutar, el grupo y otros pueden ejecutar.
-rwxr-xr-x 755 El propietario puede leer, escribir y ejecutar, el grupo y otros pueden leer y ejecutar.
-rwxrwxrwx 777 EL propietario, el grupo y otros pueden leer, escribir y ejecutar.
Los permisos comunes para directorios:

Valor Valor Numérico Explicación
drwx—— 700 Solo el propietario puede leer y escribir en este directorio.
drwxr-xr-x 755 El propietario, el grupo y otros pueden leer el directorio, pero solo el propietario puede cambiar su contenido.

Todos los archivos de Unix tienen un:

Dueño
grupo
otros Las operaciones que pueden hacerse sobre un archivo son:
Escribir [w]
leer [r]
Ejecutar [x] Para alterar los permisos asociados se tienen los siguientes comandos: chmod: Cambia individualmente los permisos ejemplo: [chmod ][o (Indica ‘others’)][-(menos quita el permiso)] [w (Cual es el permiso que se desea quitar)]
Para dar el permiso: chmod +x hello.php (Esto dará el permiso de ejecutar a los tres grupos)

chown: Cambia quien es el propietario del archivo. ejemplo: [chown] [nombre del usuario] [nombre del archivo] chonw www-data hello.php

chgrp: Cambia quien es el grupo de usuarios que pueda acceder al archivo. ejemplo: [chgrp] [nombre del usuario] [nombre del archivo] chgrp www-data hello.php

Para ejecutar un archivo: [./ (punto, barra es donde estamos actualmente)] [hello.php (El nombre del archivo)].

Permisos

7 = 111 = rwx = Todos los permisos. 6 = 110 = rw- = Permiso de lectura y escritura. 5 = 101 = r-x = Permiso de lectura y ejecución. 4 = 100 = r-- = Permiso de lectura. 3 = 011 = -wx = Permiso de escritura y ejecución. 2 = 010 = -w- = Permiso de escritura. 1 = 001 = --x = Permiso de ejecución. 0 = 000 = — = Sin permisos.

Super usuario - root: Este usuario puede leer y escribir cualquier archivo del sistema, y ejecutar algunos archivos. y también hay otras operaciones que están reservadas para el.

Podemos utilizarlo con el comando sudo

Cómo se manejan los permisos

<h5>Tipos de archivo</h5>
Atributo Tipo de archivo
- Un archivo normal.
d Un directorio.

– INSERT – 129,1 80% - w -> write

  • x -> execute

Diferencia de permisos entre archivos y directorios

Ya que los permisos usan 3 bits, podemos representarlos con el sistema numérico octal.

Octal Binario Permisos
0 000
1 001 –x
2 010 -w-
3 011 -wx
4 100 r–
5 101 r-x
6 110 rw-
7 111 rwx
<h5>Modo simbólico</h5>
Símbolo Significado
u Sólo para el usuario
g Sólo para el grupo
o Sólo para otros(Es el world)
a Aplica para todos

Hola, esta es la solución a la que llegue en los ejercicios propuestos 😃

Viendo la siguiente tabla:

1 = 1
2 = 10
3 = 11
4 = 100
5 = 101
6 = 110
7 = 111

El resultado sería:

755

Dónde 7 es igual a leer, escribir y ejecutar; y 5 es igual a leer y ejecutar.

10. Cómo se manejan los permisos:

Existen los siguientes tipos de archivos:

  1. - : Un archivo normal.
  2. d : Un directorio.
  3. l : Un link simbólico.
  4. b : Un archivo de bloque especial. Son archivos que manejan la información de los bloques de datos como una USB.

Dueño: rwx — 1 1 1

Grupo: rx —- 1 0 1

World: rx —- 1 0 1


Este es el módo simbólico:

  1. u: Solo para el usuario.
  2. g: Solo para el grupo
  3. o: Solo para otros (es el world).
  4. a: aplica para todos.

Para determinar la cantidad de permisos que tienen los diferentes usuarios, se hace una matriz, en la que ponemos 3 casillas, con un 1 o un cero, cada casilla, representa un permiso y tiene un valor. r de read de leer, w de write de escribir y x de execute de ejecutar. r tiene un valor de 4 si está 'prendido' , w un valor de 2 y x un valor de 1, claramente si está con un 0 ( osea apagado) no valdrá nada, por lo que no podemos sumar ese permiso, dando a entender que el permiso, no se tiene. La suma de estos, caracteriza su totalidad: Si tienes todos los permisos el total será: 7, si solo tienes r y w entonces sería 6, si tienes w y x sería 3; por último si tienes r y x la suma daría: 5, cada resultado es único y nos permite saber qué permisos se tienen.

Estamos viendo comandos y de repente números ¿?

  • 1 1 1 = 7 ???
  • 1 0 1 = 5 ???

Solo es recordar las posiciones 1 2 4 8 16 32 64 y que el 1 significa ON y el 0OFF de esta manera obtendremos la solución

  • 1 1 1 = 7 --> 1 + 2 + 4 = 7
  • 1 0 1 = 5 --> 1 + 0 + 4 = 5

Rapida y excelente explicaion de como pasar de binario a modo octal: https://www.youtube.com/watch?v=CT2yM2tjuH0

La forma de asignar permisos mediante el estilo Octal es:

Para la representación en sistema octal, los digitos rwx asumen los siguientes valores (en función de su posición en binario):

r = 2² = 4;
w = 2¹ = 2;
x = 2⁰ = 1.

De allí que, por ejemplo, los permisos rwx sean igual a 7 (4+2+1), y los permisos r-x sean igual a 5 (4+0+1).

Los permisos realmente no se basa en el sistema octal, se basa en el sistema binario como lo explica un tutorial de los recursos de este video. Si hacen el calculo de cuanto equivale:

|   R    |    W   |   X   |
|   ---   |    ---   |   ---  |
|    1    |    0    |    1   |

Octal

Daria un resultado mal visto como octal ya que el sistema númerico octal no se basa en multiplicar por 2 cada uno de los permisos.

**resultado octal = 5**

Si estudian como funciona el sistema númerico octal suelen darse cuenta que tiene un conteo como decimal pero a diferencia del decimal este va de 0-7. Significa que no va multiplicando por 2 cada uno de los numeros siguientes.

Binario

Realmente usa el sistema numerico binario el sistema de permisos, ya que si hacen el ejercicio de saber su valor veran el resultado claramente.

Ejemplo

|   R    |    W   |   X   |
|   ---   |    ---   |   ---  |
|    1    |    0    |    1   |

resultado: 101

Agregamos los bits necesarios(5) para completar 1 byte.

resultado:  00000101
conversion: 5

Aclaración

Le dicen sistema octal ya que el resultado final en binario proporciona un numero decimal que termina en 0-7.


Ninguno | 0

Solo ejecutar | 1

Solo escribir | 2

Escribir / ejecutar | 3

Solo leer | 4

Leer / ejecutar | 5

Leer / escribir | 6

Todos los permisos | 7

Tipos de archivos:

  • ‘-’ : un archivo normal

  • d : un directorio

  • l : un link simbolico

  • b : un archivo de bloque especial. Son archivos que manejan la información de los bloques de datos como una USB
    .

Tipos de modo de cada archivo:

  • Dueño (la persona que crea el archivo): tipo de permiso rwx 1 1 1

  • Grupo (un archivo compartido por usuarios): tipo de permiso r-x 1 0 1

  • World (otros, cualquier que no sea dueño ni grupo): tipo de permiso r-x 1 0 1
    .

Hace algunos meses me encontré con unos archivos con una c (en las sesiones de tmux) y me dio pena el no saber que tipo de archivos eran (ya que la encender el servicio de tmux me decía que ese archivo ya existía y no podía ingresar a tmux) hasta que después logre encontrar su significado y su función (era un archivo de tipo socket):
.
"just as regular files and directories do, and this permission data determines access to the associated device. Most device files are, by convention, located in a directory called /dev (or in subdirectories of /dev). Device files are marked in directory listings by b or c in the initial position:
.
crw------- 1 root system 10, 0 Oct 01 1997 __vg10
brw-rw---- 1 root system 10, 1 Aug 14 1996 hd6
.
Here the b and c denote, respectively, block devices and character devices. This distinction is not particularly significant for the administrator. Every device file also has a major number and a minor number. The major number associates the device with a particular major device, and the minor number identifies the particular instance of that device. In the above example, the major and minor numbers appear as 10, 0 and 10, 1 respectively.

Fuente: https://www.distributednetworks.com/unix-system-admin/module4/device-files.php

Manejando permisos

  • “-” : archivo normal
  • “d” : un directorio
  • “l” : un link simbólico
  • “b” : un archivo de bloque especial, como los de USB

Tipo de modo

  • Dueño, grupo, world
  • R: read
  • W: write
  • X: execute
  • Se puede representar en modo octal, esto es, asignando un 1/0 y sumando según la posición los 3 bits

Modo simbólico

  • u : solo para el usuario
  • g : solo para el grupo
  • o : solo para los otros
  • a : aplica para todos
R W X | R W X | R W X 4 2 1 | 4 2 1 | 4 2 1 7 7 7 --> Full permisos La suma de los número por cada octal es 7 (4+2+1 = 7) EJEMPLO: R W X | R - X | R - X 4 2 1 | 4 - 1 | 4 - 1 7 5 5 por cada octal sumamos lo números, finalmente nos da los permisos en cada grupo. El permiso es 755 se asigna con el comando chmod chmod 755 test.txt lo anterior es uno de varios ejemplos
![](https://static.platzi.com/media/user_upload/D-b81ef7bd-e3e6-4c89-9e4a-21ffe009d3df.jpg)

La respuesta al ejercicio es:

  1. drw–wx—
  2. lrwxr–r--
  3. -rwxrwx—

En el sistema de permisos en octal, los números representan combinaciones de permisos, por ejemplo:

7: Todos los permisos (lectura, escritura y ejecución).
6: Lectura y escritura, pero sin ejecución.
5: Lectura y ejecución, pero sin escritura.
4: Solo lectura.
3: Escritura y ejecución, pero sin lectura.
2: Solo escritura.
1: Solo ejecución.
0: Sin permisos (ningún permiso está concedido).

Es solo conversión de binario a octal

valor octal = 2^2 * r + 2^1 * w + 2^0 * x

Dueño = 2^2 * 1+ 2^1 * 1 + 2^0 * 1 = 7
Grupo = 2^2 * 1+ 2^1 * 0 + 2^0 * 1 = 5

![](

where are the exercises

Por primera vez en todo el curso (siendo nuevo en la programación) me pregunte, será que esto si es para mi? jajaj un video de casi 6m, se me fue mas de 30m. pero se puede 😃

El codigo debio ser puesto asi.

<-rwxr-xr-x> 

De un directorio, el dueño tiene permiso de lectura y escritura, el grupo tiene permisos de escritura y ejecución y world no tiene permisos.
drw-rx–

De un enlace simbólico el dueño tiene todos los permisos, el grupo y world sólo de lectura.
Irwx-r-r

De un archivo comun todos tienen todos los permisos, pero el world no tiene permiso de ejecución.
-rwx-rwx-rw

Convierte los siguientes permisos a símbolos y en su representación numérica:
.

  • EJERCICIO #1: De un directorio, el dueño tiene permiso de lectura y escritura, el grupo tiene permisos de escritura y ejecución y world no tiene permisos.
    .
    d rw- -wx —
    110 011 000
    6 3 0
    .
  • EJERCICIO #2: De un enlace simbólico el dueño tiene todos los permisos, el grupo y world sólo de lectura.
    .
    l rwx r-- r–
    111 100 100
    7 4 4
    .
  • EJERCICIO #3: De un archivo común todos tienen todos los permisos, pero el world no tiene permiso de ejecución.
    .
  • rwx rwx rw-
    111 111 110
    7 7 6

Convierte los siguientes permisos a símbolos y en su representación numérica:

  1. De un directorio, el dueño tiene permiso de lectura y escritura, el grupo tiene permisos de escritura y ejecución y world no tiene permisos.
  2. De un enlace simbólico el dueño tiene todos los permisos, el grupo y world sólo de lectura.
  3. De un archivo comun todos tienen todos los permisos, pero el world no tiene permiso de ejecución.

1.drw–wx—
2.lrwxr–r--
3.-rwxrwxrw-

Mi respuesta al ejercicio de práctica dejado al pie de la clase:

De un directorio, el dueño tiene permiso de lectura y escritura, el grupo tiene permisos de escritura y ejecución y world no tiene permisos:

drw–wx—

De un enlace simbólico el dueño tiene todos los permisos, el grupo y world solo de lectura.

lrwxr–r--

De un archivo común todos tienen los permisos, pero el world no tiene permiso de ejecución.

-rwxrwxrw-

modo octal
1 1 1
r w x
4 2 1
7

modo octal
1 0 1
r - x
4 1
5

modo octal
1 0 1
r - x
4 1
5

Amo a los compañeros que dejan en los comentarios información de valor, son los mejores motores de busqueda de información.

PRACTICA

1. De un directorio, el dueño tiene permiso de lectura y escritura, el grupo tiene permisos de escritura y ejecución y world no tiene permisos.

chmod -R 630 /MiCarpeta
drw–wx—

2. De un enlace simbólico el dueño tiene todos los permisos, el grupo y world sólo de lectura.

744
lrwxr–r--

3. De un archivo comun todos tienen todos los permisos, pero el world no tiene permiso de ejecución.

chmod 776 MiArchivo.txt (_Ext: html. js, et_c)
-rwxrwxrw-

Este es el ejercicio de la práctica.

  • De un directorio, el dueño tiene permiso de lectura y escritura, el grupo tiene permisos de escritura y ejecución y world no tiene permisos.
    • drw- -wx — --
    • 110 011 000
    • 6 3 0
  • De un enlace simbólico el dueño tiene todos los permisos, el grupo y world sólo de lectura.
    • lrwxr- - r - -
    • 111 100 100
    • 7 4 4
  • De un archivo común todos tienen todos los permisos, pero el world no tiene permiso de ejecución.
    • -rwxrwxrw-
    • 111 111 110
    • 7 7 6

Aunque hay muy buenos aportes, son unas notas que tengo de hace algún tiempo, por si a alguien le vale de algo.

Según la categoría de usuarios nos encontramos:

Usuario
Grupo
Otros

Según la categoría de permisos nos encontramos:

Lectura
Escritura
Ejecución

Una forma de cambiar permisos podría ser la siguiente, suponiendo que archivo.txt pertenece al usuario root y que no tiene ningún otro tipo de permisos:

chmod o=rw archivo.txt

Hemos asignado al archivo archivo.txt permisos de lectura y escritura para otros. Lógicamente para hacer este cambio nos tendríamos que loguear como root, ya que es el propietario.

Para dar permisos de propietario, grupo propietario u otros a un archivo lo haríamos de la siguiente:

chmod u=rwx NOMBRE-ARCHIVO
chmod g=rx NOMBRE-ARCHIVO

rwx será en función de los permisos que se quieren añadir o modificar.

Veamos el siguiente comando:

chmod u=rwx,g=rwx,o=rwx /etc/syslog/network

Modifica los permisos para todas las categorías de usuario. Como vemos es un método largo, pero hay otro sistema, que es el empleado y mucho más corto y fácil, empleando el sistema octal.

Teniendo en cuenta esto, para devolver al comando anterior, los permisos originales, se haría de la siguiente forma:

chmod 664 /etc/syslog/network

Si ahora quisiéramos sustituir el comando largo por el octal, lo haríamos de la siguiente forma:

chmod 777 /etc/syslog/network

El sticky bit solo lo aplica a directorios, es decir, si yo lo pongo a un archivo tal cual, lo podré borrar, pero si un directorio tiene el permiso +t, si ese usuario crea contenido dentro de él, solo podrá borrarlo él.

Mi respuesta a los ejercicios:, si alguno no está bien, lo corrigen por favor 😉
De un directorio, el dueño tiene permiso de lectura y escritura, el grupo tiene permisos de escritura y ejecución y world no tiene permisos.

`drw--wx---`

De un enlace simbólico el dueño tiene todos los permisos, el grupo y world sólo de lectura.

`lrwxr--r--`

De un archivo común todos tienen todos los permisos, pero el world no tiene permiso de ejecución.

`-rwxrwxrw-`

Ahì pueden ver los permisos que tienen cada usuario con el nùmero octal correspondiente. El 1 es el permiso adminito y los 0 son los permisos denegados. Por ejemplo si hay un archivo que es 750 significa que ->

7: Administrador tiene permisos de lectura, escritura y ejecuciòn.
5: Grupo tiene permisos de lectura y ejecuciòn
0: Publico No tiene ningun permiso

El valor que debe aparecer en los permisos 1 1 1 es 7 5 5, esto se puede calcular de la siguiente forma: Ya que las computadoras usan un sistema binario (0 y 1), se puede ver el sistema en potencia de 2. Para el caso de 1 1 1 = 2^2 + 2^1 + 2^0 = 4 + 2 + 1 = 7. 1 0 1 = 2^2 + 0 + 2^0 = 4 + 0 + 1 = 5. Nota que cuando hay un cero (un bit apagado) ese valor no se suma, solo se coloca el 0. Sí quisiéramos que un archivo tuviera permisos de lectura, escritura pero no de ejecución (rw-) sería algo como 110: 2^2 + 2^1 + 0 = 4 + 2 + 0 = 5. Espero haber sido claro y que les ayude.

Es un pro este profesor!!

Los permisos son muy importantes, aprendiendo le cambie los permisos a un archivo muy importante de Linux llamado rc.local y lo cambie en 300 dispositivos IOT, casi pierdo mi trabajo, pero se pudo corregir. Así que ¡mucho cuidado con los permisos!

Para comprender un poco mejor como pasarlo a octal

  1. Cada 1 tiene una posición comenzando de derecha a izquierda desde el 0.
  2. Cada posición va representar un valor que es igual a 2^posición.
  3. Finalmente se suman los valores de posiciones.

ejemplo con (rwx):

  • X esta en la posición 0 por lo tanto su valor es 2^0 = 1.
  • W esta en la posición 1 por lo tanto su valor es 2^1 = 2.
  • R esta en la posición 1 por lo tanto su valor es 2^2 = 4.
  • ahora 1+2+4 = 7 por lo tanto su valor octal es 7

ejemplo con (r-x):

  • X esta en la posición 0 por lo tanto su valor es 2^0 = 1.
  • W esta en la posición 1 pero al ser un 0 no se toma en cuenta para esta suma
  • R esta en la posición 1 por lo tanto su valor es 2^2 = 4.
  • ahora 1+4 = 5 por lo tanto su valor octal es 5

Un poco rara la clase hay que repasarlo de nuevo.

en la pausa solo hay que calcular el binario. Owner es igual a 7
Group es igual a 5
Others es igual a 5

Los archivos tienen su propia descripción, es decir que cuando los listamos, también se nos lista su tipo: - Un archivo normal (el guión o dash) d Un directorio l link simbólico (la ele) b Un archivo de bloque especial (archivos que manejan volúmenes externos)

A la hora de hacer un comando para cambiar permisos, también podemos apliclar ciertas alteraciones con las letras: u = Solo para el usuario g = Solo para el grupo o = Solo para otros a = aplica para todos

rwx
000 = 0
001 = 1
010 = 2
011 = 3
100 = 4
101 = 5
110 = 6
111 = 7

En el octal se dan los permisos de la siguiente forma
4® + (2)w + 1(x) y se manejan en grupos de 3 uno para cada grupo por ejemplo.
777 le dará permisos de lectura, escritura y ejecución a el dueño, grupo y world.

Si colocamos 0, tendremos que no tendrá permisos ese grupo en especifico. Ejemplo queremos que world no pueda realizar ninguna opcion sobre nuestro archivo, pero grupo puede leer y ejecutarlo, dueño tendrá todos los permisos, se coloca. 750.

Nombre Binario Octal
Dueño 111 7
Grupo 101 5
World 101 5

**Modo octal**

octal > binario > Permisos

  0     000        - - -

  1     001        - - x

  2     010        - w -

  3     011        - w x

  4     100        r - -

  5     101        r - x

  6     110        r w -

  7     111        r w x

excelnete dato para conocer mas sobre los permisos en linux

Modo octal 4 2 1

Por eso el dueño tiene 7 -> 4 +2+1

Grupo tiene 5 -> 4+0+1 igual que mundo o otros

octal	Binario	Permisos
0	    000	    ---
1	    001	    --x
2	    010	    -w-
3	    011	    -wx
4	    100	    r--
5	    101	    r-x
6	    110	    rw-
7	    111	    rwx

Pensé era en binario:
111 = 7
101 = 5
101 = 5
pero no ¿? 🤔🤔🤔 estoy confundido 😅
Octal???
4 + 2 + 1 = 7
4 + 0 + 1 = 5
4 + 0 + 1 = 5

Nota:

En base a nuestro ejemplo quedaría de la siguiente manera:

Por ende corresponde a un archivo regular con permiso 755

La parte de establecer los permisos en octal es una de las cosas basicas que no terminaba de entender, ni siquiera sabía que la notación era en octal. Ahora ya lo tengo bien aprendido.
Les dejo mi tarea! 1\. De un ***directorio***, el dueño tiene permiso de ***lectura y escritura***, el grupo tiene permisos de ***escritura y ejecución*** y world ***no tiene permisos***. R: **drw--wx---** 2\. De un ***enlace simbólico*** el dueño tiene ***todos los permisos***, el grupo y world ***sólo de lectura***. R: **lrwxr--r--** 3\. De un ***archivo común*** ***todos tienen todos los permisos***, pero el world ***no tiene permiso de ejecución***. R: ***-rwxrwxrw-*** *Espero que estén bien jaja*
Les comparto mis apuntes junto con la respuesta al reto: ```txt # Como se manejan los permisos: ## Tipos de archivos Tipos de archivo, que incluso se ven con ls para ver el tipo de permiso, son: - archivo normal d un directorio l un link simbolico b archivo de bloque especial, son archivos que manejan informacion la informacion de los bloque sde datos de una USB ## Tipo de modo dentro de los permisos de cada archivo son de 3 grandes partes que son: 1. duenio 2. grupo (compartido entre varios usuarios) 3. world (mundo u otros, aquellos que no son duenios o grupo) Existen 3 tipos de permisos r - read w - write x - execute cuando asignamos un permiso, lo encendemos, se le asigna un 1, en este slide los permisos son: duenio: r - 1, w - 1, x - 1 grupo: r - 1, w - 0, x - 1 world: r - 1, w - 0, x - 1 Como son 3 permisos, la representacion se pueden hacer en trail bits o sistema octal, y los permisos los podemos mostrar mediante un modo octa. Con esos bits, como seria su represnetacion en modo octa? ## propuesta de solucion Permiso Octal Significado --- 0 Sin permisos --x 1 Solo ejecución -w- 2 Solo escritura -wx 3 Escritura y ejecución r-- 4 Solo lectura r-x 5 Lectura y ejecución rw- 6 Lectura y escritura rwx 7 Lectura, escritura y ejecución Cuando aplicas permisos a un archivo o directorio, se utilizan tres números octales, uno para cada categoría (usuario, grupo, y otros). Por ejemplo: rwxr-xr-x: Usuario (u): rwx = 7 Grupo (g): r-x = 5 Otros (o): r-x = 5 Notación Octal Completa: 754 rw-r--r--: Usuario (u): rw- = 6 Grupo (g): r-- = 4 Otros (o): r-- = 4 Notación Octal Completa: 644 rwx------: Usuario (u): rwx = 7 Grupo (g): --- = 0 Otros (o): --- = 0 Notación Octal Completa: 700 ## Modo simbolico se pueden asignar permisos tacitamente desde la terminal con algunos comandos, y esta asignacion se puede hacer con simbolos que son: u - solo para el usuario g - solo para el grupo o - solo para otros o todo el mundo a - aplica para todos ```
Si están teniendo problemas para comprender el tema y que se les facilite ,sobre todo a quienes estamos iniciando, escriban "chmod calculator" en el buscador de Google, esta calculadora les dará apoyo.
![](https://static.platzi.com/media/user_upload/image-e50198ad-3fd5-4811-9f47-fc617f193268.jpg)
![](https://static.platzi.com/media/user_upload/image-9ae93ed9-150d-4d0f-9cb5-d8a5aab2e40d.jpg)
En octal debería aparecer los valores, 0 2 2. encontré el siguiente material en donde hay una tabla y explica más en detalle sus equivalentes en octal, espero que les sirva. <https://blog.alcancelibre.org/staticpages/index.php/permisos-sistema-de-archivos>
En el minuto 3:20 en la pregunta se responde con los permisos expresados en octal como 755
## Ejercicios de práctica 1\) d|rw-|-wx|--- Owner: 6 Group: 3 World: 0 drw--wx--- 2\) l|rwx|r--|r-- Owner: 7 Group: 4 World: 4 lrwxr--r-- 3\) -|rwx|rwx|rw- Owner: 7 Group: 7 World: 6 -rwxrwxrw-
que buena clase lml
ejercicio practico 1\. d 110 011 000 : d630 2\. l 111 100 100 : l744 3\. - 111 111 110 : -776
Hola, alguien sabe ¿Cómo copiar un archivo en varias carpetas sin necesidad de repetir el comando varias veces como lo hice acá? ![](https://static.platzi.com/media/user_upload/1-2cf8f28d-8323-4077-9366-40db9fb39be2.jpg)
Mi solución al ejercicio de práctica: * De un directorio, el dueño tiene permiso de lectura y escritura, el grupo tiene permisos de escritura y ejecución y world no tiene permisos.  drw--wx--- d110011000  * De un enlace simbólico el dueño tiene todos los permisos, el grupo y world sólo de lectura.  lrwxr--r-- = d111100100  * De un archivo comun todos tienen todos los permisos, pero el world no tiene permiso de ejecución:  -rwxrwxrw- = -111111110
**Ejercicios de practica:** 1. De un directorio, el **dueño** tiene permiso de lectura y escritura, el **grupo** tiene permisos de escritura y ejecución y **world** no tiene permisos.`drw--wx---` y de forma numerica **630** 2. De un enlace simbólico el **dueño** tiene todos los permisos, el **grupo** y **world** sólo de lectura. `lrwxr--r--` y de forma numerica **744** 3. De un archivo comun todos tienen todos los permisos, pero el **world** no tiene permiso de ejecución. `-rwxrwxrw-` y de fora numerica **776**
**Ejercicios de practica:** 1. De un directorio, el **dueño** tiene permiso de lectura y escritura, el **grupo** tiene permisos de escritura y ejecución y **world** no tiene permisos. `drw--wx---` 2. De un enlace simbólico el **dueño** tiene todos los permisos, el **grupo** y **world** sólo de lectura. `lrwxr--r--` 3. De un archivo comun todos tienen todos los permisos, pero el **world** no tiene permiso de ejecución. `-rwxrwxrw-`