Як дати дозвіл на читання в папці та її підпапках та файлах?


10

Я змінив право власності на мій файл localhost на /var/www/його підпапки та надав йому дозвіл 777. Однак, коли я додаю нову папку до неї, нова папка автоматично не отримує цього дозволу. Як я можу назавжди надати папці 777 дозвіл, якщо я додаю нову папку чи файл, вона отримає такий самий дозвіл?


4
БУДЬ ласка, прочитайте це Причини, чому / var / www НЕ
БУДЕ

777 - це погана ідея . Але використання ACL може підходити дуже добре. Чи прочитаєте ви, будь ласка, це рішення на ACL, щоб побачити, чи добре воно працює для вас?

1
Так само для chmod усіх каталогів, які ви можете використовувати find . -type d -exec chmod 777 {} +для зміни всіх каталогів на 777. Пам'ятайте, що для кращих результатів ви повинні увійти в систему як root, і переконайтеся, що ви знаходитесь в папці.
Redy S

Відповіді:


1

Дозволи для новостворених файлів встановлюються umask


Ви можете написати команду для створення / var / www / writable та надання їй дозволу таким чином, щоб я отримав такий же дозвіл (777) для сайту, який я нещодавно додав у нього.
kamal

1
Дати дозвіл веб-серверу 777 - це не добре.
saji89

Не могли б ви додати більше деталей.
saji89

@ Войтех Трефний. Наразі посилання не працює. Він каже, що 404 не знайдено.
all4naija

12

Ви можете використовувати рекурсивний варіант будь-коли. sudo chown -R username /var/www


Вам потрібно більше оновлень!
Шехаряр

10

Як і інші вже згадували інші , надання 777 дозволів на /var/wwwдійсно погана ідея, особливо у виробництві.

Кращим рішенням буде надання дозволу на запис лише тим користувачам, яким потрібно змінювати файли. Один із способів зробити це:

  • створити нову групу

  • додайте користувачів (користувачів), яким потрібно змінити дані в /var/www до цієї групи

  • рекурсивно змінюють право власності на /var/www на цю групу

  • встановити umaskна/var/www так що все новостворені файли належать групі ми створили.

Іншим варіантом було б знову використовувати ACL, щоб надавати дозволи на запис лише тим користувачам, які їм потрібні.

Ось докладні вказівки щодо сервера за замовчуванням .

Як правило, веб-сервер або інші мережеві послуги або облікові записи системних користувачів не повинні мати дозволу на запис файлів, що обслуговуються веб-сервером, оскільки це відкриває можливість довільного виконання коду.


2

Ви повинні редагувати /etc/apache/envvarsяк root із редактором, який ви вибрали.

Приклад: ALT+F2
gksudo gedit /etc/apache2/envvars

Перейдіть до кінця файлу та додайте рядок umask XXX.

Де umask - це двійкова протилежність бажаному значенню дозволів.
Для 774 це буде 003. Для поганої ідеї 777 це було б 000.

Зберегти.

Перезапустіть апаш.

Приклад: sudo apache2ctl restart

Це вплине лише на файли / папки, які нещодавно створив користувач apache.

Додаткова примітка "Прочитати та записати" - це 6 в слоті користувача, групи чи будь-кого.


0

Крім того, деяким "нестандартним" рішенням є налаштування вашого http-сервера для використання різних папок. Якщо ви використовуєте Apache, просто відредагуйте його конфігураційні файли. Таким чином, вам не доведеться змінювати дозволи для / var / www witch може бути поганою ідеєю (можливі проблеми безпеки).

І umask - це відповідь на Ваше запитання. Його можна використовувати для обмеження привілеїв за замовчуванням для новостворених папок і файлів. І розробники дистрибутивів, як правило, використовують його для обмеження доступу до деяких системних папок.


0

Я думаю, ви хочете мати доступ для запису, /var/wwwщоб змінювати файли та файли. Я думаю, що найкращим рішенням є встановлення apache2-mpm-itkта додавання у віртуальний конфігураційний файл хоста /etc/apache2/sites-available/default:

<IfModule mpm_itk_module>
    AssignUserId your-username your-group
</IfModule>

і запустити chown your-username\: /var/www -Rvтаким чином apache для цього віртуального хоста буде працювати з вашим UID / GID, і ви зможете редагувати файли. Навіть файли, створені PHP, матимуть ваш UID / GID

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.