FTP 서버를 생성하기 위해 vsftpd를 사용하고 있습니다. 거의 완료되었습니다. 남은 유일한 것은 파일을 업로드할 때(사용자 U로 로그인) 파일이 동일한 이름을 가진 그룹에 속한다는 것입니다(따라서 그룹 이름은 = U), 사용자는 다른 그룹에 속해 있습니다.
예를 들어 보겠습니다.
사용자=공개http
usergroup=ftpusers (및 1개의 그룹만)
파일을 업로드하면 내가 원하는 대로 775 권한으로 업로드되지만 ls -l은 파일 소유자가 publichttp:ftpusers 대신 publichttp:publichttp임을 보여줍니다. 그래야 하고 내가 원하는 대로입니다.
/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 그룹에 속하게 하려면 publichttp 사용자의 기본 gid를 /etc/passwd의 ftpusers 그룹으로 설정해야 합니다.