У меня есть сервер под управлением 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
Может кто-нибудь помочь мне решить это?
Ответы:
Я в конечном итоге с помощью
на vsftpd.conf. Проблема заключалась в том, что и пользователю FTP, и пользователю www-данных требовались разрешения на запись, поэтому мне пришлось присоединить www-data и ftpuser к группе пользователей www-data и CHMOD -R 775 для всех файлов в / var / www - таким образом, с 775 CHMOD у группы будет разрешение на чтение, запись и выполнение. Теперь это работает отлично.
источник
Получил мой ответ:
Поскольку 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 не сможет записывать в корень вашей домашней папки, вы должны создать подпапку.
Удалите права на запись для вашей папки yourusername
chmod 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 и иметь работающий веб-сервер.
Удачи!
Забавно, что эту информацию так сложно найти. Люди больше не делятся знаниями?
источник
У меня также была проблема, как разрешение файла изменяется, когда я загружаю файл через мой ftp. Это исправлено одним изменением строки в моем
vsftpd.conf
local_umask=val(like 022,007,etc.,)
источник
local_umask
должен иметь одно значение и иметь0
префикс восьмеричного значения.вам нужно изменить владельца этого файла:
источник