我正在使用 vsftpd 创建一个 ftp 服务器,我几乎完成了,唯一剩下的就是当我上传文件(以用户 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组,你需要在/etc/passwd中将publichttp用户的主gid设置为ftpusers组。