名 前
euidaccess, eaccess − フ ァ イ ル へ の ア ク セ ス 権 を 実 効 ユ ー ザ ー で チ ェ ッ ク す る
書 式
#define
_GNU_SOURCE /* feature_test_macros(7) 参 照
*/
#include <unistd.h>
int
euidaccess(const char *pathname, int
mode);
int eaccess(const char *pathname, int
mode);
説 明
access(2) と 同 様 、 euidaccess() は 引 き 数 pathname で 指 定 さ れ た フ ァ イ ル の 許 可 (permission) と 存 在 の チ ェ ッ ク を 行 う 。 access(2) は プ ロ セ ス の 実 (real) ユ ー ザ ー ID / 実 グ ル ー プ ID を 用 い て チ ェ ッ ク を 行 う の に 対 し 、 euidaccess() は 実 効 (effective) ID を 用 い る 。
mode は R_OK, W_OK, X_OK, F_OK の 一 つ 以 上 か ら 構 成 さ れ る マ ス ク で あ る 。 R_OK, W_OK, X_OK, F_OK は access(2) と 同 じ 意 味 を 持 つ 。
eaccess() は euidaccess() の 同 義 語 で あ り 、 他 の い く つ か の シ ス テ ム と の 互 換 性 の た め に 提 供 さ れ て い る 。
返 り 値
成 功 し た 場 合 (要 求 し た 全 て に つ い て 許 可 が 得 ら れ た ら )、 ゼ ロ が 返 さ れ る 。 エ ラ ー の 場 合 (mode の 少 な く と も 一 つ の ビ ッ ト で 要 求 し た 許 可 が な か っ た 場 合 や 、 他 の エ ラ ー が 起 こ っ た 場 合 )、 −1 が 返 さ れ 、 errno が 適 切 に 設 定 さ れ る 。
エ ラ ー
access(2) と 同 じ 。
バ ー ジ ョ ン
eaccess() 関 数 は glibc の バ ー ジ ョ ン 2.4 で 追 加 さ れ た 。
属 性
マ ル チ ス レ ッ デ ィ ン グ (pthreads(7) 参 照 ) 関 数 euidaccess() と eaccess() は ス レ ッ ド セ ー フ で あ る 。
準 拠
こ れ ら の 関 数 は 非 標 準 で あ る 。 他 の い く つ か の シ ス テ ム に は eaccess() 関 数 が あ る 。
注 意
警 告 : あ る 操 作 を 実 行 す る 前 に こ の 関 数 を 使 っ て フ ァ イ ル に 対 す る プ ロ セ ス の ア ク セ ス 許 可 を 確 認 し て か ら 、 そ の 情 報 に 基 づ い て 操 作 を 行 う と 、 競 合 条 件 が 発 生 す る 可 能 性 が あ る 。 こ れ は 二 つ の 操 作 の 間 で フ ァ イ ル の ア ク セ ス 許 可 が 変 化 す る 場 合 が あ る か ら で あ る 。 一 般 的 に は 、 必 要 な 操 作 の み を 行 い 、 そ の 際 に 発 生 し た ア ク セ ス 許 可 に 関 す る エ ラ ー を 処 理 す る 方 が 安 全 で あ る 。 こ の 関 数 は 常 に シ ン ボ リ ッ ク リ ン ク の 展 開 を 行 う 。 シ ン ボ リ ッ ク リ ン ク の ア ク セ ス 許 可 を 確 認 す る 必 要 が あ る 場 合 は 、 フ ラ グ AT_EACCESS と AT_SYMLINK_NOFOLLOW を 付 け て faccessat(2) を 使 う こ と 。
関 連 項 目
access(2), chmod(2), chown(2), faccessat(2), open(2), setgid(2), setuid(2), stat(2), credentials(7), path_resolution(7)
こ の 文 書 に つ い て
こ の man ペ ー ジ は Linux man−pages プ ロ ジ ェ ク ト の リ リ ー ス 3.79 の 一 部 で あ る 。 プ ロ ジ ェ ク ト の 説 明 と バ グ 報 告 に 関 す る 情 報 は http://www.kernel.org/doc/man−pages/ に 書 か れ て い る 。