日本語 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
SETUID(2) FreeBSD システムコールマニュアル SETUID(2) 名称 setuid, seteuid, setgid, setegid -- ユーザ ID とグループ ID を設定する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <unistd.h> int setuid(uid_t uid); int seteuid(uid_t euid); int setgid(gid_t gid); int setegid(gid_t egid); 解説 setuid() システムコールは、現在のプロセスの実ユーザ ID と実効ユーザ ID と 退避セットユーザ ID (set-user-ID) を指定された値に設定します。setuid() シ ステムコールは、指定された ID がプロセスの実ユーザ ID または実効ユーザ ID と等しいなら、または、実効ユーザ ID がスーパユーザのものであるなら、許可 されます。 setgid() システムコールは、現在のプロセスの実グループ ID と実効グループ ID と退避セットグループ ID (set-group-ID) を指定された値に設定します。 setgid() システムコールは、指定された ID がプロセスの実グループ ID または 実効グループ ID と等しいなら、または、実効ユーザ ID がスーパユーザのもの であるなら、許可されます。 seteuid() システムコール (setegid()) は、現在のプロセスの実効ユーザ ID (グループ ID) を設定します。実効ユーザ ID は、実ユーザ ID または退避セッ トユーザ ID (set-user-ID) (intro(2) と execve(2) を参照) の値に設定されま す。このように、セットユーザ ID (set-user-ID) の実行形式の実効ユーザ ID は、実ユーザ ID に切り換えることによって交換され、次に、セットユーザ ID (set-user-ID) の前の値に戻ることによって再有効化されます。同様に、実効グ ループ ID は、実グループ ID または退避セットグループ ID (set-group-ID) の 値に設定されます。 戻り値 成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno にエラーを示す値が設定されます。 エラー システムコールは、次の場合に失敗します: [EPERM] ユーザがスーパユーザではありません、そして指定された ID が実 ID、実効 ID、または退避 ID ではありません。 関連項目 getgid(2), getuid(2), issetugid(2), setregid(2), setreuid(2) 規格 setuid() と setgid() システムコールは、付録 B.4.2.2 の許可された拡張で定 義されなかった _POSIX_SAVED_IDS とともに ISO/IEC 9945-1:1990 (``POSIX.1'') 仕様に準拠しています。seteuid() と setegid() システムコール は、_POSIX_SAVED_IDS の POSIX の概念に基づいた拡張であり、規格の将来のリ ビジョンに対して提案されています。 歴史 setuid() と setgid() 関数は、Version 4 AT&T UNIX で登場しました。 セキュリティに関する考察 ファイルへの読み込みと書き込みパーミッションは、open(2) への呼び出しで判 断されます。いったんファイル記述子が、オープンされると、落されている特権 は、たとえ指定されたユーザ ID にファイルへの読み込みまたは書き込みパー ミッションがなくても、プロセスの読み込み/書き込みパーミッションに影響しま せん。これらのファイルは、通常、実行されたあらゆる新しいプロセスでオープ ンされたままとなり、潜在的に注意を払うべきデータをユーザが読み込むか、ま たは修正することができる結果となります。 これらのファイルを exec(3) 呼び出しの後にオープンされたままとなることか ら、防止するためには、必ず close-on-exec フラグを設定してください: void pseudocode(void) { int fd; /* ... */ fd = open("/path/to/sensitive/data", O_RDWR | O_CLOEXEC); if (fd == -1) err(1, "open"); /* ... */ execve(path, argv, environ); } FreeBSD 11.4 December 15, 2015 FreeBSD 11.4