Unix-system-calls-chmod
[top]#
[[File:]]
[[File:]] |
|Web |This Site
- 初心者向けのUnix *
- Unix-ホーム
- Unix-はじめに
- Unix-ファイル管理
- Unix-ディレクトリ
- Unix-ファイル権限
- Unix-環境
- Unix-基本ユーティリティ
- Unix-パイプとフィルタ
- Unix-プロセス
- Unix-コミュニケーション
- Unix-The Vi Editor
- Unix Shellプログラミング*
- Unix-シェルとは?
- Unix-変数の使用
- Unix-特殊変数
- Unix-配列の使用
- Unix-基本的な演算子
- Unix-意思決定
- Unix-シェルループ
- Unix-ループ制御
- Unix-シェル置換
- Unix-引用メカニズム
- Unix-IOリダイレクト
- UNIX-シェル関数
- Unix-マンページヘルプ
- 高度なUnix *
- Unix-正規表現
- Unix-ファイルシステムの基本
- Unix-ユーザー管理
- Unix-システムパフォーマンス
- Unix-システムログ
- Unix-信号とトラップ
- Unixの便利なリファレンス*
- Unix-便利なコマンド
- Unix-クイックガイド
- Unix-組み込み関数
- Unix-システムコール
- Unix-コマンドリスト
- Unixの役立つリソース*
- Unix役立つリソース
選択した読書
- http://www.finddevguides.com/computer_glossary [コンピュータ用語集] *http://www.finddevguides.com/computer_whoiswho[Who is Who]
Copyright©2014 by finddevguides
Home | References | Discussion Forums | About TP |
chmod()-Unix、Linuxシステムコール
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] image:http://www.finddevguides.com/add- this.gif [AddThisソーシャルブックマークボタン]
広告
NAME
chmod、fchmod-ファイルのパーミッションを変更する
概要
#include <sys/types.h> #include <sys/stat.h> int chmod(const char* path, mode_t mode); int fchmod(int fildes, mode_t mode); |
説明
_path_で指定されたファイルまたは_fildes_で参照されたファイルのモードが変更されます。
モードは次のいずれかで指定されます:
Tag | Description |
---|---|
S_ISUID | 04000 set user ID on execution |
S_ISGID | 02000 set group ID on execution |
S_ISVTX | 01000 sticky bit |
S_IRUSR | 00400 read by owner |
S_IWUSR | 00200 write by owner |
S_IXUSR | 00100 execute/search by owner |
S_IRGRP | 00040 read by group |
S_IWGRP | 00020 write by group |
S_IXGRP | 00010 execute/search by group |
S_IROTH | 00004 read by others |
S_IWOTH | 00002 write by others |
S_IXOTH | 00001 execute/search by others |
呼び出しプロセスの実効UIDはファイルの所有者と一致するか、プロセスに特権が必要です(Linux: CAP_FOWNER 機能が必要です)。
呼び出しプロセスに特権がなく(Linux: CAP_FSETID 機能がない)、ファイルのグループがプロセスの実効グループIDまたはその補助グループIDの1つと一致しない場合、S_ISGIDビットがオンになりますオフですが、これによりエラーが返されることはありません。
セキュリティ対策として、ファイルシステムによっては、ファイルが書き込まれた場合にset-user-IDおよびset-group-ID実行ビットがオフになる場合があります。 (Linuxでは、書き込みプロセスに CAP_FSETID 機能がない場合にこれが発生します。)一部のファイルシステムでは、スーパーユーザーのみがスティッキービットを設定できます。これは特別な意味を持つ場合があります。 スティッキビット、およびディレクトリのset-user-IDおよびset-group-IDビットについては、 stat (2)を参照してください。
NFSファイルシステムでは、アクセス制御はサーバー上で行われますが、開いているファイルはクライアントによって維持されるため、アクセス許可を制限すると、すでに開いているファイルにすぐに影響します。 他のクライアントで属性のキャッシュが有効になっている場合、他のクライアントのアクセス許可の拡大が遅れることがあります。
返り値
成功すると、ゼロが返されます。 エラーの場合、-1が返され、_errno_が適切に設定されます。
エラー
ファイルシステムによっては、他のエラーが返される場合があります。 chmod ()のより一般的なエラーを以下にリストします。
エラーコード
説明
パスプレフィックスのコンポーネントに対する検索許可が拒否されました。 ( path_resolution (2)も参照してください。)
_path_は、アクセス可能なアドレス空間の外側を指します。
I/Oエラーが発生しました。
_path_の解決中に検出されたシンボリックリンクが多すぎます。
_path_が長すぎます。
ファイルが存在しません。
カーネルメモリが不足していました。
パスプレフィックスのコンポーネントはディレクトリではありません。
有効なUIDはファイルの所有者と一致せず、プロセスには特権がありません(Linux: CAP_FOWNER 機能はありません)。
指定されたファイルは読み取り専用ファイルシステムにあります。
ファイル記述子_fildes_が無効です。
上記を参照。
上記を参照。
上記を参照。
準拠
4.4BSD、SVr4、POSIX.1-2001。
関連項目
[[File:]] image :http://www.finddevguides.com/images/next.gif [next] [[File:]]
広告
Advertisements |