Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ chown(2) — NEWS-os 4.1C

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

chown(8)

chgrp(1)

chmod(2)

flock(2)

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.1C

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026