quotactl()
システムコールは、
ファイルシステムの割り当て制限を有効や無効にしたり、操作します。
cmd
で与えられた割り当て制限制御コマンドは、
id
で指定されたユーザと
path
で指定されたファイルに対して動作します (注:
cmd
の値を明確に表すために、
<ufs/ufs/quota.h>
で定義されている QCMD マクロを使用すべきです)。
オプションとして各コマンド固有のデータ構造体のアドレスを
addr
に指定できます。
これがどう解釈されるかは各コマンド毎に後述します。
現時点で、割り当て制限は
"ufs"
ファイルシステムについてのみサポートされています。
"ufs"
の場合、コマンドは主たるコマンド (後述) および
id
引数の解釈方法を指示するコマンドタイプで構成されます。
コマンドタイプは、
id
をユーザ識別子として解釈する (USRQUOTA) と、
グループ識別子として解釈する (GRPQUOTA) がサポートされています。
"ufs"
固有のコマンドは次のとおりです:
Q_QUOTAON
|
path
で指定されるファイルシステム用のディスク割り当て制限を有効にします。
コマンドタイプには有効にする割り当て制限の種類を指定します。
addr
引数には、割り当て制限情報を取り出すファイルを指定します。
割り当て制限を記録したファイルが存在している必要があります。
このファイルは通常、
quotacheck(8)
プログラムで作成されます。
id
引数は使用されません。
スーパユーザだけが割り当て制限をオンにできます。
|
Q_QUOTAOFF
|
path
で指定されるファイルシステムに対する、ディスク割り当て制限を無効にします。
コマンドタイプには、無効にする割り当て制限の種類を指定します。
addr
引数と
id
引数は使用されません。
スーパユーザだけが割り当て制限をオフにできます。
|
Q_GETQUOTA
|
識別子
id
で指定されるユーザまたはグループ
(どちらであるかはコマンドタイプによって決定されます)
の、ディスク割り当て制限と現在の使用状況を取得します。
addr
引数は、
struct, dqblk
構造体
<(>
で定義されています) を指すポインタです。
|
Q_SETQUOTA
|
識別子
id
で指定されるユーザまたはグループ
(どちらであるかはコマンドタイプによって決定されます)
のディスク割り当て制限を設定します。
addr
引数は、
struct, dqblk
構造体
<(>
で定義されています) を指すポインタです。
dqblk
構造体の使用状況を示すフィールドは無視されます。
このシステムコールはスーパユーザだけに制限されています。
|
Q_SETUSE
|
識別子
id
で指定されるユーザまたはグループ
(どちらであるかはコマンドタイプによって決定されます)
のディスク使用制限を設定します。
addr
引数は、
struct, dqblk
構造体
<(>
で定義されています) を指すポインタで、
使用状況を示すフィールドだけが使われます。
このシステムコールはスーパユーザだけに制限されています。
|
Q_SYNC
|
割り当て使用状況の、ディスク上のコピーを更新します。
コマンドタイプには、どのタイプの割り当て制限を更新するかを指定します。
id
引数と
addr
引数は無視されます。
|