diff options
Diffstat (limited to 'usr/src/man/man4i/quotactl.4i')
-rw-r--r-- | usr/src/man/man4i/quotactl.4i | 227 |
1 files changed, 227 insertions, 0 deletions
diff --git a/usr/src/man/man4i/quotactl.4i b/usr/src/man/man4i/quotactl.4i new file mode 100644 index 0000000000..47ede04ec9 --- /dev/null +++ b/usr/src/man/man4i/quotactl.4i @@ -0,0 +1,227 @@ +.\" Copyright (c) 2004, Sun Microsystems, Inc. All Rights Reserved +.\" Copyright (c) 2017, Joyent, Inc. +.\" The contents of this file are subject to the terms of the +.\" Common Development and Distribution License (the "License"). +.\" You may not use this file except in compliance with the License. +.\" +.\" You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE +.\" or http://www.opensolaris.org/os/licensing. +.\" See the License for the specific language governing permissions +.\" and limitations under the License. +.\" +.\" When distributing Covered Code, include this CDDL HEADER in each +.\" file and include the License file at usr/src/OPENSOLARIS.LICENSE. +.\" If applicable, add the following below this CDDL HEADER, with the +.\" fields enclosed by brackets "[]" replaced with your own identifying +.\" information: Portions Copyright [yyyy] [name of copyright owner] +.Dd October 28, 2017 +.Dt QUOTACTL 4I +.Os +.Sh NAME +.Nm quotactl +.Nd manipulate disk quotas +.Sh SYNOPSIS +.In sys/fs/ufs_quota.h +.Fn "int ioctl" "int fd" "Q_QUOTACTL" "struct quotctl *qp" +.Sh DESCRIPTION +This +.Fn ioctl +call manipulates disk quotas. +.Fa fd +is the file descriptor returned by the +.Xr open 2 +system call after opening the +.Pa quotas +file (located in the root directory of the filesystem running quotas). +.Dv Q_QUOTACTL +is defined in +.Pa /usr/include/sys/fs/ufs_quota.h . +.Fa qp +is the address of the +.Vt quotctl +structure which is defined as +.Bd -literal -offset 2n +struct quotctl { + int op; + uid_t uid; + caddr_t addr; +}; +.Ed +.Pp +.Fa op +indicates an operation to be applied to the user +.Sy ID +.Fa uid . +.Po +See below. +.Pc +.Fa addr +is the address of an optional, command specific, data +structure which is copied in or out of the system. +The interpretation of +.Fa addr +is given with each value of +.Fa op +below. +.Bl -tag -width Q_GETQUOTA +.It Sy Q_QUOTAON +Turn on quotas for a file system. +.Fa addr +points to the full pathname of the +.Pa quotas +file. +.Fa uid +is ignored. +It is recommended that +.Fa uid +have the value of +.Sy 0 . +This call is restricted to the super-user. +.It Dv Q_QUOTAOFF +Turn off quotas for a file system. +.Fa addr +and +.Fa uid +are ignored. +It is +recommended that +.Fa addr +have the value of +.Sy NULL +and +.Fa uid +have the value of +.Sy 0 . +This call is restricted to the super-user. +.It Dv Q_GETQUOTA +Get disk quota limits and current usage for user +.Fa uid . +.Fa addr +is a pointer to a +.Vt dqblk +structure +.Po +defined in +.In sys/fs/ufs_quota.h +.Pc . +Only the super-user may get the quotas of a user other than himself. +.It Dv Q_SETQUOTA +Set disk quota limits and current usage for user +.Fa uid . +.Fa addr +is a pointer to a +.Vt dqblk +structure +.Po +defined in +.In sys/fs/ufs_quota.h +.Pc . +This call is restricted to the super-user. +.It Dv Q_SETQLIM +Set disk quota limits for user +.Fa uid . +.Fa addr +is a pointer to a +.Vt dqblk +structure +.Po +defined in +.In sys/fs/ufs_quota.h +.Pc . +This call is restricted to the super-user. +.It Dv Q_SYNC +Update the on-disk copy of quota usages for this file system. +.Fa addr +and +.Fa uid +are ignored. +.It Dv Q_ALLSYNC +Update the on-disk copy of quota usages for all file systems with active +quotas. +.Fa addr +and +.Fa uid +are ignored. +.El +.Sh RETURN VALUES +This +Fn ioctl +returns: +.Bl -tag -width xx +.It Sy 0 +on success. +.It Sy \(mi1 +on failure and sets +.Va errno +to indicate the error. +.El +.Sh FILES +.Bl -tag -width x +.It Pa /usr/include/sys/fs/ufs_quota.h +quota-related structure/function definitions and defines +.El +.Sh ERRORS +.Bl -tag -width EFAULT +.It Er EFAULT +.Fa addr +is invalid. +.It Er EINVAL +The kernel has not been compiled with the +.Sy QUOTA +option. +.Fa op +is invalid. +.It Er ENOENT +The +.Pa quotas +file specified by +.Fa addr +does not exist. +.It Er EPERM +The call is privileged and the calling process did not assert +.Brq Sy PRIV_SYS_MOUNT +in the effective set. +.It Er ESRCH +No disk quota is found for the indicated user. +Quotas have not been turned on for this file system. +.It Er EUSERS +The quota table is full. +.El +.Pp +If +.Fa op +is +.Dv Q_QUOTAON , +.Fn ioctl +may set +.Va errno +to: +.Bl -tag -width EACCES +.It Er EACCES +The quota file pointed to by +.Fa addr +exists but is not a regular file. +The quota file pointed to by +.Fa addr +exists but is not on the file system pointed to by +.Fa special . +.It Er EIO +Internal I/O error while attempting to read the +.Pa quotas +file pointed to by +.Fa addr . +.El +.Sh SEE ALSO +.Xr getrlimit 2 , +.Xr mount 2 , +.Xr quota 8 , +.Xr quotacheck 8 , +.Xr quotaon 8 +.Sh BUGS +There should be some way to integrate this call with the resource limit +interface provided by +.Xr setrlimit 2 +and +.Xr getrlimit 2 . +.Pp +This call is incompatible with Melbourne quotas. |