Я зараз встановив 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
?
Слово попередження: якщо ви дозволите всім отримувати доступ до цієї папки, це означає, що хакери можуть отримати доступ до цієї папки, якщо вони отримають доступ до вашої системи. Ось чому краще створити групу допустимих користувачів і надати цій групі доступ для запису.