English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Linux chmod コマンド

Linux コマンド全書

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ユーザータイプ説明
uuserファイルの所有者
ggroupファイルの所有者があるグループ
oothersすべての他のユーザー
aall使用するユーザー、以下に相当 ugo

operatorのシンボルパターンテーブル:

Operator説明
+指定のユーザータイプに権限を追加する
-去除指定用户类型的权限
=设置指定用户权限的设置,即将用户类型的所有权限重新设置

permission 的符号模式表:

模式名字説明
r设置为可读权限
w设置为可写权限
x执行权限设置为可执行权限
X特殊执行权限只有当文件为目录文件,或者其他类型的用户有可执行权限时,才将文件权限设置可执行
ssetuid/gid当文件被执行时,根据who参数指定的用户类型设置文件的setuid或者setgid权限
t粘贴位设置粘贴位,只有超级用户可以设置该位,只有文件所有者u可以使用该位

八进制语法

chmod命令可以使用八进制数来指定权限。文件或目录的权限位是由9个权限位来控制,每三位为一组,它们分别是文件所有者(User)的读、写、执行,用户组(Group)的读、写、执行以及其它用户(Other)的读、写、执行。历史上,文件权限被放在一个比特掩码中,掩码中指定的比特位设为1,用来说明一个类具有相应的优先级。

#权限rwx二进制
7读 + 写 + 执行rwx111
6读 + 写rw-110
5读 + 执行r-x101
4只读r--100
3写 + 执行-wx011
2只写-w-010
1只执行--x001
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的权限。

r=4,w=2,x=1

  • 若要 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 filefileのすべてのユーザーに対して読み権限を追加
chmod a-x filefileのすべてのユーザーの実行権限を削除
chmod a+rw filefileのすべてのユーザーに対して読み書き権限を追加
chmod +rwx filefileのすべてのユーザーに対して読み書き実行権限を追加
chmod u=rw,go=  filefileの所有者に対して読み書き権限を設定し、そのユーザーグループと他のユーザーに対してfileのすべての権限を空にする(スペースは無権限を意味します)
chmod -R u+r,go-r docsdocsディレクトリおよびそのサブディレクトリ階層内のすべてのファイルに対してユーザーに読み権限を追加し、ユーザーグループと他のユーザーに対して読み権限を削除
chmod 664 filefileの所有者とユーザーグループに対して読み書き権限を設定し、他のユーザーに対して読み権限を設定
chmod 0755 file相当于 u=rwx (4+2+1), go=rx (4+1 & 4+1)。0 特殊モードはありません。
chmod 4755 file4設定を設定ユーザー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 {} \;すべてのユーザーがブラウズまたはディレクトリパスを通じてアクセスを許可されています/

Linux コマンド全書