.\" Copyright (c) 1983, 1990, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" This code is derived from software contributed to Berkeley by .\" Robert Elz at The University of Melbourne. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)quotactl.2 8.2 (Berkeley) 3/10/95 .\" %FreeBSD: src/lib/libc/sys/quotactl.2,v 1.23 2003/09/10 19:24:33 ru Exp % .\" .\" WORD: quota 割り当て制限 .\" WORD: quota file 割り当て制限情報ファイル .\" WORD: quota file 割り当て制限を記録したファイル .\" WORD: usage 使用状況 .\" .\" $FreeBSD$ .Dd March 5, 1999 .Dt QUOTACTL 2 .Os .Sh 名称 .Nm quotactl .Nd ファイルシステム割り当て制限を操作する .Sh ライブラリ .Lb libc .Sh 書式 .In sys/types.h .In ufs/ufs/quota.h .Ft int .Fn quotactl "const char *path" "int cmd" "int id" "void *addr" .Sh 解説 .Fn quotactl システムコールは、 ファイルシステムの割り当て制限を有効や無効にしたり、操作します。 .Fa cmd で与えられた割り当て制限制御コマンドは、 .Fa id で指定されたユーザと .Fa path で指定されたファイルに対して動作します (注: .Fa cmd の値を明確に表すために、 .In ufs/ufs/quota.h で定義されている QCMD マクロを使用すべきです)。 オプションとして各コマンド固有のデータ構造体のアドレスを .Fa addr に指定できます。 これがどう解釈されるかは各コマンド毎に後述します。 .Pp 現時点で、割り当て制限は .Dq ufs ファイルシステムについてのみサポートされています。 .Dq ufs の場合、コマンドは主たるコマンド (後述) および .Fa id 引数の解釈方法を指示するコマンドタイプで構成されます。 コマンドタイプは、 .Fa id をユーザ識別子として解釈する (USRQUOTA) と、 グループ識別子として解釈する (GRPQUOTA) がサポートされています。 .Dq ufs 固有のコマンドは次のとおりです: .Bl -tag -width Q_QUOTAOFFxx .It Dv Q_QUOTAON .Fa path で指定されるファイルシステム用のディスク割り当て制限を有効にします。 コマンドタイプには有効にする割り当て制限の種類を指定します。 .Fa addr 引数には、割り当て制限情報を取り出すファイルを指定します。 割り当て制限を記録したファイルが存在している必要があります。 このファイルは通常、 .Xr quotacheck 8 プログラムで作成されます。 .Fa id 引数は使用されません。 スーパユーザだけが割り当て制限をオンにできます。 .It Dv Q_QUOTAOFF .Fa path で指定されるファイルシステムに対する、ディスク割り当て制限を無効にします。 コマンドタイプには、無効にする割り当て制限の種類を指定します。 .Fa addr 引数と .Fa id 引数は使用されません。 スーパユーザだけが割り当て制限をオフにできます。 .It Dv Q_GETQUOTA 識別子 .Fa id で指定されるユーザまたはグループ (どちらであるかはコマンドタイプによって決定されます) の、ディスク割り当て制限と現在の使用状況を取得します。 .Fa addr 引数は、 .Fa struct dqblk 構造体 .In ( ufs/ufs/quota.h で定義されています) を指すポインタです。 .It Dv Q_SETQUOTA 識別子 .Fa id で指定されるユーザまたはグループ (どちらであるかはコマンドタイプによって決定されます) のディスク割り当て制限を設定します。 .Fa addr 引数は、 .Fa struct dqblk 構造体 .In ( ufs/ufs/quota.h で定義されています) を指すポインタです。 .Fa dqblk 構造体の使用状況を示すフィールドは無視されます。 このシステムコールはスーパユーザだけに制限されています。 .It Dv Q_SETUSE 識別子 .Fa id で指定されるユーザまたはグループ (どちらであるかはコマンドタイプによって決定されます) のディスク使用制限を設定します。 .Fa addr 引数は、 .Fa struct dqblk 構造体 .In ( ufs/ufs/quota.h で定義されています) を指すポインタで、 使用状況を示すフィールドだけが使われます。 このシステムコールはスーパユーザだけに制限されています。 .It Dv Q_SYNC 割り当て使用状況の、ディスク上のコピーを更新します。 コマンドタイプには、どのタイプの割り当て制限を更新するかを指定します。 .Fa id 引数と .Fa addr 引数は無視されます。 .El .Sh 戻り値 .Rv -std quotactl .Sh エラー .Fn quotactl システムコールは次の場合に失敗します: .Bl -tag -width Er .It Bq Er EOPNOTSUPP カーネルが .Dv QUOTA オプションを指定してコンパイルされていません。 .It Bq Er EUSERS 割り当て制限のテーブルを拡張できません。 .It Bq Er EINVAL .Fa cmd 引数またはコマンドタイプが無効です。 .Dv Q_GETQUOTA および .Dv Q_SETQUOTA では、クォータはこのシステムに対して現在有効ではありません。 .It Bq Er EACCES .Dv Q_QUOTAON において、割り当て制限情報ファイルがプレーンファイルではありません。 .It Bq Er EACCES 指定されたパスには、検索が許可されていないディレクトリが含まれています。 .It Bq Er ENOTDIR パスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。 .It Bq Er ENOENT 指定されたファイルが存在しません。 .It Bq Er ELOOP パス名を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EROFS .Dv Q_QUOTAON で、割り当て制限を記録したファイルが 読取り専用ファイルシステム上にあります。 .It Bq Er EIO 割り当て制限を記録したファイルに読み書きしている間に .Tn I/O (入出力) エラーが発生しました。 .It Bq Er EFAULT 無効な .Fa addr が指定されました。 対応する構造体をカーネルに、またはカーネルからコピーできませんでした。 .It Bq Er EFAULT .Fa path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。 .It Bq Er EPERM 特権が必要な呼び出しであったにも関わらず、 スーパユーザ以外のユーザによって呼び出されました。 .El .Sh 関連項目 .Xr quota 1 , .Xr fstab 5 , .Xr edquota 8 , .Xr quotacheck 8 , .Xr quotaon 8 , .Xr repquota 8 .Sh バグ このシステムコールを .Xr setrlimit 2 および .Xr getrlimit 2 で提供されるリソース制限に関するインタフェースと統合する、 何らかの方法があるはずです。 .Sh 歴史 .Fn quotactl システムコールは .Bx 4.3 Reno で登場しました。