Chmod para permitir permisos de lectura y escritura para el directorio

62

He creado directorios en la raíz. Estoy buscando el chmodcomando para permitir que todos los usuarios lean y escriban permisos en un directorio específico. Lo hice chmod 775para un archivo pero necesito esto para un directorio. Esto incluye permisos en todos los archivos y subdirectorios.

chrissygormley
fuente

Respuestas:

34

0775rara vez es correcto para un archivo. Lo siguiente agregará los permisos deseados apropiados al tipo apropiado, sin perturbar otros permisos existentes:

find somedir \( -type d -exec chmod u+rwx,g+rwx,o+rx {} \; -o -type f -exec chmod u+rw,g+rw,o+r {} \; \)

Vea la página del manual para encontrar para ayudar a descifrar eso.

Ignacio Vazquez-Abrams
fuente
48

Para todos los usuarios tener acceso de lectura y escritura, eso sería 0777un poco peligroso, especialmente si está ejecutando un servidor web. Como @unwind dijo:

chmod -R 0777 /mydirectory Permitirá a todos los usuarios acceso de lectura y escritura a todos los archivos y carpetas dentro de ese directorio

Dependiendo de su propósito, es posible que desee leer sobre bits fijos, que permiten a todos los usuarios crear nuevos archivos, pero no eliminar ni editar otros archivos en un directorio:

chmod +t /mydirectory

Además, en caso de que no lo sepa man chmod, aparecerá la página del manual del chmodcomando, que puede buscar el texto "recursivo" escribiendo/recursive


fuente
15

Así no es como funciona el modelo de protección Unix, no puede establecer permisos de forma recursiva. Debe configurarlos en cada directorio, todo el camino "hacia abajo".

Por supuesto, puede hacer la configuración de forma recursiva, pero eso solo significa "revisar y establecer estos permisos en todos los archivos y carpetas a continuación", que no es cómo entiendo su pregunta.

Para hacerlo, use la opción -R para chmod:

$ chmod -R 0755 /my-cool-directory
relajarse
fuente
@unwind: me refiero a cada archivo y subdirectorio de un directorio que chmod tiene permiso de lectura y escritura para todos. ¿Es eso lo que hace este comando? Gracias
1
Cuando pongo -r antes del 0755 obtengo 0755 - no existe tal archivo o directorio ... poner el -r después resuelve mi problema.
Tim Mottram
"hacer". jajaja bonito.
ytpillai