CHOWN

Section: System Calls (2)
索引 jman

BSD mandoc
 

索引

名称

chown fchown lchown - ファイルの所有者とグループを変更する  

索引

ライブラリ

Lb libc  

索引

書式

In unistd.h Ft int Fn chown const char *path uid_t owner gid_t group Ft int Fn fchown int fd uid_t owner gid_t group Ft int Fn lchown const char *path uid_t owner gid_t group  

索引

解説

Fa path で指定された、または Fa fd で参照されたファイルの所有者 ID およびグループ ID を、 引数に指定された Fa owner および Fa group に変更します。 ファイルの所有者は、 Fa group に自分が所属している任意のグループを指定できます。 しかし、 Fa owner を変更することができるのはスーパユーザのみです。

Fn chown システムコールは、スーパユーザによって実行される場合をのぞいて、 ファイル上のユーザ ID 設定ビットとグループ ID 設定ビットをクリアします。 これは、ユーザ ID 設定あるいはグループ ID 設定されたプログラムが 偶然、またはいたずらで作成されるのを防止するためです。 Fn chown システムコールは、シンボリックリンクをたどり、 リンク自体ではなくリンクのターゲットに作用します。

Fn fchown システムコールが特に便利なのは、ファイルロッキングプリミティブとともに 使用するときです ( flock(2) を参照)。

Fn lchown システムコールは、 Fn chown に類似していますが、シンボリックリンクをたどりません。

所有者 ID またはグループ ID として -1 を指定した場合、 その ID は変更されません。  

索引

戻り値

Rv -std  

索引

エラー

Fn chown と Fn lchown は、次の場合に処理を失敗して、ファイルは変更されません:

Bq Er ENOTDIR
パスの構成要素中にディレクトリ以外のものが含まれています。
Bq Er ENAMETOOLONG
パス名の構成要素が 255 文字を越えているか、 またはパス名全体が 1023 文字を越えています。
Bq Er ENOENT
指定されたファイルが存在しません。
Bq Er EACCES
指定されたパスには、検索が許可されていないディレクトリが含まれています。
Bq Er ELOOP
パス名を変換するときに検出されたシンボリックリンクが多すぎます。
Bq Er EPERM
実効ユーザ ID がスーパユーザでありません。
Bq Er EROFS
指定されたファイルは読取り専用ファイルシステム上にあります。
Bq Er EFAULT
Fa path 引数が、プロセスに割り当てられたアドレス空間の範囲外を指しています。
Bq Er EIO
ファイルシステムに読み書きしている間に入出力エラーが発生しました。

Fn fchown システムコールは、次の場合に失敗します:

Bq Er EBADF
Fa fd 引数が有効な記述子ではありません。
Bq Er EINVAL
Fa fd 引数がファイルではなくソケットを参照しています。
Bq Er EPERM
実効ユーザ ID がスーパユーザではありません。
Bq Er EROFS
指定のファイルは読取り専用ファイルシステムに常駐しています。
Bq Er EIO
ファイルシステムに読み書きしている間に入出力エラーが発生しました。

 

索引

関連項目

chgrp(1), chmod(2), flock(2), chown(8)  

索引

規格

Fn chown システムコールは St -p1003.1-90 に適合しています。  

索引

歴史

Fn chown 関数は AT&T System v7 で登場しました。 Fn fchown システムコールは BSD 4.2 で登場しました。

Fn chown システムコールは BSD 4.4 でシンボリックリンクをたどるように変更されました。 Fn lchown システムコールは、機能の欠落を補充するために Fx 3.0 で追加されました。


 

索引

Index

名称
ライブラリ
書式
解説
戻り値
エラー
関連項目
規格
歴史

jman



Time: 07:06:24 GMT, January 12, 2009