ACCESS

Section: System Calls (2)
索引 jman

BSD mandoc
 

索引

名称

access , eaccess - ファイルのアクセス可能性をチェックする  

索引

ライブラリ

Lb libc  

索引

書式

In unistd.h Ft int Fn access const char *path int mode Ft int Fn eaccess const char *path int mode  

索引

解説

Fn access システムコールと Fn eaccess システムコールは、 Fa mode 引数によって示されたアクセス許可について Fa path 引数で指定されるファイルのアクセス可能性をチェックします。 Fa mode の値は、チェックされるアクセス許可 (読取り許可については R_OK 、書込み許可については W_OK 、実行 / 検索許可については X_OK のビット単位の OR、または存在試験 ( F_OK ) のどちらかです。

さらなる情報は、 intro(2) の Sx ファイルアクセスパーミッション セクションを参照してください。

Fn eaccess システムコールは、実効ユーザ ID とグループアクセスリストを用いて 要求を許可します。 一方 Fn access システムコールは、実効ユーザ ID の代わりに実ユーザ ID を、 実効グループ ID の代わりに実グループと残りのグループアクセスリストを 用います。

プロセスの実ユーザもしくは実効ユーザに適切な特権があり、 X_OK について成功を示していても、実際にはファイルの実行許可ビットが 設定されていないことがあります。 同じことが、 R_OK および W_OK にも該当します。  

索引

戻り値

Rv -std  

索引

エラー

ファイルへのアクセスは次の場合に拒絶されます:

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

 

索引

セキュリティに関する考察

Fn access システムコールは、競合状態によって潜在的なセキュリティホールとなるので、 使うべきではありません。 ユーザ ID 設定とグループ ID 設定されたアプリケーションは、 実効ユーザ ID もしくは実効グループ ID を復元するようにしてください。 そして実ユーザ ID もしくは実グループ ID でのアクセスを、 Fn access を使用して模擬的にチェックするのではなく、直接実行するべきです。 不適切に使用された場合、 Fn eaccess 呼び出しも同様にして競合の対象となることがあります。  

索引

関連項目

chmod(2), intro(2), stat(2)  

索引

規格

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

索引

歴史

Fn access 関数は AT&T System v7 で登場しました。


 

索引

Index

名称
ライブラリ
書式
解説
戻り値
エラー
セキュリティに関する考察
関連項目
規格
歴史

jman



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