名前
- Provided by: manpages-ja-dev (Version: 0.5.0.0.20131015+dfsg-2)
- Source: manpages-ja
- Report a bug
#include <sys/stat.h>
int chmod(const char *path, mode_t
mode);
int fchmod(int fd, mode_t mode);
glibc
向けの機能検査マクロの要件
(feature_test_macros(7) 参照):
fchmod():
これらのシステムコールはファイルのアクセス許可 (permission) を変更する。 システムコール間の違いは、ファイルの指定の仕方だけである。
新しいファイル許可は mode で指定される。 mode は、以下に示す値の 0 個以上の OR (論理和) をとって作成される ビットマスクである。
呼び出したプロセスの実効 (effective) UID がファイルの所有者と一致するか、 そのプロセスが特権を持たなければならない (Linux では CAP_FOWNER ケーパビリティ (capability) を持たなければならない)。
呼び出したプロセスに特権がなく (Linux では CAP_FSETID ケーパビリティがなく)、かつファイルのグループ ID が プロセスの実効グループ ID または補助的なグループ ID にマッチしない場合、 S_ISGID ビットはオフにされるが、これによってエラーが返されることはない。
安全のための処置として、 ファイルシステムによっては、ファイルの書き込みを行う時に セット・ユーザー ID とセット・グループ ID ビットと実行ビットが オフにされることがある。 (Linux では、書き込みプロセスが CAP_FSETID ケーパビリティを持っていない場合に、これが起こる。) ファイルシステムの中には、スーパーユーザーだけが 特別の意味を持つスティッキービットを設定できるものがある。 スティッキービットとディレクトリに対する セット・ユーザー (グループ) ID ビットについては、 stat(2) を見よ。
NFS ファイルシステム上では、パーミッションを制限すると、 既にオープンされているファイルに対してすぐに影響が及ぶ。 これはアクセス制御がサーバー上で行われているが、 オープンされているファイルはクライアント側で管理されているためである。 クライアント側でファイル属性のキャッシュが有効になっている場合に、 パーミッションの制限を緩くすると、 他のクライアントに情報が伝わるのが遅れるかもしれない。
成功した場合は 0 が返される。エラーの場合は -1 が返され、 errno が適切に設定される。
ファイルシステムによっては他のエラーを返す場合がある。 chmod() で一般的なエラーを以下に挙げる。
fchmod() で一般的なエラーを挙げる:
4.4BSD, SVr4, POSIX.1-2001.
chown(2), execve(2), fchmodat(2), open(2), stat(2), path_resolution(7)
この man ページは Linux man-pages プロジェクトのリリース 3.54 の一部 である。プロジェクトの説明とバグ報告に関する情報は http://www.kernel.org/doc/man-pages/ に書かれている。