vsftpd 中的配額?

vsftpd 中的配額?

我嘗試為 vsftpd 設定用戶磁碟配額。

我使用 debian 上的“quota”套件為 ftp 虛擬用戶配置了配額(你知道,透過編輯 /etc/fstab 和所有這些東西)。網路告訴我,這是 vsftpd 的唯一解決方案。

問題是:當檔案上傳到 ftp 伺服器上時,其擁有者是 ftp:nogroup,因此配額不適用於我的用戶,例如 bob:bob。

我還嘗試 chown ftp:bob 目標資料夾,並在 bob 組上使用群組配額,但我沒有成功

所以我直接去常見問題解答並沒有找到這個:)對於這個配額問題你有什麼解決方案嗎?

乾杯,邁赫迪

答案1

以下是您應採取的設定步驟:

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 

設定您的配額

安裝配額包。

#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 

第一個值是軟限制,第二個值是硬限制。請注意,如果使用者嘗試載入 100Mb 的文字文件,並且已經超出軟限制 20Mb,則其文字檔案將被截斷 20Mb,以使其保持在 200Mb 硬限制以下。

檢查配額:

#repquota /home 

如果您希望刪除使用者的配額,只需將其硬限制和軟限制設為「0」即可。

我知道很多,但應該可以了!為了確定起見,我在發布此內容之前從頭開始完成了整個過程。

答案2

派崔克做了一個很好的指南。我想添加兩件事。

  1. 配額工具不是強制性的
  2. 如果您沒有自己的實體分割區用於 ftp 資料夾,您可以使用循環檔案。我這樣做了,效果非常好
mkdir /usr/loop_device

建立一個50MB的檔案fe

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

在其上建立檔案系統

mkfs.ext4 /usr/loop_device/ld1

為ftp使用者建立目錄

mkdir /home_ftp

安裝Loopdevice

將以下條目新增至 /etc/fstab

/usr/loop_device/ld1 /home_ftp/         ext4 rw,loop,usrquota,grpquota  0 0

我用截圖寫在這裡:

http://infofreund.de/user_quotas_vsftpd_en/

答案3

配額僅適用於系統使用者。所以需要設定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”設定配額。不要忘記將“userquota”選項新增到您的 fstab 中。

相關內容