Portál AbcLinuxu, 30. října 2025 01:44
usrjquota=aquota.user,grpjquota=aquota.group,jqfmt=vfsv1getent passwd je normálně v systému vidím a mohu s nimi pracovat, místní přihlášení ale povoleno nemají
*** Hlášení pro kvóty uživatel na zařízení /dev/md1
Doba odkladu bloků: 7dnů, Doba odkladu i-uzlů: 7dnů
Limity bloků Limity souborů
Uživatel užito měkký pevný odklad užito měkký pevný odklad
----------------------------------------------------------------------
ota -- 636 1024 20480 1 0 0
Když nyní jako uživatel ota chci nahrát soubor o velikosti 500 kB, už mne to nepustí s hlášením, že na to nemám dostatek volného místa.
Pokud někdo tušíte, kde by mohl být zakopaný pes, budu vděčný.
ddčkem zaflákat vlastní adresář. Když dosáhnu kvóty, dd zdechne a při dalším spuštění obdržím dd: failed to open ‘test4.dat’: Disk quota exceeded. Jsa mimo kancl to nemůžu vyzkoušet z Windowsí stanice, ale pokud se do skoro obsazeného adresáře pokusím něco nakopírovat smb protokolem, přes limit mě to taky nepustí. Máš možnost to aspoň zkušebně rozjet na XFSku místo Ext4?
/dev/mapper/storage_encrypted /mnt/storage xfs defaults,usrquota,prjquota 0 0/etc/projects
59:/mnt/storage/home/user_1 60:/mnt/storage/home/user_2 61:/mnt/storage/home/user_3 .../etc/projid
xfspr_user_1:59 xfspr_user_2:60 xfspr_user_3:61 ...Relevantní kus bashího skriptu, kterým vytvářím uživatelské adresáře, nastavuji práva atp.
# Zjisti současné nejvyšší ID XFS projektu
MAX_CURR_PRID=$(awk -F":" '{ print $2 }' /etc/projid | sort -nr | head -n1)
if [[ -z "$MAX_CURR_PRID" ]]; then
MAX_CURR_PRID=58
else
if ! [[ $MAX_CURR_PRID =~ $ISNUM_RE ]]; then
echo "Unexpected non-numeric value as project ID."
echo "Please correct the problem and set the XFS quotas manually."
exit
fi
fi
# Nastav nové ID projektu a jeho jméno
MAX_CURR_PRID=$((MAX_CURR_PRID+1))
XFS_PROJECTNAME="$XFS_PR_PREFIX$USERNAME"
# Uprav příslušné konfiguráky
echo $XFS_PROJECTNAME:$MAX_CURR_PRID >> /etc/projid
echo $MAX_CURR_PRID:"$USER_HOME_DIR" >> /etc/projects
# Zaregistruj projekt ve správě kvót
xfs_quota -x -c "project -s $XFS_PROJECTNAME" "$STORAGE_ROOT"
# Nastav limit pro uživatelský /home
xfs_quota -x -c "limit -p bsoft=10g bhard=10g $XFS_PROJECTNAME" "$STORAGE_ROOT"
# Nastav celkový limit pro uživatele (10 G v /home, 12 G celkem)
xfs_quota -x -c "limit -u bsoft=12g bhard=12g $USERNAME" "$STORAGE_ROOT"
Uživatelé mají právo zapisovat do více sdílených adresářů, proto kromě ID uživatele používám ještě kvóty dle projektů. Ve výsledku může uživatel zapsat do svého /home maximálně 10 GB a celkově 12 GB. Funguje to, protože /home je v adresářové struktuře uvnitř rootu projektu.
xfs_quota hlásí překročení soft kvóty správně.
df na adresáři připojeném ručně CIFSem ukazují, kolik místa zbývá oddílu, kde se sdílený adresář na serveru nachází. Bohužel mě nenapadá, co by se s tím dalo dělat.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.