cl-quota utility allows setting inodes limits for users of the system.
cl-quota integrates with the panels through a standard mechanism - Integrating LVE Limits with Packages.
Panel users are such users whose UIDs are issued by the above panel integration mechanism. The list of panel packages and the information on the user's affiliation to a particular package is obtained from there as well.
When installing/reading the limits, the following peculiarities are applied:
1.When displaying quotas, cl-quota displays information about the limits of all users - system and panel. No filter applied. The actual limit values are always displayed.
2.Limit value -1 for the packages (see below) is displayed as dash (-).
3.If cl-quota is running under root, it will display the limits returned by repquota utility with no changes. If it is running under some other user, it will return data from a special cache file, see “Quotas cache and synchronization”.
4.Limits setting only works for panel users, for all other users limits are not set (the command is ignored). The only exception - uid=0. The limits are never set for the root user (uid=0), but they are stored in DB file and are used by inheritance mechanism. See “Limits Inheritance”.
5.Hard and soft limits are completely independent, сl-quota does not apply any interdependencies to them. Setting only one of them (any) is acceptable, the other one will not change.
cl-quota utility also supports package limits set/read. When setting package limits, they are set for all users of a particular package except for those whose limits are set individually. See also “Limits Inheritance”.
If package name is "default", then setting limits command is ignored. If some limits are set for this package in DB file, they will be displayed along with all the others, but will not be used. See also “Limits inheritance”.
Any positive numbers are allowed as limit values. cl-quota neither controls nor changes these values except the following cases:
•negative values are taken modulo;
•fractional values are converted to integers by discarding the fractional part;
•if the transferred value can not be turned into a number (for example, 67wg76), it is completely ignored and the limit is not set at all.
Then these values are transmitted directly to setquota system utility for the actual setting of the limits.
Thus cl-quota has two limit values, which are processed in a special way:
•0. Means inheritance of the limit from the package where the user is located, or from uid=0. See also “Limits inheritance” for more detailed information.
•-1. The real limits are set to 0, which means no limits, literally "unlimited". This is legit both for individual and for package limits. Limit value -1 is stored in the database as well as any other but is never displayed.
Individual and package limits are always saved in DB file /etc/container/cl-quotas.dat. Limits from there are used when synchronizing quotas. Please find more details in “Limits Synchronization”.
Also, find detailed information on DB file itself in “Quotas DB File” section.
Utility options are described in “CLI Options” section.