permisos_de_archivo_y_directorio

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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] peronpermisos_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, y estos pueden contener archivos. Puedes disponer de tus directorios y ficheros en texto-plano.xyz libremente. Los sistemas operativos similares UNIX disponen de una estructura de directorios, y estos pueden contener archivos. Puedes disponer de tus directorios y ficheros en texto-plano.xyz libremente.
  
-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 "permisos de uso". ¡Pero puedes alterar estos permisos de funcionamiento y limitarlos, según tus propias necesidades de seguridad y privacía!+> Tanto tus directorios como tus archivos normalmente son visibles y evidentes para todos los usuarios del sistema compartido. Esto depende de lo que llamamos "permisos de uso". ¡Pero puedes alterar estos permisos de funcionamiento y limitarlos, según tus propias necesidades de seguridad y privacía!
  
-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), los usuarios comunes, u otros grupos de usuario diferentes, podrás tener una experiencia más segura y privada en el entorno compartido. +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), los usuarios comunes, u otros grupos de usuarios diferentes, podrás tener una experiencia más segura y privada en el entorno compartido.
-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.+===== Estructura básica de permisos en archivos =====
  
-**Permiso de Lectura (r, o "read")**: Este permiso nos permite "leer" o "ver" el contenido del archivo. 
  
-**Permiso de Escritura (w, o "write")**: Este permiso nos permite "modificar" el archivo escribiendo en el discoPodremos agregarsobrescribir o directamente borrar su contenido.+Los permisos de uso del archivo describen el accionar que podemos contemplar con elosDebemos tener en claro los tres atributos básicos que nuestros archivos puede tener: lecturaescritura y ejecución.
  
-**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 (y debemos también tener acceso a su intérprete). Un programa compilado sólo necesita ser de lectura.+  * **Permiso de Lectura (''r'', o "read")**: Este permiso nos permite "leer" o "ver" el contenido del archivo. 
 +  * **Permiso de Escritura (''w'', o "write")**: Este permiso nos permite "modificar" el archivo escribiendo en el disco. Podremos agregar, sobrescribir o directamente borrar su contenido. 
 +  * **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 (y debemos también tener acceso a su intérprete). Un programa compilado sólo necesita ser de lectura.
  
 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** "read", quiere decir lectura, +**''r''** |"read", quiere decir lectura, | 
- +**''w''** |"write", quiere decir escritura, | 
-**w** "write", quiere decir escritura, +|**''x''** |"eXecute", quiere decir ejecución |
-**x** "eXecute", quiere decir ejecución+
  
 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 ("change mode", o cambiar modo). Con él podremos agregar o quitarle permisos a uno o mas archivos con + (mas) o – (menos). +Comprendido esto, debemos conocer cómo cambiar estos permisos. A tal fin se utiliza el comando chmod ("change mode", o cambiar modo). Con él podremos agregar o quitarle permisos a uno o mas archivos con ''+'' (mas) o '''' (menos). 
- +===Permiso de escritura=== 
-Si tuviésemos que prevenir la modificación del archivo importante.txt, podremos hacerlo quitándole a este archivo su permiso de escritura mediante el comando chmod:+Si tuviésemos que prevenir la modificación del archivo ''importante.txt'', podremos hacerlo quitándole a este archivo su permiso de escritura mediante el comando **chmod**:
  
 <file bash> <file bash>
 chmod -w importante.txt chmod -w importante.txt
 </file> </file>
- +===Permiso de ejecución=== 
-Si queremos hacer que el script llamado instalador.sh pueda ejecutarse, debemos ingresar:+Si queremos hacer que el [[script|guion]] llamado ''instalador.sh'' pueda ejecutarse, debemos ingresar:
  
 <file bash> <file bash>
 chmod +x instalador.sh chmod +x instalador.sh
 </file> </file>
- +===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:
 </file> </file>
  
-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 ''='' 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.
  
 <file bash> <file bash>
Línea 61: Línea 60:
 En el caso de los directorios, el procedimiento es un poco diferente, pero sigue los mismos rudimentos generales. Tendremos los mismo tres permisos, pero el significado operativo será ligeramente diferente: En el caso de los directorios, el procedimiento es un poco diferente, pero sigue los mismos rudimentos generales. Tendremos los mismo tres permisos, pero el significado operativo será ligeramente diferente:
  
-**Permiso de lectura en un directorio**: Si un directorio tiene permiso de lectura, podremos ver la lista de archivos contiene dicho directorio (por ejemplo, usar con el directorio el comando “ls", listar directorio). Es importante recalcar que contar con permiso de lectura en un directorio no significa que podamos leer el contenido de los archivos que están dentro de él, ya que para ello está el permiso de lectura del archivo. +  * **Permiso de lectura en un directorio**: Si un directorio tiene permiso de lectura, podremos ver la lista de archivos contiene dicho directorio (por ejemplo, usar con el directorio el comando “ls", listar directorio). Es importante recalcar que contar con permiso de lectura en un directorio no significa que podamos leer el contenido de los archivos que están dentro de él, ya que para ello está el permiso de lectura del archivo. 
- +  **Permiso de escritura en un directorio**: Con el permiso de escritura de directorio podremos agregar, borrar o mover archivos al directorio
-**Permiso de escritura en un directorio**: Con el permiso de escritura de directorio podremos agregar, borrar o mover archivos al directorio+
  
-**Permiso de ejecución en un directorio**: Ejecución te permite usar el nombre del directorio cuando estas accediendo a archivos en ese directorio, es decir este permiso lo hace que se tome en cuenta en búsquedas realizadas por un programa. Por ejemplo, un directorio sin permiso de ejecución no seria revisado por el comando find ("buscar")+  * **Permiso de ejecución en un directorio**: Ejecución te permite usar el nombre del directorio cuando estas accediendo a archivos en ese directorio, es decir este permiso lo hace que se tome en cuenta en búsquedas realizadas por un programa. Por ejemplo, un directorio sin permiso de ejecución no seria revisado por el comando ''find'' ("buscar")
  
 ===== 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 ''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:
  
     Lectura tiene el valor de 4     Lectura tiene el valor de 4
Línea 170: Línea 168:
 </code> </code>
  
-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, podrías utilizar;+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, podrías utilizar;
  
 <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 ''~/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.
  
 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/, Música/, Vídeos/ y Escritorio/).+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/''''Música/''''Vídeos/'' ''Escritorio/'').
  
-En el caso de nuestra carpeta ~/public_html/ podríamos utilizar el octal **644** para poner los archivos como -rw-r--r--:+El Octal chmod 660 pone los archivos en ''-rw-rw----'' (para una carpeta de ''Dropbox/'' por ejemplo)
  
-<file bash> +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:
-cd ~ +
-find ~/public_html/ -type f -print0 | xargs -0 chmod 644 +
-find ~/public_html/ -type d -print0 | xargs -0 chmod 755 +
-</file> +
- +
-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:
 </file> </file>
  
-...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 ''.gnupg/'' en particular:
  
-<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 {} \ 
 +</code> 
 + 
 +=== Permisos para la página web === 
 +En el caso de tu carpeta ''~/public_html/'' podrás utilizar el programa 
 + 
 +<code bash> 
 +acthtml 
 +</code> 
 + 
 +...e bien poner a mano el octal **644** para poner los archivos como ''-rw-r--r--'', con: 
 + 
 +<code bash> 
 +cd /home/$USER/ 
 +find /home/$USER/public_html/ -type d -print0 | xargs -0 chmod 755 
 +find /home/$USER/public_html/ -type f -print0 | xargs -0 chmod 644 
 +</code> 
 + 
  • permisos_de_archivo_y_directorio.1630508100.txt.gz
  • Última modificación: 2021/09/01 14:55
  • por peron