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
- 名称
-
- ライブラリ
-
- 書式
-
- 解説
-
- 戻り値
-
- エラー
-
- セキュリティに関する考察
-
- 関連項目
-
- 規格
-
- 歴史
-
Time: 07:06:24 GMT, January 12, 2009