Vsftpdのユーザーディスククォータを構成しようとしました。
私は、debianの "quota"パッケージを使用して(/ etc/fstabなどを編集して)ftp仮想ユーザーのクォータを構成しました。インターネットは、vsftpdでの唯一のソリューションであると私に言った。
問題は、ファイルがftpサーバーにアップロードされたとき、その所有者がftp:nogroupであるため、割り当てが私のユーザーに適用されないことです(例:bob:bob)。
私はまた、ftp:bobターゲットフォルダーをchownし、bobグループでグループクォータを使用しようとしましたが、動作しませんでした
だから私はFAQに直行しましたが、これが見つかりませんでした:)この割り当ての問題に対する解決策はありますか?
乾杯、Mehdi
これを設定するには、次の手順を実行する必要があります。
VSFTPd
/etc/vsftd.confファイルを作成します
#nano /etc/vsftpd.conf
listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
download_enable=yes
guest_enable=NO
write_enable=yes
#If chroot_local_user is YES, then this list becomes a list of
# users to NOT chroot()
chroot_local_user=no
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
次に、chrootリストを作成して、ユーザーがホームディレクトリの外部を参照できないようにします。
#nano /etc/vsftpd.chroot_list
someusernamehere
[〜#〜] ssh [〜#〜]
このユーザーはシステムに実際のアカウントを持っているため(ディスククォータは仮想ユーザーでは機能しません)、SSHが実行されている場合は更新する必要があります。一番下の行に以下を追加し、上記のユーザーがリストされていないことを確認します(つまり、SSH経由でサーバーにアクセスするユーザーのみをリストします)。
#nano /etc/ssh/sshd_config
AllowUsers username1 username2
マウントポイントの準備
割り当てをインストールして有効にします
これは、ユーザーごとおよびグループごとにこれを行う方法を示しています。ちなみに、ファイルシステムがマウントされるとクォータのサポートが有効になるため、次の手順を完了したらサーバーを再起動する必要があります。何をしているか正確に理解していない限り、リモートマシンでを実行しないでください。
Rootとして以下を実行するか、Sudoを使用します。
#nano /etc/fstab
Fstabファイル(usrquotaまたはgrpquota)に次のものが必要です。以下は、ubuntuサーバーのインストール方法に応じた例です。
/dev/hda1 /home ext2 defaults,usrquota 1 1
または
# /home was on /dev/sda3 during installation
UUID=fce47086-925c-4164-80a4-4ba6b307123b /home ext4 defaults,usrquota 0 2
または
# /home was on /dev/sda3 during installation
UUID=fce47086-925c-4164-80a4-4ba6b307123b /home ext4 defaults,usrquota,grpquota 0 2
再起動するか、次の例を使用して再マウントできます。
#mount -o remount,usrquota /home
マウントを確認します。
#mount | grep quota
クォータカーネルモジュールをロードします。
#modprobe quota_v2 echo 'quota_v2' >> /etc/modules
クォータの設定
Quotaパッケージをインストールします。
#apt-get install quota quotatool
次のファイルが存在しない場合は作成します。これらのファイルには、割り当て制限が保存されています。
#touch /home/aquota.user
#touch /home/aquota.group
#chmod 600 /home/aquota.user /home/aquota.group
再起動せずにquatacheckをオンにします。
# quotacheck -vagum
カーネルがジャーナルクォータをサポートしていても、それを使用していない場合は、おそらくエラーが発生します。その場合、このコマンドを使用します。
# quotacheck -fvagum
ユーザーの制限を設定します。
#quotatool -u someusername -bq 100M -l '200 Mb' /home
最初の値はソフト制限で、2番目の値はハード制限です。ユーザーが100Mbのテキストファイルを読み込もうとしたときに、既にソフト制限が20Mbを超えている場合、テキストファイルは20Mb切り捨てられて、200Mbのハード制限を維持します。
割り当てを確認します。
#repquota /home
ユーザーのクォータを削除したい場合は、ハード制限とソフト制限を「0」に設定してください。
私はそれがたくさんあることを知っていますが、それはそれで十分です!念のため、これを公開する前にプロセスをゼロから実行しました。
パトリックは良いハウツーをしました。 2つ追加します。
1.)quotatoolは必須ではありません。2.)FTPフォルダー用の独自の物理パーティションがない場合は、ループファイルを使用できます。私はこれをしました、そしてそれは本当に素晴らしいです
mkdir/usr/loop_device
dd if =/dev/zero of =/usr/loop_device/ld1 bs = 1024 count = 50000
mkfs.ext4/usr/loop_device/ld1
mkdir/home_ftp
ループデバイスをマウントします
/ etc/fstabに次のエントリを追加します
/ usr/loop_device/ld1/home_ftp/ext4 rw、loop、usrquota、grpquota 0 0
私はここにスクリーンショットを書きました:
http://infofreund.de/user_quotas_vsftpd_en/
バイクリス
クォータは、システムユーザーでのみ機能します。したがって、システムユーザーを使用するようにvsftpを構成する必要があります。仮想ユーザーは使用できません。
編集:
動作する迅速でダーティな構成を次に示します。
listen=YES
anonymous_enable=NO
local_enable=YES
dirmessage_enable=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/vsftpd.pem
download_enable=yes
anon_mkdir_write_enable=yes
guest_enable=NO
anon_world_readable_only=no
anon_upload_enable=yes
write_enable=yes
chroot_local_user=no
anon_other_write_enable=yes
次に、「quotacheck」を使用してクォータを設定します。 fstabに「userquota」オプションを追加することを忘れないでください。