
私は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グループに設定する必要があります。