For each filesystem with quotas enabled/on where is the actual quota information stored?
Ver, por exemplo, o quotaon manpage . Haverá arquivos com o nome .quota * no diretório raiz do sistema de arquivos, que contêm as informações necessárias (.quota.user, .quota.group, .quota.ops.user, .quota.ops.group).
Say user foo creates a new file on /home. How does the kernel determine whether user foo is below their hard limit? Does the kernel have to tally up quota information on that filesystem each time or is it in the superblock or somewhere else?
Não, o kernel continuamente rastreia o uso do fs, portanto, não precisa recalcular isso em cada alocação (o que seria proibitivamente caro). Ele fará o cálculo uma vez quando as cotas estiverem ativadas e, em seguida, atualizará isso. O cálculo inicial é realizado por quotacheck .
As far as I understand, the kernel consults the aquota.user file for the actual rules, but where is the current quota usage data stored? Can this be viewed with any tools outside repquota and the like? TIA!!
As informações de cota são armazenadas em .quota * (veja acima). Não tenho conhecimento de nenhuma ferramenta para gerar relatórios de uso de cotas, além do repquota. Mas você deve ser capaz de gerar a maioria dos relatórios usando o / scripting repquota. Ou você terá que hackear a fonte ...
BTW:
O Quota mini-HOWTO oferece uma boa visão geral sobre o sistema de cotas do Linux. É um pouco datado, mas os fundamentos não mudaram muito.