Cada vez que creo un nuevo archivo desde "eclipse", necesito ejecutar estas dos líneas de código para obtener el permiso de lectura/escritura:
chmod -R 775 /var/www/folder/filename.extension
y/o
sudo chown -R www-data:www-data /var/www
Y, si copio algunos archivos en esa carpeta del servidor y accedo a ellos desde la URL del navegador como:
localhost/folder/filename.extension
Recibo un error de permiso del servidor Apache.
¿No hay alguna manera de poder deshacerme de este problema?
*Nota:El error principal ocurre cuando mi move_uploaded_file()
función intenta mover el archivo al /var/www/MyProject/
directorio.
Respuesta1
Utilice el bit SGID.
Haga esto una vez y olvídese de este problema:
chmod g+s /var/www/folder
Quizás quieras hacer lo mismo con todas las subcarpetas:
find /var/www/folder -type d | xargs chmod g+s
y, por si acaso:
find /var/www/folder -type d | xargs chgrp www-data
Ahora todos los archivos que se creen /var/www/folder/
pertenecerán al grupo propietario de la carpeta que los contiene, pase lo que pase. Esto le permitirá crear cualquier archivo o carpeta sin preocuparse de que no pertenezcan, por ejemplo, alwww-datosgrupo, que es lo que quieres.
Tenga en cuenta que esto funcionará solo para archivos o carpetas que se creen dentro del directorio. Si los archivos se crean en otro lugar y se mueven al árbol de directorios, aún deberá cambiar la propiedad manualmente.
Ejemplo:
# Create folder that belongs to www-data group
$ mkdir test
$ chown john.www-data test
$ ls -l
drwxr-xr-x 2 john www-data 4096 Jun 17 10:14 test
# Create a file, check the ownership
$ touch test/file1
$ ls -l test/
-rw-r--r-- 1 john users 0 Jun 17 10:16 file1
# Set the SGID bit
$ chmod g+s test
$ ls -l
drwxr-sr-x 2 john www-data 4096 Jun 17 10:19 test
# Create a file, check the ownership
$ touch test/file2
$ ls -l test/
-rw-r--r-- 1 john users 0 Jun 17 10:18 file1
-rw-r--r-- 1 john www-data 0 Jun 17 10:19 file2
Más informaciónaquí.
Respuesta2
Puede utilizar ACL predeterminadas para asignar permisos de usuarios y grupos a nuevos archivos y directorios:
setfacl -dR u:domain:rwx,g:www-data:rwx /var/www/folder/filename.extension
Respuesta3
Primero, me gustaría señalar que se debe ser más específico al hacer preguntas; por ejemplo, qué sistema operativo o distribución de Linux está utilizando, ya que eso puede acelerar enormemente el proceso de encontrar una solución. Dicho esto, puede comenzar a solucionar problemas cambiando la carpeta específicapropiedadyUAC(Control de acceso de usuario) de forma recursiva, así:
chown domain:www-data /var/www/folder -chR
chmod 775 /var/www/folder -cR
NOTA: Al excluir la barra diagonal final(/)al final del nombre de la carpeta, sus cambios se aplicarán a la carpeta y a todo su contenido.
En cuanto a los errores de permiso al acceder al archivo (¿script?) en el navegador, debe asegurarse de que su usuario tenga los permisos correctos para publicar archivos en formato apache
. Eso debería solucionarse editando su /etc/httpd/*/httpd.conf
archivo y agregando:
User domain
Group www-data