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.
Primeros pasos
¿Qué es la terminal?
Opcional: Instalar WSL - usa Linux dentro de Windows
Aprendiendo a caminar en la terminal
Manipulando archivos y directorios
Explorando el contenido de nuestros archivos
¿Qué es un comando?
Wildcards
Empezando a correr
Redirecciones: cómo funciona la shell
Redirecciones: pipe operator
Encadenando comandos: operadores de control
Cómo se manejan los permisos
Modificando permisos en la terminal
Cómo configurar variables de entorno
Comandos de búsqueda
Usando el comando grep
Utilidades de la terminal
Utilidades de red
Comprimiendo archivos tar y zip
Manejo de procesos
Procesos en foreground y background
Editores de texto en la terminal
Personalizar la terminal de comandos
Despedida
Nunca pares de hackear
¡Es tu turno: crea un tutorial!
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Enrique Devars
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.
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 |
Los siguientes caracteres se leen de 3 en 3, por cada uno de los tipos de usuario.
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.
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.
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.
| 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 |
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 |||
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:
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
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.
ls -l
se muestran varias cosas. Los tipos de archivos:
-
archivo normal.d
directorio.l
link simbólico.b
archivo de bloque especial.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.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.
💡 Los permisos son abstracciones de acciones con los cuales lo usuarios, humanos o no, pueden operar al computador.
.
Los permisos definen la acciones posibles para con file o el directory, ya sea
r
lectura,w
escritura y/ox
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:
-
indica un file y d
indica un directoryAcá 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:
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:
.
Estos permisos se aplican a tres usuarios:
Nota:
.
Tipos de archivos:
Al momento de consultar los permisos (ls-l) también accedemos a el tipo de archivo, que puede ser:
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. 😄
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.
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.
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.
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]
&&
o ANDVa 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 OREs 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
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.
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."
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 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
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 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
Comparto la lectura con la que entendí el tema:
https://www.ionos.es/digitalguide/servidores/know-how/asignacion-de-permisos-de-acceso-con-chmod/
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
Atributo | Tipo de archivo |
---|---|
- | Un archivo normal. |
d | Un directorio. |
– INSERT – 129,1 80% - w -> write
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 |
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.
Existen los siguientes tipos de archivos:
-
: Un archivo normal.d
: Un directorio.l
: Un link simbólico.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:
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 ¿?
Solo es recordar las posiciones 1 2 4 8 16 32 64
y que el 1
significa ON y el 0
OFF de esta manera obtendremos la solución
1 + 2 + 4 = 7
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
Tipo de modo
Modo simbólico
La respuesta al ejercicio es:
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:
.
Convierte los siguientes permisos a símbolos y en su representación numérica:
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.
drw- -wx — --
lrwxr- - r - -
-rwxrwxrw-
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
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
ejemplo con (rwx):
ejemplo con (r-x):
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
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?