1. 安装 quota 工具
sudo apt-get update
sudo apt-get install quota
2. 编辑 /etc/fstab
在 /etc/fstab 文件中,为 /samba 分区启用磁盘配额。在你的情况中,假设 /dev/sda1 被挂载到 /samba,你需要在 defaults 后添加 usrquota 和 grpquota 选项。
sudo vi /etc/fstab
找到对应的行并修改:
/dev/sda1 /samba ext4 defaults,usrquota,grpquota 0 2
# 也可以使用UUID进行配置
# 查询 /dev/sda1 硬盘的 UUID,可以使用以下命令:
# blkid /dev/sda1
# 查询结果
# /dev/sda1: UUID="e7e12345-89ab-4cde-0123-456789abcdef" TYPE="ext4"
# UUID=792db324-2e90-4021-a145-23043453123d /samba ext4 defaults,usrquota,grpquota 0 2
示例配置文件:
# /etc/fstab: static file system information.
#
# Use 'blkid' to print the universally unique identifier for a device; this may be used with UUID= as a more robust way to name devices that works even if disks are added and removed. See fstab(5).
#
# <file system> <mount point> <type> <options> <dump> <pass>
/swapfile none swap sw 0 0
/dev/sda1 /samba ext4 defaults,usrquota,grpquota 0 2
# UUID=792db324-2e90-4021-a145-23043453123d /samba ext4 defaults,usrquota,grpquota 0 2
3. 创建配额文件
确保配额文件存在并设置正确的权限。
sudo touch /samba/aquota.user /samba/aquota.group
sudo chmod 600 /samba/aquota.*
4. 重新挂载分区
重新挂载 /samba 分区以使更改生效:
sudo mount -o remount /samba
5. 创建配额文件
sudo quotacheck -cum /samba
sudo quotaon /samba
6. 设置用户配额
为了设置2TB的配额,以1KB为单位进行设置,所以2TB应当为2097152000KB。请使用以下命令为用户 neardi 设置2TB的磁盘配额:
sudo setquota -u neardi 0 2097152000 0 0 /samba
命令说明:
- quotacheck -cugm /samba:创建用户和组的配额文件并进行检查。
- quotaon /samba:启用 /samba 挂载点的配额。
- setquota -u neardi 0 2097152 0 0 /samba:设置用户 neardi 的配额为 2TB。
- quota -u neardi:验证用户 wumingfeng 的配额设置。
7. 验证配额设置
使用 quota 命令查看 neardi 的配额是否已正确设置:
sudo setquota -u neardi 0 1048576000 0 0 /samba
FAQ
错误一
neardi@ubuntu20:~# sudo quotaon /samba
quotaon: cannot find /samba/aquota.group on /dev/sda1 [/samba]
quotaon: cannot find /samba/aquota.group on /dev/sda1 [/samba] 错误消息,可能是因为 aquota.group 文件不存在或权限不正确。请按以下步骤检查和解决问题:
# 1. 创建配额文件并设置权限
sudo touch /samba/aquota.user /samba/aquota.group
sudo chmod 600 /samba/aquota.*
# 2. 检查并启用配额
sudo mount -o remount /samba
sudo quotacheck -cum /samba
sudo quotaon -v /samba
错误二
neardi@ubuntu20:/samba/home# sudo quotacheck -cum /samba
quotacheck: Quota for users is enabled on mountpoint /samba so quotacheck might damage the file.
Please turn quotas off or use -f to force checking.
出现这个警告是因为配额已经在挂载点 /samba 上启用了,如果在配额开启的情况下运行 quotacheck 可能会损坏现有的配额文件。为了安全地运行 quotacheck,需要先关闭配额,或者强制运行检查。
# 1. 关闭配额
sudo quotaoff /samba
# 2. 运行 quotacheck
sudo quotacheck -cum /samba
# 3. 运行 quotacheck
sudo quotaon /samba