The
quotactl()
system call enables, disables and
manipulates file system quotas.
A quota control command
given by
cmd
operates on the given filename
path
for the given user or group
id.
(NOTE: One should use the QCMD macro defined in
<ufs/ufs/quota.h>
to formulate the value for
cmd,
.)
The address of an optional command specific data structure,
addr,
may be given; its interpretation
is discussed below with each command.
For commands that use the
id
identifier, it must be either -1 or any positive value.
The value of -1 indicates that the current UID or GID should be used.
Any other negative value will return an error.
Currently quotas are supported only for the
"ufs"
file system.
For
"ufs",
a command is composed of a primary command (see below)
and a command type used to interpret the
id.
Types are supported for interpretation of user identifiers (USRQUOTA)
and group identifiers (GRPQUOTA).
The
"ufs"
specific commands are:
Q_QUOTAON
|
Enable disk quotas for the file system specified by
path.
The command type specifies the type of the quotas being enabled.
The
addr
argument specifies a file from which to take the quotas.
The quota file must exist;
it is normally created with the
quotacheck(8)
program.
The
id
argument is unused.
Only the super-user may turn quotas on.
|
Q_QUOTAOFF
|
Disable disk quotas for the file system specified by
path.
The command type specifies the type of the quotas being disabled.
The
addr
and
id
arguments are unused.
Only the super-user may turn quotas off.
|
Q_GETQUOTASIZE
|
Get the wordsize used to represent the quotas for the user or group
(as determined by the command type).
Possible values are 32 for the old-style quota file
and 64 for the new-style quota file.
The
addr
argument is a pointer to an integer into which the size is stored.
The identifier
id
is not used.
|
Q_GETQUOTA
|
Get disk quota limits and current usage for the user or group
(as determined by the command type) with identifier
id.
The
addr
argument
is a pointer to a
struct, dqblk
structure (defined in
<ufs/ufs/quota.h>).
|
Q_SETQUOTA
|
Set disk quota limits for the user or group
(as determined by the command type) with identifier
id.
The
addr
argument
is a pointer to a
struct, dqblk
structure (defined in
<ufs/ufs/quota.h>).
The usage fields of the
dqblk
structure are ignored.
This system call is restricted to the super-user.
|
Q_SETUSE
|
Set disk usage limits for the user or group
(as determined by the command type) with identifier
id.
The
addr
argument
is a pointer to a
struct, dqblk
structure (defined in
<ufs/ufs/quota.h>).
Only the usage fields are used.
This system call is restricted to the super-user.
|
Q_SYNC
|
Update the on-disk copy of quota usages.
The command type specifies which type of quotas are to be updated.
The
id
and
addr
arguments are ignored.
|