CHOWN(2) — NEWS-OS Programmer’s Manual
名称
chown − ファイルの所有者とグループを変更する
形式
chown(path, owner, group)
char ∗path;
int owner, group;
fchown(fd, owner, group)
int fd, owner, group;
解説
path または fd で指定されたファイルの owner と group が、 指定に従って変更されます。 スーパーユーザだけがファイルの所有者を 変更することができます。 なぜなら、 もし一般のユーザが自分のファイルを 他のユーザに渡すことができると、 ファイルスペースのアカウンティングが正常に働かなくなるからです。 ファイルの所有者は、 グループを 自分がメンバになっているグループへ変更することができます。
システムによっては、 chown を 使用すると、 セットユーザ ID およびセットグループ ID をプログラムが偶発的に作成するのを 防止するために、 ファイルのセットユーザ ID およびセットグループ ID ビットが クリアされることもあります。
fchown は、 プリミティブを ロックしているファイル ( flock(2) 参照) と連係して使用されると、 特に有用です。
owner または group を −1 として指定することによって、 所有者 ID またはグループ ID のどちらか一方を 変更しないこともできます。
path の最後の構成要素がシンボリックリンクになっている場合には、 それが指しているファイルまたはディレクトリの所有権とグループではなく、 そのシンボリックリンクの所有権とグループが変更されます。
リターン値
オペレーションが成功した場合には、 値 0 が返されます。 エラーが発生した場合には、 −1 が返され、 さらに特定のエラーコードがグローバル変数 errno に入れられます。
エラー
以下の場合には、 chown は失敗します。
[ENOTDIR] パスプレフィックスの構成要素がディレクトリではないものがある。
[EINVAL] パス名に最上位ビットがセットされたキャラクタが含まれている。 (NEWS-OS では、このエラーはおきません。)
[ENAMETOOLONG]
パス名の 1 構成要素が 255 バイトを 超えている、 またはパス名全体が 1023 バイトを 超えている。
[ENOENT] 指定されたファイルが存在していない。
[EACCES] パスプレフィックスの構成要素についてサーチパーミッションが 許されていないものがある。
[ELOOP] パス名の処理で遭遇したシンボリックリンクの数が多すぎる。
[EPERM] 有効ユーザ ID がスーパーユーザのものではない。
[EROFS] 指定されたファイルが読み取り専用のファイルシステム上にある。
[EFAULT] path が、 そのプロセスに割り当てられたアドレススペースの外を 指している。
[EIO] ファイルシステムへの書き込みまたはファイルシステムからの読み取りを 行っている間に入出力エラーが発生した。
以下に示されているエラーのいずれかが発生した場合には、 fchown は失敗します。
[EBADF] fd が有効なディスクリプタではない。
[EINVAL] fd が、 ファイルではなく、 ソケットを 指している。
[EPERM] 有効ユーザ ID がスーパーユーザのものではない。
[EROFS] 指定されたファイルが読み取り専用のファイルシステム上にある。
[EIO] ファイルシステムへの書き込みまたはファイルシステムからの読み取りを 行っている間に入出力エラーが発生した。
関連事項
chown(8), chgrp(1), chmod(2), flock(2)
NEWS-OSRelease 4.2.1R