%20%D0%B7%D0%B0%D0%B3%D1%80%D1%83%D0%B6%D0%B5%D0%BD%D0%BD%D0%B0%D1%8F%20%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0%20%D1%84%D0%B0%D0%B9%D0%BB%D0%BE%D0%B2.png)
Я создаю FTP-сервер с помощью vsftpd и почти закончил, осталось только одно: когда я загружаю файл (войдя как пользователь U), файл принадлежит группе с таким же именем (поэтому имя группы = U), но пользователь находится в другой группе.
Приведем пример:
пользователь=publichttp
usergroup=ftpusers (и только 1 группа)
Когда я загружаю файл, он загружается с правами доступа 775, как мне и нужно, но команда ls -l показывает мне, что владельцем файла является publichttp:publichttp, а не publichttp:ftpusers, как должно быть и как мне нужно.
права доступа к папке в /home/:
drwxrwxr-x 3 publichttp ftpusers 4096 nov. 8 17:20 publichttp
в /home/publichttp/:
-rwxrwxr-x 1 publichttp publichttp 98789 nov. 8 17:20 Extras.Txt
(Я хочу)
-rwxrwxr-x 1 publichttp ftpusers 98789 nov. 8 17:20 Extras.Txt
Я не знаю, как это сделать, искал весь день...
vsftpd.conf:
listen=YES
connect_from_port_20=YES
use_localtime=YES
xferlog_enable=YES
dirmessage_enable=YES
ftpd_banner=myftp.
anonymous_enable=NO
local_enable=YES
write_enable=YES
nopriv_user=publichttp
secure_chroot_dir=/var/run/vsftpd/empty
chroot_local_user=YES
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list #empty file
allow_writeable_chroot=YES
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.user_list #just contains publichttp
anon_upload_enable=YES
anon_mkdir_write_enable=YES
local_umask=002
file_open_mode=0777
Возможно ли это? (самое простое решение — самое лучшее)
Спасибо !
решение1
vsftpd берет всю информацию из /etc/passwd и /etc/groups с локальными пользователями. Чтобы сделать так, чтобы загруженные вами файлы пользователя publichttp принадлежали группе ftpusers, вам нужно установить первичный gid пользователя publichttp на группу ftpusers в /etc/passwd.