RIGHTS(4) |
FreeBSD Kernel Interfaces Manual |
RIGHTS(4) |
名称
Capability rights —
ファイル記述子のための Capsicum ケーパビリティの権利
解説
ファイル記述子が
accept(2),
accept4(2),
fhopen(2),
kqueue(2),
mq_open(2),
open(2),
openat(2),
pdfork(2),
pipe(2),
shm_open(2),
socket(2) または
socketpair(2) のような関数によって作成されるとき、すべてのケーパビリティの権利が割り当てられます。それらの権利は、
cap_rights_limit(2),
cap_fcntls_limit(2) と
cap_ioctls_limit(2) システムコールを使用することによって縮小 (しかし、決して拡張されません) することができます。いったんケーパビリティの権利が縮小されると、ファイル記述子での操作は、 rights (権利) によって許可されたものに制限されます。
ケーパビリティの権利の完全なリストは、下記で提供されます。 cap_rights_t タイプは、ケーパビリティの権利のリストを格納するために使用されます。 cap_rights_init(3) 関数ファミリは、構造体を管理するために使用されるべきです。
権利
次の権利は、権利マスクで指定されます:
-
CAP_ACCEPT
-
accept(2) と
accept4(2) を許可します。
-
CAP_ACL_CHECK
-
acl_valid_fd_np(3) を許可します。
-
CAP_ACL_DELETE
-
acl_delete_fd_np(3) を許可します。
-
CAP_ACL_GET
-
acl_get_fd(3) と
acl_get_fd_np(3) を許可します。
-
CAP_ACL_SET
-
acl_set_fd(3) と
acl_set_fd_np(3) を許可します。
-
CAP_BIND
-
bind(2) を許可します。また、ソケットは、
connect(2) または
send(2) の結果として暗黙のうちにバインドになることができ、
setsockopt(2) で設定されたソケットオプションも、またバインドの振る舞いに影響することに注意してください。
-
CAP_BINDAT
-
bindat(2) を許可します。この権利は、ディレクトリの記述子に存在しなければなりません。この権利は、
CAP_LOOKUP 権利を含んでいます。
-
CAP_CHFLAGSAT
-
CAP_FCHFLAGS と
CAP_LOOKUP への別名。
-
CAP_CONNECT
-
connect(2) を許可します。また、NULL でない宛先アドレスで
sendto(2) のために要求されます。
-
CAP_CONNECTAT
-
connectat(2) を許可します。この権利は、ディレクトリの記述子に存在しなければなりません。この権利は、
CAP_LOOKUP 権利を含んでいます。
-
CAP_CREATE
-
O_CREAT フラグを付けた
openat(2) を許可します。
-
CAP_EVENT
-
イベントのためのファイル記述子をモニタで使用される
select(2),
poll(2) と
kevent(2) を許可します。
-
CAP_EXTATTR_DELETE
-
extattr_delete_fd(2) を許可します。
-
CAP_EXTATTR_GET
-
extattr_get_fd(2) を許可します。
-
CAP_EXTATTR_LIST
-
extattr_list_fd(2) を許可します。
-
CAP_EXTATTR_SET
-
extattr_set_fd(2) を許可します。
-
CAP_FCHDIR
-
fchdir(2) を許可します。
-
CAP_FCHFLAGS
-
CAP_LOOKUP 権利も存在するなら、
fchflags(2) と
chflagsat(2) を許可します。
-
CAP_FCHMOD
-
CAP_LOOKUP 権利も存在するなら、
fchmod(2) と
fchmodat(2) を許可します。
-
CAP_FCHMODAT
-
CAP_FCHMOD と
CAP_LOOKUP への別名。
-
CAP_FCHOWN
-
CAP_LOOKUP 権利も存在するなら、
fchown(2) と
fchownat(2) を許可します。
-
CAP_FCHOWNAT
-
CAP_FCHOWN と
CAP_LOOKUP への別名。
-
CAP_FCNTL
-
fcntl(2) を許可します。
F_GETFL,
F_SETFL,
F_GETOWN と
F_SETOWN コマンドだけがこのケーパビリティの権利を要求することに注意してください。また、
cap_fcntls_limit(2) システムコールで許可されたコマンドのリストを制限することができることに注意してください。
-
CAP_FEXECVE
-
O_EXEC フラグを付けた
fexecve(2) と
openat(2) を許可します。また、
CAP_READ も要求されます。
-
CAP_FLOCK
-
(
F_GETLK,
F_SETLK,
F_SETLKW または
F_SETLK_REMOTE フラグを付けた)
flock(2),
fcntl(2) と (
O_EXLOCK または
O_SHLOCK フラグを付けた)
openat(2) を許可します。
-
CAP_FPATHCONF
-
fpathconf(2) を許可します。
-
CAP_FSCK
-
記述子で UFS のバックグラウンド fsck 操作をを許可します。
-
CAP_FSTAT
-
CAP_LOOKUP 権利も存在するなら、
fstat(2) と
fstatat(2) を許可します。
-
CAP_FSTATAT
-
CAP_FSTAT と
CAP_LOOKUP への別名。
-
CAP_FSTATFS
-
fstatfs(2) を許可します。
-
CAP_FSYNC
-
O_FSYNC または
O_SYNC フラグを付けた
aio_fsync(2),
fsync(2) と
openat(2) を許可します。
-
CAP_FTRUNCATE
-
O_TRUNC フラグを付けた
ftruncate(2) と
openat(2) を許可します。
-
CAP_FUTIMES
-
CAP_LOOKUP 権利も存在するなら、
futimes(2) と
futimesat(2) を許可します。
-
CAP_FUTIMESAT
-
CAP_FUTIMES と
CAP_LOOKUP への別名。
-
CAP_GETPEERNAME
-
getpeername(2) を許可します。
-
CAP_GETSOCKNAME
-
getsockname(2) を許可します。
-
CAP_GETSOCKOPT
-
getsockopt(2) を許可します。
-
CAP_IOCTL
-
ioctl(2) を許可します。このシステムコールに、いくつかのオブジェクトのためのグローバルなスコープを潜在的に含んでいる、巨大なスコープがあることに注意してください。余暇された ioctl コマンドのリストは、さらに
cap_ioctls_limit(2) システムコールで制限することができます。
-
CAP_KQUEUE
-
CAP_KQUEUE_CHANGE と
CAP_KQUEUE_EVENT への別名。
-
CAP_KQUEUE_CHANGE
-
(
changelist 引数が NULL でない) モニタされたイベントのリストを修正する
kqueue(2) 記述子で
kevent(2) を許可します。
-
CAP_KQUEUE_EVENT
-
(
eventlist 引数が NULL でない) イベントをモニタする
kqueue(2) 記述子で
kevent(2) を許可します。また、
CAP_EVENT は、
kevent(2) を使用してモニタされるファイル記述子で要求されます。
-
CAP_LINKAT
-
宛先のディレクトリの記述子で
linkat(2) と
renameat(2) を許可します。この権利は、
CAP_LOOKUP 権利を含んでいます。
-
CAP_LISTEN
-
listen(2) を許可します。
CAP_BIND なしで (一般的に) 多く使用しません。
-
CAP_LOOKUP
-
linkat(2),
openat(2) と
unlinkat(2) のような呼び出しのために開始するディレクトリとして使用されるファイル記述子をを許可します。
-
CAP_MAC_GET
-
mac_get_fd(3) を許可します。
-
CAP_MAC_SET
-
mac_set_fd(3) を許可します。
-
CAP_MKDIRAT
-
mkdirat(2) を許可します。この権利は、
CAP_LOOKUP 権利を含んでいます。
-
CAP_MKFIFOAT
-
mkfifoat(2) を許可します。この権利は、
CAP_LOOKUP 権利を含んでいます。
-
CAP_MKNODAT
-
mknodat(2) を許可します。この権利は、
CAP_LOOKUP 権利を含んでいます。
-
CAP_MMAP
-
PROT_NONE 保護を付けた
mmap(2) を許可します。
-
CAP_MMAP_R
-
PROT_READ 保護を付けた
mmap(2) を許可します。この権利は、
CAP_READ と
CAP_SEEK 権利を含んでいます。
-
CAP_MMAP_RW
-
CAP_MMAP_R と
CAP_MMAP_W への別名。
-
CAP_MMAP_RWX
-
CAP_MMAP_R,
CAP_MMAP_W と
CAP_MMAP_X への別名。
-
CAP_MMAP_RX
-
CAP_MMAP_R と
CAP_MMAP_X への別名。
-
CAP_MMAP_W
-
PROT_WRITE 保護を付けた
mmap(2) を許可します。この権利は、
CAP_WRITE と
CAP_SEEK 権利を含んでいます。
-
CAP_MMAP_WX
-
CAP_MMAP_W と
CAP_MMAP_X への別名。
-
CAP_MMAP_X
-
PROT_EXEC 保護を付けた
mmap(2) を許可します。この権利は、
CAP_SEEK 権利を含んでいます。
-
CAP_PDGETPID
-
pdgetpid(2) を許可します。
-
CAP_PDKILL
-
pdkill(2) を許可します。
-
CAP_PDWAIT
-
pdwait4(2) を許可します。
-
CAP_PEELOFF
-
sctp_peeloff(2) を許可します。
-
CAP_PREAD
-
CAP_READ と
CAP_SEEK への別名。
-
CAP_PWRITE
-
CAP_SEEK と
CAP_WRITE への別名。
-
CAP_READ
-
(
CAP_SEEK も要求される)
aio_read(2),
O_RDONLY フラグを付けた
openat(2),
read(2),
readv(2),
recv(2),
recvfrom(2),
recvmsg(2), (
CAP_SEEK も要求される)
pread(2), (
CAP_SEEK も要求される)
preadv(2) と関連するシステムコールを許可します。
-
CAP_RECV
-
CAP_READ への別名。
-
CAP_RENAMEAT
-
renameat(2) を許可します。この権利は、発信元ディレクトリの記述子で要求されます。この権利は、
CAP_LOOKUP 権利を含んでいます。
-
CAP_SEEK
-
lseek(2) のようなファイル記述子でシークする操作を許可しますが、
pread(2) と
pwrite(2) のようなファイルのあらゆる位置で読み込みまたは書き込みすることができる I/O システムコールに必要です。
-
CAP_SEM_GETVALUE
-
sem_getvalue(3) を許可します。
-
CAP_SEM_POST
-
sem_post(3) を許可します。
-
CAP_SEM_WAIT
-
sem_wait(3) と
sem_trywait(3) を許可します。
-
CAP_SEND
-
CAP_WRITE への別名。
-
CAP_SETSOCKOPT
-
setsockopt(2) を許可します。これは、ソケット振る舞いの様々な側面を制御し、バインド、接続とグローバルなスコープがある他の振る舞いに影響します。
-
CAP_SHUTDOWN
-
明示的な
shutdown(2) を許可します。また、ソケットをクローズすることは、一般的に、それで、あらゆる接続をシャットダウンします。
-
CAP_SYMLINKAT
-
symlinkat(2) を許可します。この権利は、
CAP_LOOKUP 権利を含んでいます。
-
CAP_TTYHOOK
-
ファイル記述子で、
snp(4) のような TTY フックの設定を許可します。
-
CAP_UNLINKAT
-
unlinkat(2) と
renameat(2) を許可します。この権利は、宛先オブジェクトが既に存在し、rename によって削除されるなら、宛先のディレクトリの記述子でのみ
renameat(2) に必要です。この権利は、
CAP_LOOKUP 権利を含んでいます。
-
CAP_WRITE
-
aio_write(2),
O_WRONLY と
O_APPEND フラグの組を付けた
openat(2),
send(2),
sendmsg(2),
sendto(2),
write(2),
writev(2),
pwrite(2),
pwritev(2) と関連するシステムコールを許可します。 NULL でない接続アドレスがある
sendto(2) について、
CAP_CONNECT も要求されます。
O_WRONLY フラグを付けたが、
O_APPEND フラグを付けない
openat(2) について、
CAP_SEEK も要求されます。
aio_write(2),
pwrite(2) と
pwritev(2) について、
CAP_SEEK も要求されます。
関連項目
accept(2),
accept4(2),
aio_fsync(2),
aio_read(2),
aio_write(2),
bind(2),
bindat(2),
cap_enter(2),
cap_fcntls_limit(2),
cap_ioctls_limit(2),
cap_rights_limit(2),
chflagsat(2),
connect(2),
connectat(2),
extattr_delete_fd(2),
extattr_get_fd(2),
extattr_list_fd(2),
extattr_set_fd(2),
fchflags(2),
fchmod(2),
fchmodat(2),
fchown(2),
fchownat(2),
fcntl(2),
fexecve(2),
fhopen(2),
flock(2),
fpathconf(2),
fstat(2),
fstatat(2),
fstatfs(2),
fsync(2),
ftruncate(2),
futimes(2),
getpeername(2),
getsockname(2),
getsockopt(2),
ioctl(2),
kevent(2),
kqueue(2),
linkat(2),
listen(2),
mmap(2),
mq_open(2),
open(2),
openat(2),
pdfork(2),
pdgetpid(2),
pdkill(2),
pdwait4(2),
pipe(2),
poll(2),
pread(2),
preadv(2),
pwrite(2),
pwritev(2),
read(2),
readv(2),
recv(2),
recvfrom(2),
recvmsg(2),
renameat(2),
sctp_peeloff(2),
select(2),
send(2),
sendmsg(2),
sendto(2),
setsockopt(2),
shm_open(2),
shutdown(2),
socket(2),
socketpair(2),
symlinkat(2),
unlinkat(2),
write(2),
writev(2),
acl_delete_fd_np(3),
acl_get_fd(3),
acl_get_fd_np(3),
acl_set_fd(3),
acl_set_fd_np(3),
acl_valid_fd_np(3),
mac_get_fd(3),
mac_set_fd(3),
sem_getvalue(3),
sem_post(3),
sem_trywait(3),
sem_wait(3),
capsicum(4),
snp(4)
歴史
ケーパビリティとケーパビリティモードのサポートは、 TrustedBSD プロジェクトの一環として開発されました。
作者
このマニュアルページは、
Robert Watson <rwatson@FreeBSD.org>による
cap_new(2) マニュアルページに基づいて FreeBSD 財団の資金提供の下で
Pawel Jakub Dawidek <pawel@dawidek.net>によって作成されました。