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

Может кто-нибудь помочь мне решить это?

lucasmx
источник
Вы должны дать разрешение пользователю FTP.
Gex

Ответы:

11

Я в конечном итоге с помощью

file_open_mode=0777
local_umask=022

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

lucasmx
источник
1
не забудьте перезапустить FTP - сервер: Судо служба VSFTPD рестарт
NaHiD
7

Получил мой ответ:

Поскольку www-data - это пользователь, отвечающий за веб-сервер, а ваш обычный пользователь отвечает за ftp-сервер, вам необходимо сначала сделать их членами одной группы: группы www-data.

Создание пользовательского пользователя:

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

после этого измените пароль пользователя, набрав 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-data) могла писать). папка для www-данных chown -R www-data:www-data /var/www/asasd.com/public_html

Таким образом, вы должны иметь возможность использовать FTP и иметь работающий веб-сервер.

Удачи!

Забавно, что эту информацию так сложно найти. Люди больше не делятся знаниями?

lucasmx
источник
«сначала нужно сделать так, чтобы они оба были членами одной группы: группа www-data» Как поместить моего пользователя ftp в группу www-data?
Черный
Работал отлично. Спасибо @lucasmx
Энрике Бесерра
0

У меня также была проблема, как разрешение файла изменяется, когда я загружаю файл через мой ftp. Это исправлено одним изменением строки в моемvsftpd.conf

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

Виджей
источник
Хотите улучшить и открыть это немного? Почему это лучше, чем предыдущие альтернативы и что он на самом деле делает , так как этот вид синтаксиса вообще не описан на странице руководства: local_umaskдолжен иметь одно значение и иметь 0префикс восьмеричного значения.
Эса Йокинен
-4

вам нужно изменить владельца этого файла:

chown root:root /home/username
Gex
источник