LinuxForum.Fans
Тема

Vsftpd

Автор: n2b 45 сообщений 9660 просмотров
#149362

Как настроить каждого конкретного пользователя? Установил, вбил какой-то конфиг(чей-то рабочий), создал еще двух юзеров и две группы на каждого юзера по группе(сделал chown на их хом каталоги для каждой нужной группы), так вот есть я(мой пользователь, под которым работаю), есть еще пользователь №1 и №2, созданы оба с аналогичными настройками. Так вот по моему юзеру заходит, по пользователю №1 заходит, а вот пользователь №2 не может, пишет can not change home directory. В чем проблема? Конфиг выложу позже. И еще, есть ссылка на русский ман?

#149364

n2b, пока вы заняты выкладыванием конфига, проверьте параметры пользователя №2 на разного рода опечатки и несоответствия ;). Часто бывают с первого взгляда незаметные ошибки, за которые потом перед самим собой стыдно =).

#149536

я так понимаю что у пользователя №1 и №2 одинаковые дом. папки?
тогда нужно сделать несколько иначе :
в vsftpd.conf

text
user_config_dir=[чегото там]

ну и в файле конфига клиента

text
local_root=/srv/ftp/home/user1

(к примеру)
и
[console]ln -s /srv/ftp/home/user1 /srv/ftp/home/user2[/console]
думаю пояснять что к чему не нужно?

#149572

Домашние папки разные.
№1 - /home/#1
№2 - /home/#2

права раздал так chown username.groupname /home/# (username=groupname)
Щас конфиг будет, пересоздам пользователей и выложу цфг

#149593

вообщем НИЧЕГО не понимаю... почему ничего не работает? Это идиотизм, я не могу ПРИНЯТЬ такие настройки и такую иерархию настроек... полный бред.

Подскажите пожалуйста фтп сервер под opensuse, можно и без ГУИ, главное чтобы ЮЗВЕРИ конфигрировались отдельными, нормальными конф файлами, чтобы можно было указать им корневой каталог( и права на него), доступ к другим папкам вдругих местах(и права на них), его логин и пароль, и так далее!!! Чтобы пользователи нормально сконфигурировались типа:
username=login #логин
password=pass #пароль
home=/home/ftp/hello - 777 #корневой каталог и права на него
dir=/var/ftp - 666, /home/ftp/bye - 022, #доступ к другим папкам и права на них.
bla bla bla #остальные настройки
Вот чтобы примерно такие настройки можно было указать в конф файле.... а то реально забесило меня это... =\

#149731
n2b написал:
Подскажите пожалуйста фтп сервер под opensuse, можно и без ГУИ, главное чтобы ЮЗВЕРИ конфигрировались отдельными, нормальными конф файлами

proftpd

есть гуй. (gproftpd ЕМНИП).

могу подсказать с настройками.

#149732
n2b написал:
Чтобы пользователи нормально сконфигурировались типа:
username=login #логин
password=pass #пароль
home=/home/ftp/hello - 777 #корневой каталог и права на него
dir=/var/ftp - 666, /home/ftp/bye - 022, #доступ к другим папкам и права на них.
bla bla bla #остальные настройки

вообще-то это в самой ОС обычно настраивается, если юзверей <100. Иначе привинчивают СУБД, например MySQL.

#149841

вообщем настроил я vsftpd, все вроде впорядке. есть два пользователя, они заблокированы в родительском каталоге, могут заливать, удалять и скачивать.
А теперь есть несколько вопросов:
1. Как создать пользователя который мог бы записывать, но не мог удалять файлы, только скачивать и записывать?
2. Вот есть пользователь user, у него есть home directory - /home/user/ - для vsftpd это его родительский каталог, а как сделать, чтобы этот пользователь еще и другую папку видел, например /var/folder и права на эту папку у него были другие, например на хоум папку права 755, а на другу папку /var/folder 666?

#149854
n2b написал:
1. Как создать пользователя который мог бы записывать, но не мог удалять файлы, только скачивать и записывать?

имхо никак. кто может записавать тот и удалять может

n2b написал:
2. Вот есть пользователь user, у него есть home directory - /home/user/ - для vsftpd это его родительский каталог, а как сделать, чтобы этот пользователь еще и другую папку видел, например /var/folder и права на эту папку у него были другие, например на хоум папку права 755, а на другу папку /var/folder 666?

можно монтировать одну папку в другую с сохранением chmod
[console]mount --bind /var/folder /home/user/folder[/console]

#149914

хм, а точно чмоды сохраняться? Интересная штука.
А если владелец у другой папки будет другой юзер, будет работать?

#149915
drBatty написал:
[quote=n2b]Чтобы пользователи нормально сконфигурировались типа:
username=login #логин
password=pass #пароль
home=/home/ftp/hello - 777 #корневой каталог и права на него
dir=/var/ftp - 666, /home/ftp/bye - 022, #доступ к другим папкам и права на них.
bla bla bla #остальные настройки

вообще-то это в самой ОС обычно настраивается, если юзверей <100. Иначе привинчивают СУБД, например MySQL.[/quote]
В самой ОС можно раздать права на домашнюю директорию - не более. Или я чего-то не знаю?

#149978
n2b написал:
В самой ОС можно раздать права на домашнюю директорию - не более. Или я чего-то не знаю?

1) можно сделать так, что-бы домашняя директория стала корневой (для фтп-юзера).
2) можно запретить пользователю изменять права на его корень.
потому этого достаточно.
username хранится в /etc/passwd, и юзер не то-что изменить, даже прочитать его не сможет, ибо он заперт в домашнем каталоге.
password хранится в /etc/shadow.
~home тоже нельзя поменять, и даже просто вылезти оттуда.
доступ к другим папкам реализуется через mount --bind что-то ~home/
права как хотите.
umask задётся в конфиге.

n2b написал:
1. Как создать пользователя который мог бы записывать, но не мог удалять файлы, только скачивать и записывать?

можно. Для этого необходимо и достаточно поставить на дом. папку атрибут append-only. в таком каталоге можно только создавать новые файлы, и менять старые. Удалять нельзя.

Беда в том, что никому нельзя удалять (даже руту). Для более гибкого управления можно в конфиге запретить юзеру операцию DELE для определённых юзеров и/или каталогов (я не знаю как это в сабже). А можно использовать ACL, как в виндовс.

#150040
n2b написал:
хм, а точно чмоды сохраняться? Интересная штука.

chmod сохраняется 100%

n2b написал:
А если владелец у другой папки будет другой юзер, будет работать?

работать будет, но т.к chmod сохраняется то права нужно выставлять соответствующие. т.е если у user1 хоум /home/user1 а у user2 хоум /home/user2 и обоим необходимо писать в папку /usr/tmp/ то необходимо
[console]mount --bind /usr/tmp /home/user1/usr_tmp
mount --bind /usr/tmp /home/user2/usr_tmp
chmod -R 777 /usr/tmp[/console]
таким образом оба пользователя смогут писать в /usr/tmp не выходя из чрута в своих хоумах.
ну или то же самое, но давать разрешение на запись группе. это уже мелочи.

#150042
osorkon написал:
chmod -R 777 /usr/tmp

таким образом оба пользователя смогут писать в /usr/tmp не выходя из чрута в своих хоумах.
ну или то же самое, но давать разрешение на запись группе. это уже мелочи.

угу. Только 2 момента:

1) /usr/ он для программ, а не для их данных. Потому следует использовать либо /tmp/ для временных данных, которые могут затираться системой если ей так захочется, или в /var/, если эти данные должны стираться самим юзером, т.е. когда он захочет.
2) права лучше поставить 1777, что-бы юзер Б не мог подменить файлы юзеру А. Если поставить 0777, то А не сможет защитить свои данные от Б, даже если поставит на них права 0600 - юзер Б не сможет прочитать файл, но может его убить, и сделать на его месте свой почти такой-же.

#150383

это был просто пример по сабжу. реализация защиты данных вопросом не предусматривалась.

#150396
osorkon написал:
имхо никак. кто может записавать тот и удалять может

не правильный ответ:

n2b написал:
. Как создать пользователя который мог бы записывать, но не мог удалять файлы, только скачивать и записывать?

vsftpd.conf
...
user_config_dir=/etc/vsftpd/userconf
...

/etc/vsftpd/userconf/user1
...
cmds_allowed=PASV,QUIT,LIST,CWD,RETR,STOR,MKD
....

А здесь можно узнать команды для пользователей http://www.faqs.org/rfcs/rfc959.html

#150438
i2ks написал:
cmds_allowed=PASV,QUIT,LIST,CWD,RETR,STOR,MKD

плюсую. вы разрешили всё, а про DELE "забыли" :)

PS: вообще-то не всё конечно. Полный список команд см. здесь: http://www.faqs.org/rfcs/rfc959.html

#150440
drBatty написал:
плюсую. вы разрешили всё, а про DELE "забыли" smile

следовательно:

n2b написал:
1. Как создать пользователя который мог бы записывать, но не мог удалять файлы, только скачивать и записывать?

p.s. "" что то не обратил на них внимание =)

#150487
i2ks написал:
"" что то не обратил на них внимание

думаете я опять решил спорить? а спорить тут не с чем :) у меня тоже всё так-же работает :D

#150786

Большая просьба и вопрос.
У меня пользователи созданы в самой системе, их фтп и подцепляет.
Строчка в конфиг файле vsftpd.conf - user_config_dir=/etc/vsftpd/userconf - дает понять что там хранится инфа о пользователях и их правах, так?
Далее вопрос, какие еще нужны строчки и каков синтаксис файла user1, user2 and etc и что в них надо или можно указывать(тут вопрос, допустим в системе есть пользователь user1 с home_dir /home/user1, а в userconf/user1 я могу указать другую хом дир и чтобы при заходе юзер попадал туда и был там заперт?), как указать и разделить, на эту папку такие права, на эту папку такие права и т.д.?

Войдите или зарегистрируйтесь, чтобы ответить.