Хотелосб настроить виртуальных пользователей для фтп. (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.
Почему?
Спасибо
Последние комментарии
- OlegL, 17 декабря 2023 года в 15:00 → Перекличка 21
- REDkiy, 8 июня 2023 года в 9:09 → Как «замокать» файл для юниттеста в Python? 2
- fhunter, 29 ноября 2022 года в 2:09 → Проблема с NO_PUBKEY: как получить GPG-ключ и добавить его в базу apt? 6
- Иванн, 9 апреля 2022 года в 8:31 → Ассоциация РАСПО провела первое учредительное собрание 1
- Kiri11.ADV1, 7 марта 2021 года в 12:01 → Логи catalina.out в TomCat 9 в формате JSON 1
Права на каталог какие?
Я вроде указал:
Создал пользователя 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\′ у тебя зачем-то занесены директивы для анонимных пользователей, которые там ну просто не к месту.
Упс, пардон.
В первом случае описался просто:
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.
А, ну да. 'virtual_use_local_privs' по умолчанию стоит в 'NO’, поэтому для виртуальных пользователей используюся параметры анонимных пользователей.
Ну что ж. Раз уж «раньше работало», то только остаётся узнать, что изменилось?
Вот и самому интересно. Делал бекап всех конфигов.
Дистриб тот же, только установил пакетов больше и ядро новое собрал