web-dev-qa-db-ja.com

vsftpdの割り当て?

Vsftpdのユーザーディスククォータを構成しようとしました。

私は、debianの "quota"パッケージを使用して(/ etc/fstabなどを編集して)ftp仮想ユーザーのクォータを構成しました。インターネットは、vsftpdでの唯一のソリューションであると私に言った。

問題は、ファイルがftpサーバーにアップロードされたとき、その所有者がftp:nogroupであるため、割り当てが私のユーザーに適用されないことです(例:bob:bob)。

私はまた、ftp:bobターゲットフォルダーをchownし、bobグループでグループクォータを使用しようとしましたが、動作しませんでした

だから私はFAQに直行しましたが、これが見つかりませんでした:)この割り当ての問題に対する解決策はありますか?

乾杯、Mehdi

5
user12087

これを設定するには、次の手順を実行する必要があります。

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」に設定してください。

私はそれがたくさんあることを知っていますが、それはそれで十分です!念のため、これを公開する前にプロセスをゼロから実行しました。

7
Patrick R

パトリックは良いハウツーをしました。 2つ追加します。

1.)quotatoolは必須ではありません。2.)FTPフォルダー用の独自の物理パーティションがない場合は、ループファイルを使用できます。私はこれをしました、そしてそれは本当に素晴らしいです

mkdir/usr/loop_device

  • 50MBのファイルを作成

dd if =/dev/zero of =/usr/loop_device/ld1 bs = 1024 count = 50000

  • その上にファイルシステムを作成します

mkfs.ext4/usr/loop_device/ld1

  • Ftpユーザーのディレクトリを作成する

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/

バイクリス

2
chris2k

クォータは、システムユーザーでのみ機能します。したがって、システムユーザーを使用するように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」オプションを追加することを忘れないでください。

1
wazoox