1

Здравствуйте. У меня образовалась проблема при настройке vsftpd.
имеется debian на котором установлен веб сервер.
в папке /var/www  лежит сайт на joomla и оунер у этой папки стоит пользователь www-data и все отлично работает
поставил vsftpd и хочу чтобы пользователь с именем user по ftp мог делать все что угодно с файлами в /var/www но он это делает только если он является оунером.
получается только оунер может писать в папку? а если мне нужно 2 пользователя которые должны писать в эту папку.
что-то мне подсказывает что я неправильно настраиваю фтп.
сам я практически полный ноль в линуксе. помогите с настройкой.

2

Полагаю, достаточно будет одной команды (если всё остальное правильно настроено):

 Консоль:
gpasswd -a user www-data

"Если вы уже пытались поработать с Linux, но нашли ее слишком запутанной и непонятной — расслабьтесь. Если вы умеете вскипятить чайник или завести будильник, то вы уже можете стать пользователем Linux (кроме шуток!)." ©

3 (27.02.2011 12:59:37 отредактировано zloi_kot)

Remedy пишет:

Полагаю, достаточно будет одной команды (если всё остальное правильно настроено):

 Консоль:
gpasswd -a user www-data

насколько я понимаю это добавление пользователя 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 пользователя на в его папке его назначить оунером что делать если мне надо папку для сколько угодно многих фтп пользователей но не анонимных

4

zloi_kot пишет:

на в его папке его назначить оунером что делать если мне надо папку для сколько угодно многих фтп пользователей но не анонимных

Ваще ничего не понял. Пользователь ftp уже должен быть в системе. Если фтп нужно для многих пользователей, то создавайте их, ставте chroot_list=yes, указываете корень /www-data и все должно работать.
Давайте посмотрим ваш /etc/vsftpd.conf

MX 23.6 Libretto x86_64
Чем больше я работаю админом, тем больше понимаю, насколько волшебна фраза - "Нет технической возможности!"

5

Что надо сделать?

1) Добавить пользователя user в группу www-data

 Консоль:

gpasswd -a user www-data

2) Расставить права доступа:

 Консоль:

chown -R www-data:www-data /var/www
chmod -R 664 /var/www
find /var/www -type d -exec chmod 775 {} \;

3) В vsftpd.conf должны быть примерно такие строки:

local_enable=YES
chroot_local_user=YES
write_enable=YES
local_root=/var/www

4) После закачки файлов надо менять его владельца на www-data

 Консоль:

chown www-data:www-data /var/www/[...]/file

"Если вы уже пытались поработать с Linux, но нашли ее слишком запутанной и непонятной — расслабьтесь. Если вы умеете вскипятить чайник или завести будильник, то вы уже можете стать пользователем Linux (кроме шуток!)." ©

6

Спасибо Remedy. то что вы написали очень помогло.
но теперь получается что эти действия нужно делать постоянно посде создания новых папок и файлов?
нет ли возможности указать чтобы у всех созданных файлов и папок владельцем был www-data?

7

Для смены владельца закачанных файлов существуют опции в vsftpd.conf:

chown_uploads=YES
chown_username=[username]

но работают они только для файлов, закачанных анонимным пользователем. Для решения проблемы гуру советуют... не использовать vsftpd. От себя могу предложить такое решение:
1) Ставим setgid-бит на все каталоги, в которые будут закачиваться файлы

 Консоль:

find /var/www -type d -exec chmod g+s {} \;

2) Добваляем опцию local_umask=002 в файл vsftpd.conf
 Консоль:

echo 'local_umask=002' >> /etc/vsftpd.conf

3) Меняем первичную группу пользователя user на www-data
 Консоль:

usermod -g www-data user

Теперь все закачиваемые файлы будут принадлежать группе www-data и иметь права на чтение/изменение для группы.

"Если вы уже пытались поработать с Linux, но нашли ее слишком запутанной и непонятной — расслабьтесь. Если вы умеете вскипятить чайник или завести будильник, то вы уже можете стать пользователем Linux (кроме шуток!)." ©

8

Про chown_uploads для анонимов читал, потому и спросил можно ли для не анонимов.
если гуру не советуют vsftpd то что они советуют?

Ставим setgid-бит на все каталоги, в которые будут закачиваться файлы

означает ли это что если я поставлю setgid-бит на папку А , а в ней создам папку В то при заливке файлов в папку В опять возникнут проблеммы с оунерами?

если честно  я только взялся за линуксы и не особо вкурсе что есть setgid-бит, до конца не осознал смысла оунерства и local_umask, так что буду благодарен если угостите ссылками туда где все разжевано доступно для таких как я.

9

Гуру советуют использовать proftpd. ab

означает ли это что если я поставлю setgid-бит на папку А , а в ней создам папку В то при заливке файлов в папку В опять возникнут проблеммы с оунерами?

Вероятно, да. Надо будет установить setgid-бит и для каталога В.

Пара ссылок по теме:
http://old.linux.kiev.ua/modules.php?na … mp;sid=703
http://adminbook.ru/index.php?men2=4-1/112
http://ru.wikipedia.org/wiki/Umask
local_umask - Значение umask, для создание файлов, применяемое к локальным пользователям.

"Если вы уже пытались поработать с Linux, но нашли ее слишком запутанной и непонятной — расслабьтесь. Если вы умеете вскипятить чайник или завести будильник, то вы уже можете стать пользователем Linux (кроме шуток!)." ©

10

Remedy пишет:

Гуру советуют использовать proftpd

не знаю,
я его и использую.
если что - пишите. тут это видимо оффтопик.

Карусель разнесло по цепочке за час
Всех известий — конец
Да, весна началась!
(всё к лицу подлецу, как родному отцу, не рассказывай, батя, и так всё пройдёт)