Проблеми з дозволом FTP та Apache


10

У мене виникають проблеми щодо того, який користувач повинен володіти моїм каталогом www - ftp чи apache? Якщо встановлено для ftp користувача, користувач може додавати, видаляти та легко змінювати файли, але дії файлової системи php генерують помилки, позбавлені дозволу (звичайно, тому що вони вимагають, щоб користувач був апашеним). Якщо ж, www-каталог заданий апашем, ftpuser не зможе виконати деякі дії, такі як модифікація та видалення файлів. Хтось із яких-небудь стикався з подібною проблемою? У чому виправлення? Дякую

Відповіді:


12

Це для чого групи.

Ви можете додати ftpкористувача до apacheгрупи, і навпаки. Або ще краще, ви можете додати їх до третьої групи, яку ви створили спеціально для цієї мети.

напр

# groupadd моя група
# useradd -G mygroup ftp
# useradd -G mygroup apache
# chown -R: mygroup / var / www
# chmod -R g + rw / var / www

Ці команди виконують наступне:

  1. Створює нову групу "моя група"
  2. Додає ftp користувача до моєї групи
  3. Додає користувача apache до моєї групи
  4. Рекурсивно надає групову власність вмісту / var / www / моїй групі
  5. Рекурсивно надає групі для читання та запису документів до вмісту / var / www /

Вам просто потрібно переконатися, що файли, додані в майбутньому, належать до групи "mygroup" та мають відповідні дозволи для apache та ftp для їх читання / запису.


3
Поєднання " find /var/www -type d -print0 | xargs -0 chmod g+s /var/www" з umask 002 гарантуватиме, що нові файли та каталоги в / var / www успадковують відповідну групу та дозволи для групи, щоб мати доступ r / w. Зараз багато дистрибутивів Linux за замовчуванням мають umask 002 (ті ж, що за замовчуванням створюють нову групу для кожного нового користувача)
freiheit

Ця відповідь прекрасно працює! Але у мене є одна проблема, коли користувач може переглядати всі інші каталоги за межами var/www, чи є спосіб обмежити це?
maxisme

3
Рядки 2 і 3 не працюватимуть, якщо користувачі вже існують (на CentOS 7). У цьому випадку використовуйте usermodнапр.usermod -G mygroup ftp
nick

Простий, зрозумілий, зрозумілий! Ідеально! Дякую, @hobodave!
Гтодоров

4

Більша частина вашого вмісту повинна належати іншому користувачеві, ніж апаш. Припускаючи, що ви використовуєте FTP для оновлення свого вмісту, ви можете встановити всі файли, які належать ftp: apache. Я б запропонував використовувати SCP для SFTP замість ftp. Файли повинні мати дозволи 644 або 640, а дозволи каталогів 755 або 750.

Для файлів і каталогів програма повинна написати, щоб додати груповий доступ до запису.


0

У мене була подібна проблема із вбудованою php-сторінкою, яка копіювала б папку на сервер з іншим ім'ям. Я виправив це, вимкнувши безпечний режим php.


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