Я зараз встановив apache2 на Ubuntu і помітив, що папка / var / www захищена. Я можу просто sudoвсе, але бажаю просто дати йому доступ для запису.
Як я можу це зробити?
Я спробував, sudo chmod 7777 /var/wwwале не вийшло.
Я зараз встановив apache2 на Ubuntu і помітив, що папка / var / www захищена. Я можу просто sudoвсе, але бажаю просто дати йому доступ для запису.
Як я можу це зробити?
Я спробував, sudo chmod 7777 /var/wwwале не вийшло.
Відповіді:
Щоб найкраще ділитися з кількома користувачами, які мають змогу писати /var/www, слід призначити загальну групу. Наприклад, типовою для веб-контенту для Ubuntu та Debian є група за замовчуванням www-data. Переконайтеся, що всі користувачі, яким потрібен доступ для запису, /var/wwwперебувають у цій групі.
sudo usermod -a -G www-data <some_user>
Потім встановіть правильні дозволи на / var / www.
sudo chgrp -R www-data /var/www
sudo chmod -R g+w /var/www
Крім того, ви повинні зробити каталог та всі каталоги під ним "встановити GID", так що всі нові файли та каталоги, створені під /var/www, належать www-dataгрупі.
sudo find /var/www -type d -exec chmod 2775 {} \;
Знайдіть усі файли /var/wwwта додайте дозвіл на читання та запис власника та групи:
sudo find /var/www -type f -exec chmod ug+rw {} \;
Можливо, вам доведеться вийти з системи та увійти знову, щоб мати змогу вносити зміни, якщо ви редагуєте дозвіл на власний обліковий запис.
sudo chmod -R g+wі не g+rwчи g+rwX?
Існує простіший спосіб зробити це, спробуйте виконати цю команду.
sudo chmod -R 757 /var/www
По суті, chmodкоманда змінює дозволи та -Rперемикач впливає на всіх користувачів. Тоді це просто надання правильних дозволів на використання.
chmod $permissions -R $fileне вірно…
sudo chmod -R 757 /var/www
Ви також можете повторити те, що jtimberman запропонував, використовуючи списки контролю доступу . Команда setfacl приймає -s для заміни існуючого ACL або -m для зміни його; -R, щоб зробити ACL каталогів рекурсивними; і -d зробити вказані налаштування за замовчуванням, що корисно, якщо ви очікуєте майбутніх облікових записів користувачів.
Вони просто встановлюють дозволи, як для користувача, групи, інших та маскування за допомогою chmod:
setfacl -m u::rwx, g::r-x, o::---, m:rwx DIRECTORY
І це може бути, як ви це зробите для вказаного користувача чи його / її групи:
setfacl -m u:USERNAME:rwx, g:USERNAME:r-x DIRECTORY
І звичайно, сила полягає в тому, що ви можете призначити будь-якого конкретного користувача, кількох користувачів тощо, і все це не потребуючи змін ваших налаштувань групи. І на відміну від chmod, якщо ви хочете, щоб деякі групи мали доступ до однієї директорії, а інші групи мали доступ лише до іншої, це реально можливо за допомогою setfacl. Нарешті, щоб переглянути ACL- адреси каталогів, запустіть getfacl :
getfacl DIRECTORY
Ви можете вказати -R для перегляду ACL для підкаталогів або -d для перегляду за замовчуванням.
Швидка та проста відповідь -
а. Додайте ( -a ) свого користувача ( ім'я користувача ) до www-data групи ( -G ) .
sudo usermod -a -G www-data user_name
б. Дайте групі ( g ) ті ж ( = ) дозволи, що й користувачеві користувач ( u ) / var / www рекурсивно ( -R ).
sudo chmod -R g=u /var/www
Пояснення: Apache 2 на Debian / Ubuntu встановлює www-дані користувача та групи як власника / var / www . Типовими дозволами для користувача є "Переглянути та змінити вміст", однак група може лише "Переглянути вміст". Отже, додавання себе до групи даних www та надання йому тих же дозволів, що і користувач wwww-data, - це швидкий і простий спосіб дістати розвиток. Я роблю це для всіх моїх локальних середовищ (ПК / ноутбуків) для веб-розробок.
Можна просто спробувати chmod 0777 /var/www?
Слово попередження: якщо ви дозволите всім отримувати доступ до цієї папки, це означає, що хакери можуть отримати доступ до цієї папки, якщо вони отримають доступ до вашої системи. Ось чому краще створити групу допустимих користувачів і надати цій групі доступ для запису.