other versions
other sections
CHMOD(2) | Linux Programmer's Manual | CHMOD(2) |
名前¶
chmod, fchmod - ファイルのモードを変更する書式¶
#include <sys/stat.h>glibc 向けの機能検査マクロの要件 ( feature_test_macros(7) 参照):
_BSD_SOURCE ||
_XOPEN_SOURCE >= 500 ||
_XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
|| /* glibc 2.12 以降: */
_POSIX_C_SOURCE >= 200809L
説明¶
これらのシステムコールはファイルのアクセス許可 (permission) を変更する。 システムコール間の違いは、ファイルの指定の仕方だけである。- *
- chmod() は、 path で指定されたパス名を持つファイルの許可を変更する。 path がシンボリック・リンクの場合は、リンクの展開が行われる。
- *
- fchmod() は、オープンされたファイルディスクリプタ fd により参照されるファイルの許可を変更する。
- S_ISUID (04000)
- set-user-ID (execve(2) 時にプロセスの実効ユーザ ID にセットされる)
- S_ISGID (02000)
- set-group-ID (以下の場合に ( execve(2) 実行時にプロセスの実効グループ ID にセットされる、 強制ロック (mandatory locking) を行う ( fcntl(2) の説明を参照)、 新しいファイルのグループとして親ディレクトリと同じものを使う ( chown(2) と (mkdir(2) の説明を参照)
- S_ISVTX (01000)
- スティッキー・ビット (sticky bit) (削除制限フラグ、 unlink(2) の説明を参照)
- S_IRUSR (00400)
- 所有者による読み取り
- S_IWUSR (00200)
- 所有者による書き込み
- S_IXUSR (00100)
- 所有者による実行 (execute) / 検索 (search) (「検索」はディレクトリに対して適用されるもので、 そのディレクトリ内のエントリーへアクセスできるかを意味する)
- S_IRGRP (00040)
- グループによる読み取り
- S_IWGRP (00020)
- グループによる書き込み
- S_IXGRP (00010)
- グループによる実行 / 検索
- S_IROTH (00004)
- 他人 (others) による読み取り
- S_IWOTH (00002)
- 他人による書き込み
- S_IXOTH (00001)
- 他人による実行 / 検索
返り値¶
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。エラー¶
ファイル・システムによっては他のエラーを返す場合がある。 chmod() で一般的なエラーを以下に挙げる。- EACCES
- パス名の構成要素に検索許可がない ( path_resolution(7) も見よ)。
- EFAULT
- path がアクセスできるアドレス空間外を指している。
- EIO
- I/O エラーが発生した。
- ELOOP
- path を解決する際に遭遇したシンボリック・リンクが多過ぎる。
- ENAMETOOLONG
- path が長過ぎる。
- ENOENT
- ファイルが存在しない。
- ENOMEM
- カーネルに十分なメモリがない。
- ENOTDIR
- パス名の構成要素がディレクトリではない。
- EPERM
- 実効 UID がファイルの所有者と一致せず、プロセスに特権がない (Linux では CAP_FOWNER ケーパビリティを持たない)。
- EROFS
- ファイルが読み込み専用 (read only) のファイル・システム上にある。
- EBADF
- ファイル・ディスクリプター fd が有効でない。
- EIO
- 上記を参照。
- EPERM
- 上記を参照。
- EROFS
- 上記を参照。
準拠¶
4.4BSD, SVr4, POSIX.1-2001.関連項目¶
chown(2), execve(2), fchmodat(2), open(2), stat(2), path_resolution(7)この文書について¶
この man ページは Linux man-pages プロジェクトのリリース 3.41 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。2010-09-26 | Linux |