У меня запущен сервер Ubuntu 12.10 x64, и последняя версия vsFTPd.
У моего пользователя example.com домашняя папка установлена на /var/www/example.com
,
Я создал внутри папку public_html и дал 777
permisions к нему и удалил права записи для домашней папки пользователя. Все работает хорошо, но:
Каждый файл, который я загружаю по FTP (с использованием SmartFTP), получает chmod 0.
Мой vsftpd.conf
была только одна связанная строка:
local_umask=022.
Я пытался перейти на:
file_open_mode=777
local_umask=002
Так что мои файлы получат 775
как только загрузили.
Но только мои загруженные папки получают 775
разрешения.
Мои загруженные файлы получают 1411 permissions
Может ли кто-нибудь помочь мне решить эту проблему?
В итоге я использовал
file_open_mode=0777
local_umask=022
в vsftpd.conf. Проблема заключалась в том, что и пользователю FTP, и пользователю www-data требовались разрешения для записи, поэтому мне пришлось присоединить 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 папка внутри вашего ваш логин домашняя папка, поскольку FTP не сможет писать в корень вашей домашней папки, вам необходимо создать подпапку.
Удалите права на запись вашего ваш логин папка chmod a-w /var/www/asasd.com
Затем примените новые разрешения для вложенной папки: chmod -R 775 /var/www/asasd.com/public_html
(обратите внимание, что вы должны использовать 775 chmod, потому что вам нужны права на запись для группы, а не права на запись для пользователей, поскольку вы хотите, чтобы вся группа (ftp и www-data) могла писать) Затем владейте папкой для www-data chown -R www-data:www-data /var/www/asasd.com/public_html
Таким образом, вы должны иметь возможность использовать FTP и иметь работающий веб-сервер.
Удачи!
Забавно, эту информацию так сложно найти. Люди больше не делятся знаниями?
Если вы используете ftp или анонимного пользователя для загрузки файлов, используйте следующие строки, чтобы установить разрешение на загрузку файла на 644 в /etc/vsftpd/vsftpd.conf
файл
file_open_mode=0666
anon_umask=022
Окончательное разрешение 666-022 = 644
.
У меня также была проблема с изменением прав доступа к файлу, когда я загружаю файл через ftp. Это исправлено одним изменением строки в моем vsftpd.conf
local_umask=val(like 022,007,etc.,)
вам нужно изменить владельца этого файла:
chown root:root /home/username