Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
permisos_de_archivo_y_directorio [2021/06/06 02:15] – peron | permisos_de_archivo_y_directorio [2023/04/15 17:59] (actual) – [Usar chmod para cambiar los permisos] peron | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== ¿Cómo administro los permisos de archivos y directorios en Texto-plano.xyz? | ||
+ | |||
+ | |||
Los sistemas operativos similares UNIX disponen de una estructura de directorios, | Los sistemas operativos similares UNIX disponen de una estructura de directorios, | ||
- | Debes tener en cuenta algo especial: tanto tus directorios como tus archivos normalmente son visibles y evidentes para todos los usuarios del sistema compartido. Esto depende de lo que llamamos " | + | > Tanto tus directorios como tus archivos normalmente son visibles y evidentes para todos los usuarios del sistema compartido. Esto depende de lo que llamamos " |
+ | |||
+ | Estos permisos de uso pueden referirse a los archivos, y los permisos de uso de los directorios. Al limitar o potenciar el acceso y utilización de los mismos tanto para el administrador de sistema (superusuario), | ||
+ | |||
+ | ===== Estructura básica de permisos en archivos ===== | ||
- | Estos permisos de uso pueden referirse a los archivos, y los permisos de uso de los directorios. Al limitar o potenciar el acceso y utilización de los mismos tanto para el administrador de sistema (superusuario), | ||
- | Estructura básica de permisos en archivos | ||
Los permisos de uso del archivo describen el accionar que podemos contemplar con elos. Debemos tener en claro los tres atributos básicos que nuestros archivos puede tener: lectura, escritura y ejecución. | Los permisos de uso del archivo describen el accionar que podemos contemplar con elos. Debemos tener en claro los tres atributos básicos que nuestros archivos puede tener: lectura, escritura y ejecución. | ||
- | Permiso de Lectura (r, o " | + | * **Permiso de Lectura ('' |
+ | * **Permiso de Escritura ('' | ||
+ | * **Permiso de Ejecución ('' | ||
- | Permiso | + | Las letras que identifican |
- | Permiso de Ejecución (x, o "execute"): Si el archivo tiene permiso de ejecución, entonces nuestro sistema operativo podrá cargarlo en memoria y correrlo (darle ejecución) como si de un programa se tratara. Si es un programa lo podremos ejecutar como cualquier comando, si es un script, necesitará de permisos de lectura y ejecución | + | | **'' |
+ | | **'' | ||
+ | |**'' | ||
- | Las letras que identifican de los atributos | + | Para ver los atributos de un directorio, podríamos usar el comando |
- | Para ver los atributos de un directorio, podríamos usar el comando "ls -l", que nos informará de los mismos. | + | ===== Usar chmod para cambiar los permisos |
- | Usar chmod para cambiar los permisos | + | |
- | Comprendido esto, debemos conocer cómo cambiar estos permisos. A tal fin se utiliza el comando chmod (" | ||
- | Si tuviésemos que prevenir la modificación del archivo importante.txt, | + | Comprendido esto, debemos conocer cómo cambiar estos permisos. A tal fin se utiliza el comando chmod (" |
+ | ===Permiso de escritura=== | ||
+ | Si tuviésemos que prevenir la modificación del archivo | ||
+ | <file bash> | ||
chmod -w importante.txt | chmod -w importante.txt | ||
+ | </ | ||
+ | ===Permiso de ejecución=== | ||
+ | Si queremos hacer que el [[script|guion]] llamado '' | ||
- | Si queremos hacer que el script llamado instalador.sh pueda ejecutarse, debemos ingresar: | + | <file bash> |
chmod +x instalador.sh | chmod +x instalador.sh | ||
+ | </ | ||
+ | ===Combinación de permisos=== | ||
+ | Si quisiéramos quitar o agregar todos los atributos a la vez | ||
- | ...si quisiéramos quitar o agregar todos los atributos a la vez | + | <file bash> |
chmod -rwx instalador.sh | chmod -rwx instalador.sh | ||
- | |||
chmod +rwx instalador.sh | chmod +rwx instalador.sh | ||
+ | </ | ||
- | También podremos utilizar el signo = para establecer los permisos en una combinación específica. Por ejemplo, con la siguiente sintaxis el comando chmod quitará permisos de escritura y ejecución dejando solo el de lectura. | + | También podremos utilizar el signo '' |
+ | <file bash> | ||
chmod =r instalador.sh | chmod =r instalador.sh | ||
+ | </ | ||
Debemos tener especial cuidado y precaución al modificar los permisos de nuestros archivos, pues podríamos dejarlos inaccesibles. Si editamos los permisos para hacer pruebas, no debemos olvidar dejarlos como estaban originalmente. | Debemos tener especial cuidado y precaución al modificar los permisos de nuestros archivos, pues podríamos dejarlos inaccesibles. Si editamos los permisos para hacer pruebas, no debemos olvidar dejarlos como estaban originalmente. | ||
Línea 44: | Línea 60: | ||
En el caso de los directorios, | En el caso de los directorios, | ||
- | **Permiso de lectura en un directorio**: | + | * **Permiso de lectura en un directorio**: |
- | + | | |
- | **Permiso de escritura en un directorio**: | + | |
- | **Permiso de ejecución en un directorio**: | + | * **Permiso de ejecución en un directorio**: |
===== Usuarios, Grupos y Otros ===== | ===== Usuarios, Grupos y Otros ===== | ||
Línea 63: | Línea 78: | ||
De esta manera, al introducir el comando: | De esta manera, al introducir el comando: | ||
+ | <file bash> | ||
chmod =r mensaje.txt | chmod =r mensaje.txt | ||
+ | </ | ||
...asignaremos permisos de lectura a los 3 dueños (usuario, grupo y otros). De tal forma, cuando listamos el directorio con “ls -l” veremos algo parecido a. | ...asignaremos permisos de lectura a los 3 dueños (usuario, grupo y otros). De tal forma, cuando listamos el directorio con “ls -l” veremos algo parecido a. | ||
Línea 77: | Línea 94: | ||
</ | </ | ||
- | También podemos quitar permisos para cada propietario; | + | También podemos quitar permisos para cada propietario; |
-rwxr-xr-x 1 fulano fulano 4096 abr 13 19:30 guion.sh | -rwxr-xr-x 1 fulano fulano 4096 abr 13 19:30 guion.sh | ||
Línea 83: | Línea 100: | ||
Si quisiéramos removerle los permisos de ejecución al propietario Grupos y al propietario Otros, bastaría con usar: | Si quisiéramos removerle los permisos de ejecución al propietario Grupos y al propietario Otros, bastaría con usar: | ||
- | <code> | + | <file bash> |
chmod g-x,o-x guion.sh | chmod g-x,o-x guion.sh | ||
- | </code> | + | </file> |
...de tal forma, nuestro archivo quedara con estos permisos | ...de tal forma, nuestro archivo quedara con estos permisos | ||
Línea 95: | Línea 112: | ||
Si deseamos removerle al dueño Usuario el permiso de escritura debemos ingresar: | Si deseamos removerle al dueño Usuario el permiso de escritura debemos ingresar: | ||
- | <code> | + | <file bash> |
chmod u-x guion.sh | chmod u-x guion.sh | ||
- | </code> | + | </file> |
< | < | ||
Línea 105: | Línea 122: | ||
Para agregar y remover dos permisos a la vez al propietario Usuario: | Para agregar y remover dos permisos a la vez al propietario Usuario: | ||
- | <code> | + | <file bash> |
chmod u-x+w guion.sh | chmod u-x+w guion.sh | ||
- | </code> | + | </file> |
...y al listarlo quedará: | ...y al listarlo quedará: | ||
Línea 117: | Línea 134: | ||
===== chmod en octales ===== | ===== chmod en octales ===== | ||
- | + | Para simplificar la realización estos cambios es posible utilizar | |
- | Para simplificar la realización estos cambios es posibleutilizar | + | |
Lectura tiene el valor de 4 | Lectura tiene el valor de 4 | ||
Línea 124: | Línea 140: | ||
Ejecución tiene el valor de 1 | Ejecución tiene el valor de 1 | ||
- | Teniendo esto en cuenta, | + | Teniendo esto en cuenta, se completen las ocho combinaciones del octal restantes |
< | < | ||
Línea 145: | Línea 161: | ||
chmod usuario=rw, | chmod usuario=rw, | ||
chmod usuario=rwx, | chmod usuario=rwx, | ||
+ | |||
+ | Normalmente, | ||
+ | |||
+ | <code bash> | ||
+ | chmod 755 / | ||
+ | </ | ||
+ | |||
+ | Sin embargo, si deseas establecer unos permisos más astringentes (por ejemplo, para impedir que los demás usuarios de texto-plano listar el contenido de tu directorio ''/ | ||
+ | |||
+ | <code bash> | ||
+ | chmod 751 / | ||
+ | </ | ||
Un error que debemos prevenir cuidadosamente es el uso de chmod con comodines, pues esto puede provocar cambios de permisos de manera indiscriminada. | Un error que debemos prevenir cuidadosamente es el uso de chmod con comodines, pues esto puede provocar cambios de permisos de manera indiscriminada. | ||
- | Supongamos que queremos aplicar permisos a todos los archivos dentro de un directorio, y a todos los subdirectorios contenidos en él. Que todos los archivos dentro de nuestra carpeta ~/docs reciban permiso rw para nuestro propietario usuario y para el propietario grupo, y r para el propietario otros; en tanto para los directorios queremos que el usuario tenga permisos de rwx para poder ver los archivos y usarlos, en tanto que el grupo y otros tienen permisos de r-x), pero que los grupos tengan lectura y ejecución, mientras que los grupos también tengan dicho permiso. | + | Supongamos que queremos aplicar permisos a todos los archivos dentro de un directorio, y a todos los subdirectorios contenidos en él. Que todos los archivos dentro de nuestra carpeta |
Esto podría ser para restaurar los permisos como estaban originalmente. | Esto podría ser para restaurar los permisos como estaban originalmente. | ||
Línea 154: | Línea 182: | ||
Para ello podríamos correr. | Para ello podríamos correr. | ||
- | < | + | < |
cd ~/docs/ | cd ~/docs/ | ||
+ | find ~/docs/ -type d -print0 | xargs -0 chmod 755 | ||
find ~/docs/ -type f -print0 | xargs -0 chmod 664 | find ~/docs/ -type f -print0 | xargs -0 chmod 664 | ||
- | find ~/docs/ -type d -print0 | xargs -0 chmod 755 | ||
</ | </ | ||
- | En este ejemplo, el octal chmod 664 pone los permisos en -rw-rw-r-- (un conjunto de permisos común en sistemas similares a UNIX para las carpetas Documentos/, | + | En este ejemplo, el octal chmod 664 pone los permisos en '' |
- | En el caso de nuestra carpeta ~/ | + | El Octal chmod 660 pone los archivos |
- | < | + | En el caso de una carpeta con posesión (como la carpeta para las llaves '' |
- | cd ~ | + | |
- | find ~/ | + | |
- | find ~/ | + | |
- | </code> | + | |
- | El Octal chmod 660 pone los archivos en -rw-rw---- (para una carpeta de Dropbox/ por ejemplo) | + | <file bash> |
+ | chown -R $(whoami) ~/.gnupg/ | ||
+ | </ | ||
- | En el caso de una carpeta con posesión (como la carpeta | + | ...y luego otorgarle los permisos adecuados para la tarea que cumple esta carpeta |
- | < | + | < |
- | chown -R $(whoami) | + | find ~/ |
+ | find ~/.gnupg -type f -exec chmod 600 {} \ | ||
</ | </ | ||
- | ...y luego otorgarle los permisos adecuados | + | === Permisos |
+ | En el caso de tu carpeta | ||
- | < | + | < |
- | find ~/.gnupg -type f -exec chmod 600 {} \; | + | acthtml |
- | find ~/.gnupg -type d -exec chmod 700 {} \; | + | |
</ | </ | ||
+ | |||
+ | ...e bien poner a mano el octal **644** para poner los archivos como '' | ||
+ | |||
+ | <code bash> | ||
+ | cd / | ||
+ | find / | ||
+ | find / | ||
+ | </ | ||
+ | |||
+ |