diff options
Diffstat (limited to 'ja_JP.eucJP/man/man2/chmod.2')
-rw-r--r-- | ja_JP.eucJP/man/man2/chmod.2 | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/ja_JP.eucJP/man/man2/chmod.2 b/ja_JP.eucJP/man/man2/chmod.2 new file mode 100644 index 0000000000..117ca23598 --- /dev/null +++ b/ja_JP.eucJP/man/man2/chmod.2 @@ -0,0 +1,224 @@ +.\" Copyright (c) 1980, 1991, 1993 +.\" The Regents of the University of California. All rights reserved. +.\" +.\" Redistribution and use in source and binary forms, with or without +.\" modification, are permitted provided that the following conditions +.\" are met: +.\" 1. Redistributions of source code must retain the above copyright +.\" notice, this list of conditions and the following disclaimer. +.\" 2. Redistributions in binary form must reproduce the above copyright +.\" notice, this list of conditions and the following disclaimer in the +.\" documentation and/or other materials provided with the distribution. +.\" 3. All advertising materials mentioning features or use of this software +.\" must display the following acknowledgement: +.\" This product includes software developed by the University of +.\" California, Berkeley and its contributors. +.\" 4. Neither the name of the University nor the names of its contributors +.\" may be used to endorse or promote products derived from this software +.\" without specific prior written permission. +.\" +.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND +.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE +.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE +.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE +.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL +.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS +.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) +.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT +.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY +.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF +.\" SUCH DAMAGE. +.\" +.\" @(#)chmod.2 8.1 (Berkeley) 6/4/93 +.\" %FreeBSD: src/lib/libc/sys/chmod.2,v 1.12.2.3 1999/08/29 14:48:58 peter Exp % +.\" +.Dd June 4, 1993 +.Dt CHMOD 2 +.Os BSD 4 +.Sh 名称 +.Nm chmod , +.Nm fchmod , +.Nm lchmod +.Nd ファイルのモードを変更する +.Sh 書式 +.Fd #include <sys/stat.h> +.Ft int +.Fn chmod "const char *path" "mode_t mode" +.Ft int +.Fn fchmod "int fd" "mode_t mode" +.Ft int +.Fn lchmod "const char *path" "mode_t mode" +.Sh 解説 +.Fa path +で指定されるか、またはファイル記述子 +.Fa fd +で参照されるファイルの +ファイル許可ビットを +.Fa mode +に変更します。 +.Fn chmod +関数は、プロセス所有者 +(ユーザ) が +.Fa path +(または +.Fa fd ) +で指定されたファイルを所有するか、またはスーパユーザで +あるかのどちらかであることを確認します。 +.Fn chmod +関数はシンボリックリンク自体ではなく、リンク先に作用します。 +.Pp +.Fa lchmod +関数は +.Fn chmod +に類似していますが、シンボリックリンクをたどりません。 +.Pp +モードは +.Aq Pa sys/stat.h +で定義された許可ビットマスクの論理和 +.Pf ( Em or ) +から作成されます: +.Pp +.Bd -literal -offset indent -compact +#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 /* スティッキービット */ +#ifndef _POSIX_SOURCE +#define S_ISTXT 0001000 +#endif +.Ed +.Pp +.Tn FreeBSD +VM システムは、実行可能モジュールについてスティッキービット +.Pf ( Dv ISVTX ) +を完全に無視します。 +UFS をベースとしたファイルシステム (FFS, MFS, LFS) では、 +スティッキービットはディレクトリにだけ設定できます。 +.Pp +.Dv ISVTX +(`スティッキービット') が設定されているディレクトリでは、 +特権のないユーザはそのディレクトリの他のユーザのファイルを削除することも +名前を変更することもできません。 +スティッキービットは、ユーザが所有するか、 +または該当する許可のあるディレクトリについて +どのユーザでも設定できます。 +スティッキービットのプロパティの詳細については、 +.Xr sticky 8 +を参照してください。 +.Pp +あるディレクトリに ISUID (UID 設定) が設定されており、 +しかもファイルシステムをマウントする際に MNT_SUIDDIR オプションが +指定された場合、 +このディレクトリ内に作成される新しいファイルとサブディレクトリの所有者は、 +そのディレクトリの所有者と同じに設定されます。 +この機能が有効な場合、新しいディレクトリは親からそのビットを継承します。 +実行ビットはファイルから除去されます。 +ルートは所有者を継承する機能を利用できません。 +この動作は、ファイルへの書込みがユーザに許可される条件を変更しません。 +ファイルが作成された後の最終的な所有者の決定に影響するのみです。 +グループ継承には影響ありません。 +.Pp +この機能は、ftp、SAMBA または netatalk 経由で PC ユーザへの +ファイルサービスで使用されるよう設計されています。 +これはシェルユーザにセキュリティホールを提供するので、 +シェルマシン上で使用してはなりません。 +特に、ホームディレクトリでは使用してはなりません。 +このオプションは、利用するためにカーネル内で SUIDDIR オプションを必要とします。 +UFS ファイルシステムだけがこのオプションをサポートします。 +suiddir マウントオプションの詳細については、 +.Xr mount 8 +を参照してください。 +.Pp +スーパユーザ以外のユーザによる、 +ファイルの書込みまたはファイルの所有者の変更によって setuser-id +ビットと set-group-id ビットはオフに切り替えられます。 +互換性は犠牲になりますが、これによって +set-user-id (set-group-id) ファイルを、それらが変更された場合に +set-user-id (set-group-id) が残ったままになってしまわないように +する事によって、システムはいくらか安全になります。 +.Sh 戻り値 +正常に完了すると値 0 が返されます。そうでない場合は、値 -1 が返され、 +エラーを示すために +.Va errno +が設定されます。 +.Sh エラー +.Fn chmod +は次の場合に処理に失敗しファイルモードは変更されません。 +.Bl -tag -width Er +.It Bq Er ENOTDIR +パスの構成要素中にディレクトリ以外のものが含まれています。 +.It Bq Er ENAMETOOLONG +パス名の構成要素が 255 文字を越えているか、 +またはパス名全体が 1023 文字を越えています。 +.It Bq Er ENOENT +指定されたファイルが存在しません。 +.It Bq Er EACCES +前置パス名の構成要素について検索許可が拒絶されています。 +.It Bq Er ELOOP +パス名を変換するときに検出されたシンボリックリンクが多すぎます。 +.It Bq Er EPERM +実効ユーザ ID がファイルの所有者と一致せず、 +実効ユーザ ID がスーパユーザではありません。 +.It Bq Er EROFS +指定されたファイルは読取り専用ファイルシステム上にあります。 +.It Bq Er EFAULT +.Fa path +は、プロセスに割り当てられたアドレス空間の範囲外を指しています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.It Bq Er EFTYPE +実行可能モジュール上でスティッキービットを設定しようとしました。 +.El +.Pp +.Fn fchmod +は次の場合に処理を失敗します。 +.Bl -tag -width Er +.It Bq Er EBADF +記述子が有効ではありません。 +.It Bq Er EINVAL +.Fa fd +がファイルではなくソケットを参照しています。 +.It Bq Er EROFS +ファイルが読取り専用のファイルシステム上に置かれています。 +.It Bq Er EIO +ファイルシステムに読み書きしている間に入出力エラーが発生しました。 +.El +.Sh 関連項目 +.Xr chmod 1 , +.Xr chown 2 , +.Xr open 2 , +.Xr stat 2 , +.Xr sticky 8 +.Sh 規格 +.Fn chmod +関数は +EFTYPE の戻りと S_ISTXT の使用法を除いて +.St -p1003.1-90 +に準拠しています。 +.Sh 歴史 +.Fn chmod +関数は +.At v7 +で登場しました。 +.Fn fchmod +関数は +.Bx 4.2 +で登場しました。 +.Fn lchmod +関数は +.Fx 3.0 +で登場しました。 |