%20%E3%82%A2%E3%83%83%E3%83%97%E3%83%AD%E3%83%BC%E3%83%89%E3%81%95%E3%82%8C%E3%81%9F%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%82%B0%E3%83%AB%E3%83%BC%E3%83%97.png)
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 グループに設定する必要があります。