日本語 man コマンド類 (ja-man-1.1j_5) と日本語 man ドキュメント (ja-man-doc-5.4 (5.4-RELEASE 用) など) をインストールすると、以下のような man コマンド閲覧、キーワード検索が コンソールからできるようになります。
4.11-RELEASE-K, 5.4-RELEASE-K, 5.5-RELEASE-K, 6.0-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K, 12.1-RELEASE-K は、 プライベート版 (小金丸が編集してまとめたもの) ですが、 より多くの翻訳したファイルが含まれています。 (5.4-RELEASE-K から 6.4-RELEASE-K, 7.0-RELEASE-K から 7.4-RELEASE-K, 8.0-RELEASE-K から 8.4-RELEASE-K, 9.0-RELEASE-K から 9.3-RELEASE-K, 10.0-RELEASE-K から 10.3-RELEASE-K, 11.0-RELEASE-K から 11.4-RELEASE-K, 12.0-RELEASE-K から 12.4-RELEASE-K, 13.0-RELEASE-K から 13.3-RELEASE-K, 14.0-RELEASE-K から 14.1-RELEASE-K は、全翻訳済み)
13.3-STABLE-K, 15.0-CURRENT-K は現在、作成中で日々更新されています。
Table of Contents
LIBCASPER(3) FreeBSD ライブラリ関数マニュアル LIBCASPER(3)
名称
cap_init, cap_wrap, cap_unwrap, cap_sock, cap_clone, cap_close,
cap_limit_get, cap_limit_set, cap_send_nvlist, cap_recv_nvlist,
cap_xfer_nvlist, cap_service_open -- アプリケーションのケーパビリティを扱
うためのライブラリ
ライブラリ
libcasper Library (libcasper, -lcasper)
書式
#define WITH_CASPER
#include <sys/nv.h>
#include <libcasper.h>
cap_channel_t *
cap_init(void);
cap_channel_t *
cap_wrap(int sock, int flags);
int
cap_unwrap(cap_channel_t *chan, int *flags);
int
cap_sock(const cap_channel_t *chan);
cap_channel_t *
cap_clone(const cap_channel_t *chan);
void
cap_close(cap_channel_t *chan);
int
cap_limit_get(const cap_channel_t *chan, nvlist_t **limitsp);
int
cap_limit_set(const cap_channel_t *chan, nvlist_t *limits);
int
cap_send_nvlist(const cap_channel_t *chan, const nvlist_t *nvl);
nvlist_t *
cap_recv_nvlist(const cap_channel_t *chan);
nvlist_t *
cap_xfer_nvlist(const cap_channel_t *chan, nvlist_t *nvl);
cap_channel_t *
cap_service_open(const cap_channel_t *chan, const char *name);
解説
libcasper ライブラリは、casper プロセスを通してアプリケーションのケーパビ
リティを管理することを可能にします。
(cap_channel_t タイプによって表される) アプリケーションのケーパビリティ
は、呼び出し側と casper プロセスデーモンの間の通信チャネル、またはその
サービスの 1 つのインスタンスです。cap_init() 関数で取得される casper プ
ロセスへのケーパビリティは、cap_service_open() 関数を通して casper のサー
ビスへのケーパビリティを作成することを可能にします。
cap_init() 関数は、casper プロセスへのケーパビリティをオープンします。
cap_wrap() 関数は、与えられたソケットに基づいて cap_channel_t を作成しま
す。ケーパビリティが、execve(2) を通して継承されるか、または通常のファイ
ル記述子として unix(4) ドメインソケットを越えて送信し、再び cap_channel_t
として表されなければならないとき、関数は、使用されます。flags 引数は、
チャネルの振る舞いを定義します。サポートされたフラグは、次の通りです:
CASPER_NO_UNIQ
プロセスと casper の間の通信は、nvlist のユニークなバージョンを使用
しません。
cap_unwrap() 関数は、cap_wrap() 関数の反対です。それは、cap_channel_t 構
造体を解放し、それに関連した unix(4) ドメインソケットを返します。
cap_clone() 関数は、与えられたケーパビリティをクローン化します。
cap_close() 関数は、与えられたケーパビリティをクローズします。
cap_sock() 関数は、kevent(2), poll(2) と select(2) のようなシステムコール
で使用するために与えられたケーパビリティと関連した unix(4) ドメインソケッ
ト記述子を返します。
cap_limit_get() 関数は、与えられたケーパビリティの現在の制限を limitsp 引
数に格納します。関数が 0 を返し、NULL が limitsp に格納されるなら、それ
は、設定の制限がないことを意味します。
cap_limit_set() 関数は、与えられたケーパビリティのための制限を設定しま
す。制限は、nvlist(9) として提供されます。正確な形式は、ケーパビリティが
表しているサービスに依存します。cap_limit_set() は、操作が成功するか、ま
たは失敗するかどうかに関わらず制限を解放します。
cap_send_nvlist() 関数は、与えられたケーパビリティを越えて与えられた
nvlist(9) を送信します。これは、casper サービスと通信する低レベルのインタ
フェースです。ほとんどのサービスは、より高いレベルの API が提供されるべき
です。
cap_recv_nvlist() 関数は、与えられたケーパビリティを越えて与えられた
nvlist(9) を受信します。
cap_xfer_nvlist() 関数は、与えられた nvlist(9) を送信し、それを破壊し、与
えられたケーパビリティを越える応答で新しい nvlist(9) を受信します。関数が
成功するか、または失敗するならば、それは、重要ではなく、送信のために与え
られた nvlist(9) は、いったん関数が返ると常に破壊されます。
cap_service_open() 関数は、cap_init() 関数によって取得された casper ケー
パビリティを通して与えられた名前の casper サービスをオープンします。関数
は、オープンされたサービスへのアクセスを提供するケーパビリティを返しま
す。casper は、基本のシステムの次のサービスをサポートします:
system.dns DNS libc 互換の API を提供します
system.grp getgrent(3) 互換の API を提供します。
system.net ネットワークの libc 互換 API を提供します。
system.pwd getpwent(3) 互換の API を提供します
system.sysctl sysctlbyname(3) 互換の API を提供します
system.syslog syslog(3) 互換の API を提供します
戻り値
cap_clone(), cap_init(), cap_recv_nvlist(), cap_service_open(),
cap_wrap() と cap_xfer_nvlist() 関数は、失敗すれば、NULL を返し、errno 変
数を設定します。
cap_limit_get(), cap_limit_set() と cap_send_nvlist() 関数は、失敗すれ
ば、-1 を返し、errno 変数を設定します。
cap_close(), cap_sock() と cap_unwrap() 関数は、常に成功します。
関連項目
errno(2), execve(2), kevent(2), poll(2), select(2), cap_dns(3),
cap_grp(3), cap_net(3), cap_pwd(3), cap_sysctl(3), cap_syslog(3),
libcasper_service(3), capsicum(4), unix(4), nv(9)
歴史
libcasper ライブラリは、FreeBSD 10.3 ではじめて登場しました。
作者
libcasper ライブラリは、FreeBSD 財団の資金提供の下で Pawel Jakub Dawidek
<pawel@dawidek.net> によって実装されました。libcasper の新しいアーキテク
チャは、
Mariusz Zaborski <oshogbo@FreeBSD.org> によって実装されました。
FreeBSD 13.2 January 3, 2021 FreeBSD 13.2