usuario una todos tabla sobre propietario permisos los dar carpetas carpeta cambiar archivos linux permissions folder chmod

una - permisos linux 777



¿Cómo configuro chmod para una carpeta y todas sus subcarpetas y archivos? (16)

Aquí hay otra forma de establecer directorios en 775 y archivos en 664.

find /opt/lampp/htdocs / /( -type f -exec chmod ug+rw,o+r {} /; /) , / /( -type d -exec chmod ug+rwxs,o+rx {} /; /)

Puede parecer largo, pero es genial por tres razones:

  1. Escanea a través del sistema de archivos solo una vez en lugar de dos veces.
  2. Proporciona un mejor control sobre cómo se manejan los archivos en comparación con cómo se manejan los directorios . Esto es útil cuando se trabaja con modos especiales como el bit adhesivo , que probablemente desee aplicar a directorios pero no a archivos.
  3. Utiliza una técnica directamente de las páginas del manual (ver más abajo).

Tenga en cuenta que no he confirmado la diferencia de rendimiento (si existe) entre esta solución y la de simplemente usar dos comandos de búsqueda (como en la solución de Peter Mortensen). Sin embargo, ver un ejemplo similar en el manual es alentador.

Ejemplo de la página de man find :

find / / /( -perm -4000 -fprintf /root/suid.txt %#m %u %p/n /) , / /( -size +100M -fprintf /root/big.txt %-10s %p/n /) Traverse the filesystem just once, listing setuid files and direc‐ tories into /root/suid.txt and large files into /root/big.txt.

Aclamaciones

¿Hay alguna forma de configurar chmod 755 para /opt/lampp/htdocs y todo su contenido, incluidas las subcarpetas y los archivos?

Además, en el futuro, si creo una nueva carpeta o archivo dentro de htdocs , ¿cómo se pueden configurar automáticamente los permisos de 755 ?

Esto funciona, pero solo para esta carpeta:

chmod 775 /opt/lampp/htdocs


Creo que Adam estaba preguntando cómo cambiar el valor de umask para todos los procesos que /opt/lampp/htdocs operar en el directorio /opt/lampp/htdocs .

La máscara de modo de creación de archivos del usuario (umask) se usa para determinar el permiso de archivo para los archivos recién creados. Se puede usar para controlar el permiso de archivo predeterminado para archivos nuevos.

por lo tanto, si va a usar algún tipo de programa ftp para cargar archivos en /opt/lampp/htdocs , debe configurar su servidor ftp para que use umask.

Si los archivos / directorios se crean, por ejemplo, por php, necesita modificar el código php

<?php umask(0022); // other code ?>

si va a crear nuevos archivos / carpetas desde su sesión de bash, puede establecer un valor de umask en su perfil de shell ~ / .bashrc O puede configurar umask en /etc/bashrc o /etc/profile para todos los usuarios. agrega lo siguiente al archivo: umask 022

Sample umask Values and File Creation Permissions If umask value set to User permission Group permission Others permission 000 all all all 007 all all none 027 all read / execute none

Y para cambiar los permisos de los archivos ya creados, puede usar find. Espero que esto ayude.


Desea asegurarse de que los archivos y directorios apropiados sean chmod-ed / permissions para que sean apropiados. Para todos los directorios que quieras.

find /opt/lampp/htdocs -type d -exec chmod 711 {} /;

Y para todas las imágenes, JavaScript, CSS, HTML ... bueno, no debes ejecutarlas. Asi que usa

chmod 644 img/* js/* html/*

Pero para todo el código lógico (por ejemplo, el código PHP), debe establecer permisos de tal manera que el usuario no pueda ver ese código:

chmod 600 file


El comando recursivo correcto es:

sudo chmod 755 -R /opt/lampp/htdocs

-R : cambia cada subcarpeta incluyendo la carpeta actual


Es muy sencillo.

En la Terminal vaya al administrador de archivos. Ejemplo: sudo nemo . Vaya /opt/ luego haga clic en Propiedades → Permiso . y luego Otro . Finalmente, cambie para crear y eliminar y acceso a archivos para leer y escribir y haga clic en el botón aplicar ... Y trabajar.


Es posible que desee considerar esta respuesta dada por nik en superusuario y usar "one chmod" para todos los archivos / carpetas como este:

chmod 755 $(find /path/to/base/dir -type d) chmod 644 $(find /path/to/base/dir -type f)


Hay dos respuestas para encontrar archivos y aplicarles chmod . El primero es find el archivo y aplicar chmod como encuentre (como lo sugiere @WombleGoneBad).

find /opt/lampp/htdocs -type d -exec chmod 755 {} /;

La segunda solución es generar la lista de todos los archivos con el comando find y suministrar esta lista al comando chmod (como lo sugiere @lamgesh).

chmod 755 $(find /path/to/base/dir -type d)

Ambas versiones funcionan bien siempre que el número de archivos devueltos por el comando de find sea ​​pequeño. La segunda solución se ve muy bien a la vista y más legible que la primera. Si hay un gran número de archivos, la segunda solución devuelve un error: la Argument list too long.

Así que mi sugerencia es

  1. Utilice chmod -R 755 /opt/lampp/htdocs si desea cambiar los permisos de todos los archivos y directorios a la vez.
  2. Utilice find /opt/lampp/htdocs -type d -exec chmod 755 {} /; Si el número de archivos que está utilizando es muy grande. La opción -type x busca solo un tipo específico de archivo, donde d se usa para encontrar el directorio, f para el archivo yl para el enlace.
  3. Use chmod 755 $(find /path/to/base/dir -type d) contrario
  4. Mejor usar el primero en cualquier situación.

Las otras respuestas son correctas, ya que chmod -R 755 establecerá estos permisos en todos los archivos y subcarpetas del árbol. Pero, ¿por qué demonios querrías ? Puede que tenga sentido para los directorios, pero ¿por qué establecer el bit de ejecución en todos los archivos?

Sospecho que lo que realmente desea hacer es establecer los directorios en 755 y dejar los archivos solos o establecerlos en 644. Para esto, puede usar el comando find . Por ejemplo:

Para cambiar todos los directorios a 755 ( drwxr-xr-x ):

find /opt/lampp/htdocs -type d -exec chmod 755 {} /;

Para cambiar todos los archivos a 644 ( -rw-r--r-- ):

find /opt/lampp/htdocs -type f -exec chmod 644 {} /;


Marque la opción -R

chmod -R <permissionsettings> <dirname>

En el futuro, puede ahorrar mucho tiempo consultando primero la página de manual:

man <command name>

Así que en este caso:

man chmod


Para Mac OS X 10.7 (Lion), es:

chmod -R 755 /directory

Y sí, como todos los demás dicen, ten cuidado al hacer esto.


Para establecer todas las subcarpetas (recursivamente) use -R

chmod 755 /folder -R

Y use umask para establecer el valor predeterminado en nuevas carpetas / archivos cd / carpeta umask 755


Puede utilizar -R con chmod para chmod recursivamente todos los archivos y subcarpetas.

Es posible que necesite sudo, ya que depende de que LAMP sea ​​instalado por el usuario actual u otro:

sudo chmod 755 -R /opt/lampp/htdocs


Si desea establecer permisos en todos los archivos a a+r , y todos los directorios a a+x , y hacer eso recursivamente a través del árbol de subdirectorios completo, use:

chmod -R a+rX *

La X (que es una X mayúscula, no una x pequeña) se ignora para los archivos (a menos que ya sean ejecutables para alguien), pero se usa para los directorios.


Utilizar:

sudo chmod 755 -R /whatever/your/directory/is

Sin embargo, ten cuidado con eso. Realmente puede hacerle daño si cambia los permisos de los archivos / carpetas incorrectos.


chmod -R 755 directory_name funciona, pero ¿cómo mantendrías los nuevos archivos en 755 también? Los permisos del archivo se convierten en el permiso predeterminado.


chmod 755 -R /opt/lampp/htdocs establecerá recursivamente los permisos. No hay forma de establecer los permisos para archivos automáticamente solo en este directorio que se crean después de configurar los permisos, pero puede cambiar los permisos de archivo predeterminados de todo el sistema con la configuración de umask 022 .