日本語 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
CHMOD(2) FreeBSD システムコールマニュアル CHMOD(2) 名称 chmod, fchmod, lchmod, fchmodat -- ファイルのモードを変更する ライブラリ 標準 C ライブラリ (libc, -lc) 書式 #include <sys/stat.h> int chmod(const char *path, mode_t mode); int fchmod(int fd, mode_t mode); int lchmod(const char *path, mode_t mode); int fchmodat(int fd, const char *path, mode_t mode, int flag); 解説 path によって指定されるか、またはファイル記述子 fd によって参照される指定 されたファイルのファイルパーミッションビットは、mode に変更されます。 chmod() システムコールは、プロセスの所有者 (ユーザ) が path (または fd) によって指定されたファイルを所有するか、またはスーパユーザであることを確 認します。chmod() システムコールは、リンク自体ではなくリンクのターケット で動作するようにシンボリックリンクをたどります。 lchmod() システムコールは、chmod() に似ていますが、シンボリックリンクをた どりません。 fchmodat() は、path が相対パスを指定する場合を除いて、flag により chmod() または lchmod() と同等です。この場合、変更されるファイルは、現在のワーキ ングディレクトリの代わりにファイル記述子 fd に関連しているディレクトリに 相対的に決定されます。flag のための値は、<fcntl.h> で定義され、次のリスト からフラブのビット単位の包括的論理和 (OR) によって構成されます: AT_SYMLINK_NOFOLLOW path 名がシンボリックリンクであるなら、シンボリックリンクのモード が変更されます。 fchmodat() が、fd パラメータの特別な値 AT_FDCWD を渡されるなら、現在の ワーキングディレクトリが、使用されます。また、flag が 0 であるなら、振る 舞いは、chmod() への呼び出しと同じです。 モードは、<sys/stat.h> に定義された論理 (OR) されたパーミッションビットの マスクから作成されます: #define S_IRWXU 0000700 /* 所有者の RWX マスク */ #define S_IRUSR 0000400 /* 所有者の R */ #define S_IWUSR 0000200 /* 所有者の W */ #define S_IXUSR 0000100 /* 所有者の X */ #define S_IRWXG 0000070 /* グループの RWX マスク */ #define S_IRGRP 0000040 /* グループの R */ #define S_IWGRP 0000020 /* グループの W */ #define S_IXGRP 0000010 /* グループの X */ #define S_IRWXO 0000007 /* その他の RWX マスク */ #define S_IROTH 0000004 /* その他の R */ #define S_IWOTH 0000002 /* その他の W */ #define S_IXOTH 0000001 /* その他の X */ #define S_ISUID 0004000 /* 実行時にユーザ ID を設定 */ #define S_ISGID 0002000 /* 実行時にグループ ID を設定 */ #define S_ISVTX 0001000 /* スティッキビット */ 非標準の S_ISTXT は、S_ISVTX の同意語です。 FreeBSD VM システムは、実行形式のためのスティッキビット (S_ISVTX) を完全 に無視します。UFS ベースのファイルシステム (FFS、LFS) において、スティッ キビットは、ディレクトリでのみ設定されます。 モードが S_ISVTX (`スティッキビット') がディレクトリで設定されるなら、特 権がないユーザは、そのディレクトリで、他のユーザのファイルを削除できず、 または名前を変更することができません。スティッキビットは、ユーザが所有し ているか、または適切なパーミッションがあるディレクトリであらゆるユーザに よって設定することができます。スティッキビットのプロパティのより詳しい情 報については、sticky(7) を参照してください。 モード ISUID (セット UID) がディレクトリに設定され、MNT_SUIDDIR オプショ ンがファイルシステムのマウントで使用されたなら、このディレクトリ内で作成 された、あらゆる新しいファイルとサブディレクトリの所有者は、そのディレク トリの所有者と同じとなるように設定されます。この機能が有効にされるなら、 新しいディレクトリは、それらの親からビットを継承します。実行ビットは、 ファイルから削除され、それは、ルートに与えられません。この振る舞いは、 ファイルを書き込むことを許可されるユーザのための要件を変更しませんが、そ の後の最終的な所有者だけが作成されます。グループの継承は、影響されませ ん。 この機能は、ftp、SAMBA または netatalk を通して PC ユーザを供給している ファイルサーバでの使用のために設計されています。それは、シェルユーザのた めのセキュリティホールを提供し、そのようなものとして、特にホームディレク トリで、シェルのマシンで使用されるべきではありません。このオプションは、 動作するためにカーネルの SUIDDIR オプションを必要とします。UFS ファイルシ ステムだけがこのオプションをサポートします。suiddir マウントオプションの より詳しい情報については、mount(8) を参照してください。 ファイルの所有者を書き込むことか、または変更することは、ユーザがスーパ ユーザでないなら、セットユーザ ID (set-user-id) とセットグループ ID (set group-id) ビットをオフに切り替えます。これは、互換性の度合を犠牲にして、 それらが修正されるなら、残りのセットユーザ ID (セットグループ ID) から セットユーザ ID (セットグループ ID) ファイルを保護することによってシステ ムを多少安全にします。 戻り値 成功して終了したときには値 0 を返します。そうでない場合、値 -1 が返され、 グローバル変数 errno にエラーを示す値が設定されます。 エラー chmod() システムコールは、失敗し、ファイルモードは、次の場合に変更されま せん: [ENOTDIR] パス接頭辞の構成要素が、ディレクトリではありません。 [ENAMETOOLONG] パス名の構成要素が、255 文字を越えているか、または全体 のパス名が、1023 文字を越えています。 [ENOENT] 指定されたファイルが存在しません。 [EACCES] 検索パーミッションが、パス接頭辞の構成要素のために拒否 されます。 [ELOOP] パス名の変換で、あまりにも多くのシンボリックリンクに遭 遇しました。 [EPERM] 実効ユーザ ID が、ファイルの所有者と一致せず、実効ユー ザ ID が、スーパユーザではありません。 [EPERM] 実効ユーザ ID がスーパユーザでない、実効ユーザ ID が ファイルの所有者とマッチするが、ファイルのグループ ID が実効グループ ID も補足グループ ID の 1 つにもマッチ しません。 [EPERM] 指定されたファイルには、不変または追加専用フラグが設定 されています、詳細については、chflags(2) マニュアル ページを参照してください。 [EROFS] 指定されたファイルが、読み込み専用のファイルシステムに あります。 [EFAULT] path 引数が、プロセスの割り付けられたアドレス空間の外 側を指しています。 [EIO] ファイルシステムから読み込むか、またはファイルシステム に書き込む間に、I/O エラーが、起こりました。 [EFTYPE] 実効ユーザ ID は、スーパユーザではなく、モードは、ス ティッキビット (S_ISVTX) を含んでいます、そして、パス は、ディレクトリを参照していません。 fchmod() システムコールは、次の場合に失敗します: [EBADF] 記述子が、有効ではありません。 [EINVAL] fd 引数が、ファイルではなく、ソケットを参照していま す。 [EROFS] ファイルが、読み込み専用ののファイルシステムにありま す。 [EIO] ファイルシステムから読み込むか、またはファイルシステム に書き込む間に、I/O エラーが、起こりました。 chmod() のエラーに加えて fchmodat() は、次の場合に失敗します: [EBADF] path 引数が、絶対パスを指定していません、そして fd 引 数は、AT_FDCWD でもなく検索のためにオープンされた有効 なファイル記述子でもありません。 [EINVAL] flag 引数の値は、有効ではありません。 [ENOTDIR] path 引数が、絶対パスではありません、そして fd が、 AT_FDCWD でもなくディレクトリに関連しているファイル記 述子でもありません。 関連項目 chmod(1), chflags(2), chown(2), open(2), stat(2), sticky(7) 規格 chmod() システムコールは、EFTYPE を返すことを除いて ISO/IEC 9945-1:1990 (``POSIX.1'') に適合するはずです。ディレクトリの S_ISVTX ビットは、 Version 3 of the Single UNIX Specification (``SUSv3'') に適合するはずで す。fchmodat() システムコールは、IEEE Std 1003.1-2008 (``POSIX.1'') に適 合するはずです。 歴史 chmod() システムコールは、Version 7 AT&T UNIX で登場しました。fchmod() シ ステムコールは、4.2BSD で登場しました。lchmod() システムコールは、 FreeBSD 3.0 で登場しました。fchmodat() システムコールは、FreeBSD 8.0 で登 場しました。 FreeBSD 11.2 December 1, 2013 FreeBSD 11.2