Здравствуйте. У меня образовалась проблема при настройке vsftpd.
имеется debian на котором установлен веб сервер.
в папке /var/www лежит сайт на joomla и оунер у этой папки стоит пользователь www-data и все отлично работает
поставил vsftpd и хочу чтобы пользователь с именем user по ftp мог делать все что угодно с файлами в /var/www но он это делает только если он является оунером.
получается только оунер может писать в папку? а если мне нужно 2 пользователя которые должны писать в эту папку.
что-то мне подсказывает что я неправильно настраиваю фтп.
сам я практически полный ноль в линуксе. помогите с настройкой.
Настройка vsftpd
Полагаю, достаточно будет одной команды (если всё остальное правильно настроено):
[console]gpasswd -a user www-data[/console]
Полагаю, достаточно будет одной команды (если всё остальное правильно настроено):
[console]gpasswd -a user www-data[/console]
насколько я понимаю это добавление пользователя user в группу www-data
но uid=1000(user) gid=1000(user) groups=1000(user),20(dialout),24(cdrom),25(floppy),29(audio),33(www-data),44(video),46(plugdev)
я так понимаю он и так в этой группе.
и насчет "если все правильно настроено" можно поподробнее. я читал что когда создаешь ftp пользователя на в его папке его назначить оунером что делать если мне надо папку для сколько угодно многих фтп пользователей но не анонимных
на в его папке его назначить оунером что делать если мне надо папку для сколько угодно многих фтп пользователей но не анонимных
Ваще ничего не понял. Пользователь ftp уже должен быть в системе. Если фтп нужно для многих пользователей, то создавайте их, ставте chroot_list=yes, указываете корень /www-data и все должно работать.
Давайте посмотрим ваш /etc/vsftpd.conf
Что надо сделать?
1) Добавить пользователя user в группу www-data
[console]
gpasswd -a user www-data
[/console]
2) Расставить права доступа:
[console]
chown -R www-data:www-data /var/www
chmod -R 664 /var/www
find /var/www -type d -exec chmod 775 {} \;
[/console]
3) В vsftpd.conf должны быть примерно такие строки:
local_enable=YES
chroot_local_user=YES
write_enable=YES
local_root=/var/www
4) После закачки файлов надо менять его владельца на www-data
[console]
chown www-data:www-data /var/www/[...]/file
[/console]
Спасибо Remedy. то что вы написали очень помогло.
но теперь получается что эти действия нужно делать постоянно посде создания новых папок и файлов?
нет ли возможности указать чтобы у всех созданных файлов и папок владельцем был www-data?
Для смены владельца закачанных файлов существуют опции в vsftpd.conf:
chown_uploads=YES
chown_username=[username]но работают они только для файлов, закачанных анонимным пользователем. Для решения проблемы гуру советуют... не использовать vsftpd. От себя могу предложить такое решение:
1) Ставим setgid-бит на все каталоги, в которые будут закачиваться файлы
[console]
find /var/www -type d -exec chmod g+s {} \;
[/console]
2) Добваляем опцию local_umask=002 в файл vsftpd.conf
[console]
echo 'local_umask=002' >> /etc/vsftpd.conf
[/console]
3) Меняем первичную группу пользователя user на www-data
[console]
usermod -g www-data user
[/console]
Теперь все закачиваемые файлы будут принадлежать группе www-data и иметь права на чтение/изменение для группы.
Про chown_uploads для анонимов читал, потому и спросил можно ли для не анонимов.
если гуру не советуют vsftpd то что они советуют?
Ставим setgid-бит на все каталоги, в которые будут закачиваться файлы
означает ли это что если я поставлю setgid-бит на папку А , а в ней создам папку В то при заливке файлов в папку В опять возникнут проблеммы с оунерами?
если честно я только взялся за линуксы и не особо вкурсе что есть setgid-бит, до конца не осознал смысла оунерства и local_umask, так что буду благодарен если угостите ссылками туда где все разжевано доступно для таких как я.
Гуру советуют использовать proftpd. :)
означает ли это что если я поставлю setgid-бит на папку А , а в ней создам папку В то при заливке файлов в папку В опять возникнут проблеммы с оунерами?Вероятно, да. Надо будет установить setgid-бит и для каталога В.
Пара ссылок по теме:
http://old.linux.kiev.ua/modules.php?name=News&file=article&sid=703
http://adminbook.ru/index.php?men2=4-1/112
http://ru.wikipedia.org/wiki/Umask
local_umask - Значение umask, для создание файлов, применяемое к локальным пользователям.
Гуру советуют использовать proftpd
хз,
я его и использую.
если что - пишите. тут это видимо оффтопик.