¿Por qué una carpeta debe ser ejecutable?


29

Permiso para archivos:

chmod 664 myFile // rw-rw-r--

Y para carpetas:

chmod 774 myFolder // rwxrwxr--

Si solo uso el permiso "leer y escribir", las carpetas no mostrarán su contenido.

¿Cuál es la razón de esto?

Respuestas:


14

Como no puede 'ejecutar' un directorio, el bit de ejecución se ha utilizado mejor. El bit de ejecución en un directorio le permite acceder a elementos que están dentro del directorio, incluso si no puede enumerar el contenido de los directorios.

$ mkdir -p dir/
$ echo 'Hello World!' > dir/file
$ chmod 000 dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
cat: dir/file: Permission denied
$ chmod +x dir/
$ ls -al dir/
ls: cannot open directory dir: Permission denied
$ cat dir/file
Hello World!

Desde la página del chmodmanual:

Las letras rwxXst seleccionan bits de modo de archivo para los usuarios afectados: leer (r), escribir (w), ejecutar (o buscar directorios) (x) , ejecutar / buscar solo si el archivo es un directorio o ya tiene permiso de ejecución para algunos usuario (X), establecer ID de usuario o grupo en ejecución (s), bandera de eliminación restringida o bit fijo (t).


42

Los directorios (normalmente no se denominan carpetas en * nix) tienen un significado diferente para los bits de permiso que los archivos normales.

Para directorios, escribir permite crear nuevos archivos dentro de él.

Leer le permite enumerar los archivos que contiene.

Ejecutar le permite ingresarlo y acceder a archivos (u otros directorios) dentro.


2
Una forma fácil de recordar es imaginar la ejecución como hacer doble clic en algo. Cuando hace doble clic en el directorio (o cd) lo ingresa (ejecuta).
John T

Tenga en cuenta que el simple acceso de escritura en un directorio no le permitirá crear nuevos archivos. También necesita el permiso de ejecución en el directorio para hacerlo.
Matthias Braun

¿"Acceder a archivos (u otros directorios)" significa que puedo ver los archivos, es decir, enumerarlos pero no puedo verlos o puedo ver los archivos, es decir, enumerarlos y leerlos también?
vadasambar


1

El bit "ejecutar" en realidad significa "buscar" cuando se aplica a directorios (desde man chmod). Esto parece razonable ya que ejecutar no tiene significado para un directorio.


0

El xbit en una carpeta se refiere a indexación / búsqueda de directorio / listado; ninguno de esos es posible si mantiene un poco bajo.

Aquí hay un ejemplo de su uso: si desea tener un usuario con permisos de lectura limitados en cada directorio, excepto en su hogar, por ejemplo /home/dummy, debe hacer /y configurar /homeel xbit, de lo contrario, ni siquiera podrá acceder a su directorio de inicio.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.