Найкращі дозволи / власність для кореня документа апаша


14

Мені потрібна допомога щодо встановлення правильних дозволів або права власності на корінь документа апаш. Ось що мені потрібно:

  • різні веб-сайти, що зберігаються в /var/www/html/<site>
  • двоє користувачів повинні оновлювати / керувати веб-сайтами через ssh
  • право власності має бути іншим, ніж користувач apache (для безпеки)

Як я можу це зробити? На даний момент усі файли можна записати у всьому світі, що не добре. Сервер працює під управлінням CentOS 5.5

Спасибі


Більш детальну відповідь з іншими варіантами закріплення докроута
Quinn Comendant

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

Відповіді:


22

Створіть нову групу

groupadd webadmin

Додайте своїх користувачів до групи

usermod -a -G webadmin user1
usermod -a -G webadmin user2

Змініть право власності на каталог сайтів

chown root:webadmin /var/www/html/

Змінення дозволів каталогу сайтів

chmod 2775 /var/www/html/ -R

Тепер будь-хто може читати файли (включаючи користувача apache), але лише root та webadmin можуть змінювати їх вміст.


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

Скопійовані файли підтримують дозволи / права власності. Дозволу на файли за замовчуванням для нових файлів обробляється umaskкомандою. Більше інформації тут osr507doc.sco.com/uk/OSUserG/_default_perms_new_file.html
Енді

3
ви можете зробити dir setgid webadmin, щоб допомогти з новими файлами
covener

1
^ +1. Швидкий шлях був би: >> chmod 2775 -R / var / www / html /
Джеймс Броудхед,

@James ta, оновлено
Енді

2

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

Тож покладіть acl до рядка розділу в / etc / fstab або перезавантажте за допомогою mount -o remount, acl / mnt / xy, а потім надайте право власності на ваш веб-каталог нікому: нікому. Chmod до 770, і використовуйте setfacl для надання дозволу на запис лише тим папкам, які це потребують, наприклад. надати www-data (або користувачеві, на якому працює ваш веб-сервер), дозволяти писати папки для завантаження, а також надавати дозволи власного користувача на весь каталог.

mkdir dir
chown nobody:nobody dir
setfacl -m u:www-data:r-x,d:u:www-data:r-x dir
setfacl -m u:www-data:rwx,d:u:www-data:rwx dir/upload
setfacl -m u:youruser:rwx,d:u:youruser:rwx dir

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

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