He cambiado la propiedad de mi archivo localhost /var/www/
y sus subcarpetas y le he dado permiso 777. Sin embargo, cada vez que agrego una nueva carpeta, la nueva carpeta no obtiene automáticamente ese permiso. ¿Cómo puedo dar permiso a una carpeta 777 para siempre de modo que si agrego una nueva carpeta o archivo obtenga el mismo permiso?
permissions
kamal
fuente
fuente
find . -type d -exec chmod 777 {} +
para cambiar todos los directorios a 777. Recuerde, debe iniciar sesión como root para obtener mejores resultados, y asegúrese de estar en la carpeta.Respuestas:
Los permisos para los archivos recién creados son fijados por umask
fuente
Puede usar la opción recursiva en cualquier momento.
sudo chown -R username /var/www
fuente
Como otros ya han mencionado , otorgar permisos 777
/var/www
es una muy mala idea, especialmente en producción.Una mejor solución sería otorgar permisos de escritura solo a los usuarios que necesiten modificar los archivos. Una de las formas de hacerlo es:
crear un nuevo grupo
agregar los usuarios que necesitan modificar los datos en
/var/www
ese grupocambiar recursivamente la propiedad de
/var/www
ese grupoconjunto
umask
de/var/www
archivos por lo que todo recién creados son propiedad del grupo que hemos creado.Otra opción sería usar ACL, nuevamente, para otorgar permisos de escritura solo a los usuarios que los necesiten.
Aquí hay instrucciones detalladas sobre serverfault .
En general, el servidor web u otros servicios de red o cuentas de usuario del sistema no deberían tener permisos de escritura para los archivos servidos por el servidor web, ya que esto abre la posibilidad de ejecución de código arbitrario.
fuente
Debería editar
/etc/apache/envvars
como root con el editor de su elección.Ejemplo: ALT+F2
gksudo gedit /etc/apache2/envvars
Ve al final del archivo y agrega una línea
umask XXX
.Donde umask es el opuesto binario del valor de permisos deseado.
Para 774 esto sería 003. Para 777 mala idea sería 000.
Salvar.
Reiniciar apache.
Ejemplo:
sudo apache2ctl restart
Esto solo afectará a los archivos / carpetas recién creados por el usuario de apache.
Nota adicional, leer y escribir es 6 en la ranura de usuario, grupo o cualquier persona.
fuente
Además, una solución "lista para usar" es configurar su servidor http para usar una carpeta diferente. Si usa Apache, simplemente edítelo en los archivos de configuración. De esta manera, no tiene que cambiar los permisos para / var / www, lo que puede ser una mala idea (posibles problemas de seguridad).
Y umask es la respuesta a tu pregunta. Se puede usar para restringir los privilegios predeterminados para carpetas y archivos recién creados. Y los desarrolladores de distribución tienden a usarlo para restringir el acceso a algunas carpetas del sistema.
fuente
Creo que desea tener acceso de escritura
/var/www
para modificar archivos y directorios. Creo que la mejor solución es instalarapache2-mpm-itk
y agregar en el archivo de configuración del host virtual/etc/apache2/sites-available/default
:y ejecutar de
chown your-username\: /var/www -Rv
esta manera apache para ese host virtual se ejecutará con su UID / GID y podrá editar archivos. Incluso los archivos creados por PHP tendrán su UID / GIDfuente