本文に進む 日本−日本語
日本HPホーム 製品とサービス お客様サポート/ ダウンロード ソリューション ご購入の方法
≫ お問い合わせ
詳細検索オプション
日本HPホーム
HP-UX リファレンス: セクション 3 : ライブラリ (N~Z) > s

setaclentry(3C)

HP-UX 11i Version 2: September 2004
≫ 

テクニカル ドキュメント

PDF版
フィードバック
ここから本文が始まります

 ≫ 目次

 ≫ 索引

名称

setaclentry(), fsetaclentry() ― ファイルのアクセス制御リスト (ACL) 中のエントリーの追加、変更、削除 (HFS ファイルシステムのみ)

構文

#include <unistd.h> 
#include <acllib.h> 
 
int setaclentry(const char *path, uid_t uid, gid_t gid, int mode); 
 
int fsetaclentry(int fd, uid_t uid, gid_t gid, int mode); 

説明

どちらの呼び出し形式も、ファイルのアクセス制御リスト (ACL) の 1 つのエントリーを追加、変更、削除します。 setaclentry() および fsetaclentry() は、パス名 path) またはオープンするファイル記述子 fd) と、エントリー識別子 uid, gid) を使用します。指定されたエントリーのアクセスモードビットを、与えられた値 mode) に変更します。それら値の意味は、 <unistd.h> 中で定義されています。 modes は、 R_OKW_OK、 および X_OK の形で表されています。 mode 中の無関係なビットは 0 でなければなりません。

ファイルの ACL が与えられた uidgid へのエントリーを持たない場合には、エントリーが作成され ACL に追加されます。 modeMODE_DEL (<acllib.h> 中で定義されている) である場合には、エントリーがオプションのエントリーであるときには、一致するエントリーはファイルの ACL から削除され、ベースエントリーであるときにはそのモードビットが 0 (非アクセス) にセットされます。

uid または gid は、それぞれ ACL_NSUSER または ACL_NSGROUP (<sys/acl.h> 中で定義されている) であることが可能であり、それぞれ未指定のエントリー u.%, %.g, または %.% を表します。ファイルの u.% または %.g は、ファイルの所有者またはグループ ID に対して、それぞれ ACL_FILEOWNERACL_FILEGROUP (<acllib.h> 中で定義されている) を用いて、ベースエントリーを参照することができます。

setaclentry() および fsetaclentry() は、ファイルの ACL を getacl() または fgetacl() を用いて読み出し、それぞれ setacl() または fsetacl() を用いて変更します。

戻り値

正常終了したときには、 setaclentry() および fsetaclentry() は、0 を返します。

エラー

エラーが起きたときには、 setaclentry() および fsetaclentry() 以下の負の値を返し、 errno をセットします。

-1 

ファイルにおいて getacl() もしくは fgetacl() を実行できませんでした。 errno はその理由を示します。

-2 

ファイルにおいて stat() もしくは fstat() を実行できませんでした。 errno はその理由を示します。

-3 

ACL がすでに NACLENTRIES エントリー (<sys/acl.h> 中で定義されている) を持っているために、新しいエントリーを追加できませんでした。

-4 

存在していないエントリーであるために、削除できませんでした。

-5 

ファイルにおいて setacl() もしくは fsetacl() を実行できませんでした。 errno はその理由を示します。

以下のコードフラグメントは、ユーザー ID 115、グループ ID 32 のファイル "work/list" にエントリーを追加し、またはすでに存在する同じユーザー、グループのエントリーがあれば変更し、リードオンリーの新しいアクセスモードを与えます。また、グループ 109 のすべてのユーザーに対し、もしユーザーが存在すれば所有者のベースエントリーをすべてのアクセス権を持つように変更し、エントリーを削除します。

#include <unistd.h> 
#include <acllib.h> 
 
char *filename = "work/list"; 
 
setaclentry (filename, 115, 32, R_OK); 
setaclentry (filename, ACL_FILEOWNER, ACL_NSGROUP, R_OK | W_OK | X_OK); 
setaclentry (filename, ACL_NSUSER, 109, MODE_DEL); 

制約

HFS 

setaclentry()fsetaclentry() は 標準 HP-UX オペレーティングシステムの HFS ファイルシステムでのみサポートされます。

NFS 

setaclentry()fsetaclentry() は、リモートファイル上ではサポートされません。

著者

setaclentry()fsetaclentry() は、HP で開発されました。

印刷用画面へ
プライバシー 本サイト利用時の合意事項
© 1983-2004 Hewlett-Packard Development Company, L.P.