Проблема с разрешениями пользователей Linux

Каждый раз, когда я создаю новый файл из «eclipse», мне нужно запустить эти две строки кода, чтобы получить r / w-разрешение:

chmod -R 775 /var/www/folder/filename.extension 

И / или

 sudo chown -R www-data:www-data /var/www 

И, если я скопирую некоторые файлы по этой папке сервера и получаю доступ к ней из URL-адреса браузера, например:

 localhost/folder/filename.extension 

Я получаю ошибку разрешения от Apache Server.

Разве нет способа, чтобы я мог избавиться от этой проблемы?

* Примечание . Основная ошибка возникает, когда моя move_uploaded_file() пытается переместить файл в каталог /var/www/MyProject/ .

Используйте бит SGID.

Сделайте это один раз и забудьте об этой проблеме:

 chmod g+s /var/www/folder 

Возможно, вы захотите сделать то же самое для всех подпапок:

 find /var/www/folder -type d | xargs chmod g+s 

и, на всякий случай:

 find /var/www/folder -type d | xargs chgrp www-data 

Теперь все файлы, созданные в /var/www/folder/ будут принадлежать группе, которой принадлежит содержащая папка, независимо от того, что. Это позволит вам создавать любые файлы или папки, не опасаясь, что они не будут принадлежать, например, группе www-data , что вам нужно.

Обратите внимание, что это будет работать только для файлов или папок, созданных в каталоге. Если файлы создаются в другом месте и перемещаются в дерево каталогов, вам все равно необходимо вручную изменить владельца.

Пример:

 # 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 

Больше информации здесь .

Вы можете использовать ACL по умолчанию для назначения прав доступа пользователей и групп к новым файлам и каталогам:

 setfacl -dR u:domain:rwx,g:www-data:rwx /var/www/folder/filename.extension 

Во-первых, я хотел бы указать, что это должно быть более конкретным, когда вы задаете вопросы; например, какую ОС, дистрибутив Linux вы используете, так как это ускорит процесс поиска решения. Сказав это, вы можете начать поиск и устранение неисправностей путем рекурсивного изменения права собственности на определенную папку и UAC (User Access Control), например:

 chown domain:www-data /var/www/folder -chR chmod 775 /var/www/folder -cR 

ПРИМЕЧАНИЕ . Исключая конечную косую черту (/) в конце имени папки, ваши изменения будут применяться к папке и всему ее содержимому.


Что касается ошибок разрешения при доступе к файлу (скрипту?) В браузере, вы должны убедиться, что у вашего пользователя есть правильные разрешения на обслуживание файлов в apache . Об этом следует позаботиться, отредактировав /etc/httpd/*/httpd.conf и добавив:

 User domain Group www-data