nixp.ru v3.0

20 января 2017,
пятница,
10:52:16 MSK

DevOps с компанией «Флант»
Ping_Win написал 16 апреля 2006 года в 20:31 (575 просмотров) Ведет себя неопределенно; открыл 73 темы в форуме, оставил 102 комментария на сайте.

Хотелосб настроить виртуальных пользователей для фтп. (vsftpd)

(Причем раньше работало, пока не занялся переустройством).

Делал всё как в EXAMPLESах

Вот конфиг:

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=022

anon_upload_enable=NO

anon_mkdir_write_enable=NO

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=NO

chown_uploads=YES

chown_username=virtual

xferlog_file=/var/log/vsftpd.log

xferlog_std_format=YES

idle_session_timeout=300

data_connection_timeout=120

nopriv_user=virtual

ascii_upload_enable=NO

ascii_download_enable=NO

ftpd_banner=Welcome to Voldemar`s Hell FTP service.

pam_service_name=vsftpd

listen=NO

guest_enable=YES

guest_username=virtual

chroot_local_user=YES

pasv_min_port=30000

pasv_max_port=30999

user_config_dir=/etc/vsftpd_users

Создал файл logins.txt, прогнал его через db_load, получил файл /etc/vsftpd/vsftpd.db.

Аутентифиация проходит через PAM. Содержимое файла /etc/pam.d/vsftpd:

auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd

account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd

Создал пользователя virtual:

useradd -g virtual -d /home/virtual virtual

chmod -R a+rwx /home/virtual

Создал каталог /etc/vsftpd_user_conf, в нем файл для юзера1:

cd /etc/vsftpd_user_conf

cat user1

anon_world_readable_only=NO

write_enable=YES

anon_upload_enable=YES

anon_mkdir_write_enable=YES

anon_other_write_enable=YES

В результате всех деяний удается авторизоваться на сервере, upload-ить файлы на сервер не получается, — Permission denied.

Почему?

Спасибо

fly4life

Права на каталог какие?

Ping_Win
fly4life
Права на каталог какие?

Я вроде указал:

Создал пользователя virtual:

useradd -g virtual -d /home/virtual virtual

chmod -R a+rwx /home/virtual

Значится что права 777

fly4life
Ping_Win
Я вроде указал:

Создал пользователя virtual:

useradd -g virtual -d /home/virtual virtual

chmod -R a+rwx /home/virtual

Значится что права 777

Ой, невнимательный я…

Странно тогда. А download-ить получается?

У тебя в конфигах то ли опечатки, то ли ошибки. В параметре 'user_config_dir' указано значение /etc/vsftpd_users, однако файл с настройками для пользователей ты создаёшь в /etc/vsftpd_user_conf. Потом, у тебя файл с логинами/паролями — /etc/vsftpd/vsftpd.db, но в настройках для модуля PAM — другой. Хотя залогиниться у тебя всё равно получается…

Кстати, в конфиге для пользователя 'user1\′ у тебя зачем-то занесены директивы для анонимных пользователей, которые там ну просто не к месту.

Ping_Win

Упс, пардон.

В первом случае описался просто:

user_config_dir=/etc/vsftpd_user_conf

«Потом, у тебя файл с логинами/паролями — /etc/vsftpd/vsftpd.db, но в настройках для модуля PAM — другой.»

В настройках для PAM расширение так называемое не указывается. Логинюсь успешно. Downloadить получается. Скорость очень ядреная.

Анонимные как раз-таки к месту. Раньше работало. Таким образом разделяются права на запись, чтение, создание каталогов для пользователей. Делал как в EXAMPLES/VIRTUAL_USERS_2:

This example shows how to extend the «VIRTUAL_USERS» example to reflect

a slightly more complex setup.

Let’s assume that we want two types of virtual user — one that can only browse

and download content, and another that can upload new content as well as

download existing content.

To achieve this setup, we can use use of vsftpd’s powerful per-user

configurability (new in v1.1.0).

In the previous virtual user example, we created two users — tom and fred.

Let’s say that we want fred to have write access to upload new files whilst

tom can only download.

Step 1) Activate per-user configurability.

To activate this powerful vsftpd feature, add the following to

/etc/vsftpd.conf:

user_config_dir=/etc/vsftpd_user_conf

And, create this directory:

mkdir /etc/vsftpd_user_conf

Step 2) Give tom the ability to read all files / directories.

At the end of the last example, we noted that the virtual users can only

see world-readable files and directories. We could make the /home/ftpsite

directory world readable, and upload files with world-read permission. But

another way of doing this is giving tom the ability to download files which

are not world-readable.

For the tom user, supply a config setting override for

anon_world_readable_only:

echo «anon_world_readable_only=NO» > /etc/vsftpd_user_conf/tom

Check it out — login as tom and now «ls» will return a directory listing!

Log in as fred and it won’t.

NOTE — restart vsftpd to pick up the config setting changes to

/etc/vsftpd.conf. (Advanced users can send SIGHUP to the vsftpd listener

process).

Step 3) Give fred the ability to read all files / directories and create

new ones but not interfere with existing files.

echo «anon_world_readable_only=NO» > /etc/vsftpd_user_conf/fred

echo «write_enable=YES» >> /etc/vsftpd_user_conf/fred

echo «anon_upload_enable=YES» >> /etc/vsftpd_user_conf/fred

Check it out — login as tom and you can’t upload. Log in as fred and you can!

Try and delete a file as both tom and fred — you can’t.

fly4life
Ping_Win
Анонимные как раз-таки к месту. Раньше работало. Таким образом разделяются права на запись, чтение, создание каталогов для пользователей.

А, ну да. 'virtual_use_local_privs' по умолчанию стоит в 'NO’, поэтому для виртуальных пользователей используюся параметры анонимных пользователей.

Ну что ж. Раз уж «раньше работало», то только остаётся узнать, что изменилось?

Ping_Win

Вот и самому интересно. Делал бекап всех конфигов.

Дистриб тот же, только установил пакетов больше и ядро новое собрал

ecobeingecobeing.ru
Экология и вегетарианство на благо всем живым существам Планеты.