English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Linux chmod(英語全称:change mode)コマンドは、ユーザーがファイルの権限を制御するコマンドです
Linux/Unixのファイル呼び出し権限は3つのレベルに分けられます:ファイル所有者(Owner)、ユーザーグループ(Group)、他のユーザー(Other Users)
ファイルの所有者とスーパーユーザーのみがファイルやディレクトリの権限を変更できます。絶対モード(8進数数字モード)を使用して、シンボルモードでファイルの権限を指定できます。
使用権限 : すべてのユーザー
chmod [-cfvR] [--help] [--version] mode file...
mode: 権限設定文字列、以下の形式で指定
[ugoa...][[+-=][rwxX]...][,...]
以下の通り:
u: ファイルの所有者、g: ファイルの所有者と同じグループに属するユーザー、o: 他のすべての人、a: これらすべて
+ 表示権限追加、- 表示キャンセル権限、=: 唯一の設定権限
r: 読み取り可能、w: 書き込み可能、x: 実行可能、X: ファイルがサブディレクトリであるか、または既に実行可能に設定されている場合にのみ
他のパラメータの説明:
-c: ファイルの権限が実際に変更された場合のみ変更アクションを表示
-f: ファイルの権限が変更できない場合でもエラーメッセージを表示しない
-v: 権限変更の詳細情報を表示
-R: 現在のディレクトリおよびサブディレクトリのすべてのファイルに対して同じ権限変更を行います(再帰的に各ファイルに対して変更を行います)
--help: ヘルプを表示
--version: バージョンを表示
シンボルパターンを使用して、複数の項目を設定できます:who(ユーザータイプ)、operator(操作符)およびpermission(権限),各項目の設定はカンマで区切ります。コマンドchmodは、whoで指定されたユーザータイプがファイルのアクセス権を変更します。ユーザータイプは、whoのシンボルパターンテーブルに示されるように、1文字または複数の文字で説明されます。
who | ユーザータイプ | 説明 |
---|---|---|
u | user | ファイルの所有者 |
g | group | ファイルの所有者があるグループ |
o | others | すべての他のユーザー |
a | all | 使用するユーザー、以下に相当 ugo |
operatorのシンボルパターンテーブル:
Operator | 説明 |
---|---|
+ | 指定のユーザータイプに権限を追加する |
- | 去除指定用户类型的权限 |
= | 设置指定用户权限的设置,即将用户类型的所有权限重新设置 |
permission 的符号模式表:
模式 | 名字 | 説明 |
---|---|---|
r | 读 | 设置为可读权限 |
w | 写 | 设置为可写权限 |
x | 执行权限 | 设置为可执行权限 |
X | 特殊执行权限 | 只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行 |
s | setuid/gid | 当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限 |
t | 粘贴位 | 设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位 |
chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。
# | 权限 | rwx | 二进制 |
---|---|---|---|
7 | 读 + 写 + 执行 | rwx | 111 |
6 | 读 + 写 | rw- | 110 |
5 | 读 + 执行 | r-x | 101 |
4 | 只读 | r-- | 100 |
3 | 写 + 执行 | -wx | 011 |
2 | 只写 | -w- | 010 |
1 | 只执行 | --x | 001 |
0 | 无 | --- | 000 |
例如, 765 将这样解释:
所有者的权限用数字表达:属主的那三个权限位的数字加起来的总和。如 rwx ,也就是 4+2+1 ,应该是 7。
用户组的权限用数字表达:属组的那个权限位数字的相加的总和。如 rw- ,也就是 4+2+0 ,应该是 6。
其它用户的权限数字表达:其它用户权限位的数字相加的总和。如 r-x ,也就是 4+0+1 ,应该是 5。
将文件 file1.txt 设为所有人皆可读取 :
chmod ugo+r file1.txt
将文件 file1.txt 设为所有人皆可读取 :
chmod a+r file1.txt
将文件 file1.txt 与 file2.txt 设为该文件拥有者,与其所属同一个群体者可写入,但其他以外的人则不可写入 :
chmod ug+w,o-w file1.txt file2.txt
为 ex1.py 文件拥有者增加可执行权限:
chmod u+x ex1.py
将目前目录下的所有文件与子目录皆设为任何人可读取 :
chmod -R a+r *
此外chmod也可以用数字来表示权限如 :
chmod 777 file
语法为:
chmod abc file
其中a,b,c各为一个数字,分别表示User、Group、及Other的权限。
若要 rwx 属性则 4+2+1=7;
若要 rw- 属性则 4+2=6;
若要 r-x 属性を 4+1=5。
chmod a=rwx file
および
chmod 777 file
同じ効果があります
chmod ug=rwx,o=x file
および
chmod 771 file
同じ効果があります
chmodを使用して 4755 filename はこのプログラムに root の権限を与えます。
コマンド | 説明 |
---|---|
chmod a+r file | fileのすべてのユーザーに対して読み権限を追加 |
chmod a-x file | fileのすべてのユーザーの実行権限を削除 |
chmod a+rw file | fileのすべてのユーザーに対して読み書き権限を追加 |
chmod +rwx file | fileのすべてのユーザーに対して読み書き実行権限を追加 |
chmod u=rw,go= file | fileの所有者に対して読み書き権限を設定し、そのユーザーグループと他のユーザーに対してfileのすべての権限を空にする(スペースは無権限を意味します) |
chmod -R u+r,go-r docs | docsディレクトリおよびそのサブディレクトリ階層内のすべてのファイルに対してユーザーに読み権限を追加し、ユーザーグループと他のユーザーに対して読み権限を削除 |
chmod 664 file | fileの所有者とユーザーグループに対して読み書き権限を設定し、他のユーザーに対して読み権限を設定 |
chmod 0755 file | 相当于 u=rwx (4+2+1), go=rx (4+1 & 4+1)。0 特殊モードはありません。 |
chmod 4755 file | 4設定を設定ユーザーIDビット、残りは u=rwx (4+2+1), go=rx (4+1 & 4+1)。 |
find path/ -type d -exec chmod a-x {} \; | pathに対する実行権限を削除/およびそのすべてのディレクトリ(ファイルを含まない)のすべてのユーザーに対して'-type f'ファイルをマッチング |
find path/ -type d -exec chmod a+x {} \; | すべてのユーザーがブラウズまたはディレクトリパスを通じてアクセスを許可されています/ |