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/09/01 14:55] – peron | permisos_de_archivo_y_directorio [2023/04/15 17:59] (actual) – [Usar chmod para cambiar los permisos] peron | ||
---|---|---|---|
Línea 4: | Línea 4: | ||
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), | + | 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 | + | ===== Estructura básica |
- | **Permiso de Lectura (r, o " | ||
- | **Permiso | + | Los permisos |
- | **Permiso de Ejecución (x, o " | + | * **Permiso de Lectura ('' |
+ | * **Permiso de Escritura ('' | ||
+ | * **Permiso de Ejecución ('' | ||
Las letras que identifican de los atributos son los caracteres de los permisos, y son: | Las letras que identifican de los atributos son los caracteres de los permisos, y son: | ||
- | **r** " | + | | **'' |
- | + | | **'' | |
- | **w** " | + | |**'' |
- | **x** " | + | |
Para ver los atributos de un directorio, podríamos usar el comando "**ls -l**", que nos informará de los mismos. | Para ver los atributos de un directorio, podríamos usar el comando "**ls -l**", que nos informará de los mismos. | ||
Línea 29: | Línea 28: | ||
- | Comprendido esto, debemos conocer cómo cambiar estos permisos. A tal fin se utiliza el comando chmod (" | + | 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 importante.txt, | + | Si tuviésemos que prevenir la modificación del archivo |
<file bash> | <file bash> | ||
chmod -w importante.txt | chmod -w importante.txt | ||
</ | </ | ||
- | + | ===Permiso de ejecución=== | |
- | Si queremos hacer que el script llamado instalador.sh pueda ejecutarse, debemos ingresar: | + | Si queremos hacer que el [[script|guion]] |
<file bash> | <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> | <file bash> | ||
Línea 50: | Línea 49: | ||
</ | </ | ||
- | 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> | <file bash> | ||
Línea 61: | 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 136: | Línea 134: | ||
===== chmod en octales ===== | ===== chmod en octales ===== | ||
- | Para simplificar la realización estos cambios es posible utilizar también una nomenclatura opcional denominada //octal//. Ésta nos evitará tener que usar los atributos rwx, y los designadores de propietario usuario-grupo-otros. La representación en octales para chmod es muy sencilla si seguimos la siguiente regla nemotécnica: | + | Para simplificar la realización estos cambios es posible utilizar también una nomenclatura opcional denominada //octal//. Ésta nos evitará tener que usar los atributos |
Lectura tiene el valor de 4 | Lectura tiene el valor de 4 | ||
Línea 170: | Línea 168: | ||
</ | </ | ||
- | 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 /home, pero permitir a los distintos programas [[servidor|servidores]] de [[gopher|gopher]] y [[uso_de_html|www]] puedan acceder a contenido localizado en sus respectivas subdirectorios, | + | 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> | <code bash> | ||
Línea 178: | Línea 176: | ||
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 184: | Línea 182: | ||
Para ello podríamos correr. | Para ello podríamos correr. | ||
- | <file bash> | + | <code bash> |
cd ~/docs/ | cd ~/docs/ | ||
- | find ~/docs/ -type f -print0 | xargs -0 chmod 664 | ||
find ~/docs/ -type d -print0 | xargs -0 chmod 755 | find ~/docs/ -type d -print0 | xargs -0 chmod 755 | ||
- | </file> | + | find ~/docs/ -type f -print0 | xargs -0 chmod 664 |
+ | </code> | ||
- | 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 |
- | <file bash> | + | En el caso de una carpeta con posesión (como la carpeta para las llaves |
- | cd ~ | + | |
- | find ~/ | + | |
- | find ~/ | + | |
- | </ | + | |
- | + | ||
- | El Octal chmod 660 pone los archivos en -rw-rw---- (para una carpeta de Dropbox/ por ejemplo) | + | |
- | + | ||
- | En el caso de una carpeta con posesión (como la carpeta para las llaves ~/.gnupg/, deberíamos hacer lo siguiente: primero aseguramos que los contenidos de la carpeta nos pertenezcan: | + | |
<file bash> | <file bash> | ||
Línea 208: | Línea 198: | ||
</ | </ | ||
- | ...y luego otorgarle los permisos adecuados para la tarea que cumple esta carpeta .gnupg/ en particular: | + | ...y luego otorgarle los permisos adecuados para la tarea que cumple esta carpeta |
- | <file bash> | + | <code bash> |
- | find ~/.gnupg -type f -exec chmod 600 {} \; | + | |
find ~/.gnupg -type d -exec chmod 700 {} \; | find ~/.gnupg -type d -exec chmod 700 {} \; | ||
- | </file> | + | find ~/.gnupg -type f -exec chmod 600 {} \ |
+ | </ | ||
+ | |||
+ | === Permisos para la página web === | ||
+ | En el caso de tu carpeta '' | ||
+ | |||
+ | <code bash> | ||
+ | acthtml | ||
+ | </ | ||
+ | |||
+ | ...e bien poner a mano el octal **644** para poner los archivos como '' | ||
+ | |||
+ | <code bash> | ||
+ | cd / | ||
+ | find / | ||
+ | find / | ||
+ | </code> | ||
+ |