vsFTPd за замовчуванням завантажені файлові дозволи на Ubuntu не працюють


14

У мене є сервер під управлінням Ubuntu 12.10 x64 та остання версія vsFTPd.

Мій користувач example.com увімкнено домашню папку /var/www/example.com,

Я створив папку public_html всередині, надав 777їй дозволи та видалив дозволи на папку домашнього користувача. Все працює добре, але:

Кожен файл, який я завантажую через FTP (використовуючи SmartFTP), отримує chmod 0.

У мого vsftpd.confбув лише один рядок:

local_umask=022.

Я намагався змінити:

file_open_mode=777
local_umask=002

Тож мої файли отримають, 775як тільки вони завантажуються.

Але лише мої завантажені папки отримують 775дозволи.

Мої завантажені файли отримують 1411 permissions

Може хтось допоможе мені вирішити це?


ви повинні дати дозвіл користувачеві FTP.
Гекс

Відповіді:


11

Я закінчив використовувати

file_open_mode=0777
local_umask=022

на vsftpd.conf. Проблема полягала в тому, що і користувачеві FTP, і користувачеві www-data потрібні дозволи для запису, тому мені довелося приєднати www-data та ftpuser до групи користувачів www-data, а CHMOD -R 775 всі файли на / var / www - таким чином, при 775 CHMOD група матиме дозвіл на читання, запис та виконання. Тепер його працює чудово.


1
не забудьте перезапустити FTP-сервер: sudo service vsftpd restart
Nahid

7

Отримав свою відповідь:

Оскільки www-data є користувачем, відповідальним за веб-сервер, а ваш звичайний користувач відповідає за ftp-сервер, спочатку потрібно зробити їх обома членами однієї групи: груповими www-data.

Створення користувацького користувача:

useradd –d /var/www/asasd.com -g www-data -m yourusername таким чином домашнім каталогом буде /var/www/asasd.com, а ваш користувач буде в групі даних www .

після цього змініть пропуск користувача, набравши текст passwd.

Потім вам потрібно створити папку public_html всередині домашньої папки yourusername , оскільки FTP не зможе писати в корені домашньої папки, ви повинні створити підпапку.

Видаліть дозволи на папку yourusernamechmod a-w /var/www/asasd.com

Потім застосуйте нові дозволи для підпапки: chmod -R 775 /var/www/asasd.com/public_html (зауважте, що ви повинні використовувати 775 chmod, оскільки вам потрібні дозволи на групове записування, а не дозволу на запис користувача, як ви хочете, щоб ціла група (ftp та www-дані) могла писати). папка для www-даних chown -R www-data:www-data /var/www/asasd.com/public_html

Таким чином, ви повинні мати можливість використовувати FTP та працювати з веб-сервером.

Удачі!

Смішно цю інформацію так важко знайти. Чи люди вже не діляться знаннями?


"Вам потрібно спершу зробити їх обома членами однієї групи: групи www-data" Як розмістити мого ftp користувача в групі www-data?
Чорний

Працював ідеально. Дякуємо @lucasmx
Enrique Becerra

0

У мене також виникли проблеми, такі як дозвіл на файл змінюється, коли я завантажую файл через свій ftp. Це виправлено однією зміною рядка в моємуvsftpd.conf

local_umask=val(like 022,007,etc.,)


Хочете трохи покращити та відкрити це? Чому це краще, ніж попередні альтернативи, і що це насправді робить , оскільки такий синтаксис взагалі не описаний на сторінці керівництва: local_umaskмає бути одиничним значенням, і він повинен мати 0префікс для восьмеричного значення.
Еса Йокінен

-4

вам потрібно змінити право власності на цей файл:

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