在 RHEL 8.9 中,我有一个 100gb XFS 格式的/home
分区;所有本地用户帐户/etc/passwd
的主目录都位于/home
.所有用户帐户的主要 gid 始终是 100 {users}。
我想在每个用户的/home
帐户上应用 1GB 的配额,作为管理数据的管理工作。我目前有 80 个用户,/etc/passwd
预计数量会增长到 150 多个。
我目前在/etc/fstab
UUID=12345 /home xfs defaults,nodev,nosuid,uquota,gquota 0 0
- 传递给
xfs_quota
命令的正确参数是什么? - 如果我有 80 个用户,我是否必须
xfs_quota
为每个帐户执行 80 个命令/home
?或者可以通过一个命令实例来完成吗? - 应该
mount -o remount /home
工作吗?我发现它并不成功,umount
或者reboot
是需要的。会umount -l
工作吗?在用户登录的活动系统上,这有多危险? - 对于未来的所有新用户,是否
xfs_quota
需要对其主文件夹执行新的需求,或者是否有办法自动应用它?
答案1
xfs_quota
需要-x
选项(据称是“专家模式”)来执行任何有用的操作。这很容易被忽视。如果您想为所有 80 个用户提供相同的配额,您可以执行以下操作:
for user in $(awk -F: '($3 > 1000 && $3 < 60000){print $1}' /etc/passwd); do \ xfs_quota -x -c "limit -u bhard=1024m $user" /home; done
我认为你需要在安装时设置
uquota
(或)。gquota
我认为您无法通过重新安装来打开(或关闭)它。对于默认配额,您可以为 UID 0 设置配额 - 它将用作任何未设置特定配额的用户的默认配额。例如,您可以创建一个测试 FS:
# mkdir /mnt/test # lvcreate -L 1G -n test datavg # mkfs.xfs /dev/mapper/datavg-test # mount /dev/mapper/datavg-test /mnt/test -o uquota # xfs_quota -x -c "report" /mnt/test User quota on /mnt/test (/dev/mapper/datavg-test) Blocks User ID Used Soft Hard Warn/Grace ---------- -------------------------------------------------- root 0 0 0 00 [--------]
然后,您可以设置特定配额(UID 101 为 100k)和默认配额(UID 0 为 200k):
# xfs_quota -x -c "limit -u bhard=100k 101" /mnt/test # xfs_quota -x -c "limit -u bhard=200k 0" /mnt/test
然后,如果您创建 UID 101(具有特定配额)和 UID 102(无特定配额)拥有的一些数据,并查看配额报告:
# dd if=/dev/zero of=/mnt/test/f1 bs=1k count=10; chown 101 /mnt/test/f1 # dd if=/dev/zero of=/mnt/test/f2 bs=1k count=10; chown 102 /mnt/test/f2 # xfs_quota -x -c "report" /mnt/test User quota on /mnt/test (/dev/mapper/datavg-test) Blocks User ID Used Soft Hard Warn/Grace ---------- -------------------------------------------------- root 0 0 200 00 [--------] #101 12 0 100 00 [--------] #102 12 0 200 00 [--------]
您可以看到 UID 101 具有设置的特定配额,但 UID 102 继承了默认配额。