(Translated by https://www.hiragana.jp/)
chmod - Wikipedia コンテンツにスキップ

chmod

出典しゅってん: フリー百科ひゃっか事典じてん『ウィキペディア(Wikipedia)』

chmod(change mode、チェンジモード)は、UNIXおよびUNIXけいオペレーティングシステムにおけるシェルコマンドの一種いっしゅである。ファイルディレクトリのファイルモード(ファイルパーミッションなど)を変更へんこうするのに使つかわれる。

歴史れきし

[編集へんしゅう]

chmod コマンドは、AT&T最初さいしょUNIXResearch Unix V1)にすでそなわっており、いまも UNIX けいオペレーティングシステムで使つかわれている。

使用しようほう

[編集へんしゅう]

chmod コマンドのオプション形式けいしきつぎとおり。

$ chmod [options] mode file1 ...

現在げんざいのパーミッション設定せっているには、つぎのように入力にゅうりょくする。

$ ls -l

オプション

[編集へんしゅう]

おもなオプションとして、つぎのものがある。

  • -R: 再帰さいきてきにディレクトリとその配下はいかのファイルぐんのモードを変更へんこうする。
  • -v: Verbose(冗長じょうちょう)モード。処理しょりちゅうぜんファイルめいをリスト表示ひょうじする。

文字もじれつによるモード指定してい

[編集へんしゅう]

chmod では、ぜんパーミッションと特殊とくしゅモードを mode パラメータで表現ひょうげんする。ファイルやディレクトリのモードを指定していする1つの方法ほうほうとしてシンボリックモードがある。シンボリックモードは、3つの部分ぶぶんからなる文字もじれつあらわされる。

$ chmod [references][operator][modes] file1 ...

references はクラス(ユーザ、グループ、その)を指定していするのに使つかわれる。references が指定していされない場合ばあいぜんクラスを意味いみする。以下いか文字もじ使つかって指定していする。

Reference クラス 説明せつめい
u ユーザ ファイルの所有しょゆうしゃ
g グループ 所有しょゆうしゃぞくするグループ
o その グループ以外いがいぜんユーザ
a すべ 上記じょうき3つすべて。ugo指定していするのとおな

operator はモードの処理しょり方法ほうほう指定していする。

Operator 説明せつめい
+ 指定していされたモードを指定していされたクラスに追加ついかする。
- 指定していされたモードを指定していされたクラスから削除さくじょする。
= 指定していされたモードが指定していされたクラスの正確せいかく内容ないようとなる。つまり、指定していされなかったモードは削除さくじょされ、指定していされたモードだけが付与ふよされる。

modes はモードを指定していする。基本きほんパーミッションに対応たいおうして3つの基本きほんモードがある。

Mode 名称めいしょう 説明せつめい
r リード ファイルを可能かのう、ディレクトリ内容ないよう参照さんしょう可能かのう
w ライト ファイルやディレクトリに可能かのう
x 実行じっこう ファイルを実行じっこう可能かのう、ディレクトリに移動いどう可能かのう
X 特殊とくしゅ実行じっこう パーミッション自体じたいではないが、x のわりに使つかうことができる。ディレクトリについては現在げんざいのパーミッションに関係かんけいなく実行じっこうパーミッションを付与ふよするが、ファイルについては(クラスに関係かんけいなく)現在げんざいのパーミッションで実行じっこうパーミッションが設定せっていされている場合ばあいのみ実行じっこうパーミッションを付与ふよする。operator が '+' で、-R オプションを使つか場合ばあいのみ便利べんりである。
s setuid/gid 後述こうじゅつ
t sticky 後述こうじゅつ

これら3要素ようそ構成こうせいされる文字もじれつがシンボリックモードでのパーミッション指定していとして認識にんしきされる。複数ふくすう変更へんこうがあるときは、それらをカンマで連結れんけつして指定していすればよい。

つぎれいは、sample という名前なまえのファイルまたはディレクトリについて、ユーザクラスおよびグループクラスのリードパーミッションとライトパーミッションを付与ふよするものである。

$ chmod ug+rw sample
$ ls -ld sample
drw-rw----   2 unixguy  unixguy       96 Dec  8 12:53 sample

つぎれいは、ぜんパーミッションを削除さくじょするもので、sampleすこともむことも実行じっこうすることもできなくなる。

$ chmod a-rwx sample
$ ls -l sample
----------   2 unixguy  unixguy       96 Dec  8 12:53 sample

つぎれいは、ユーザおよびグループのパーミッションをリードと実行じっこうだけに設定せっていする(ライトは不可ふかとする)。

コマンド実行じっこうまえの sample のパーミッション
$ ls -ld sample
drw-rw----   2 unixguy  unixguy       96 Dec  8 12:53 sample
$ chmod ug=rx sample
$ ls -ld sample
dr-xr-x---   2 unixguy  unixguy       96 Dec  8 12:53 sample

はち進数しんすうによるモード指定してい

[編集へんしゅう]

chmod コマンドは、さんけたよんけたはち進数しんすうでモードを指定していできる。これを絶対ぜったいモード指定していぶ。たとえば、つぎのように指定していする。

$ chmod 0664 sample

sample というファイルの setuidsetgidsticky ビットが設定せっていされていない場合ばあい、これは以下いか等価とうかである。

$ chmod 664 sample

あるいは

$ chmod +r,-x,ug+w sample

特殊とくしゅモード

[編集へんしゅう]

chmod コマンドは、ファイルやディレクトリの追加ついかパーミッション(あるいは特殊とくしゅモード)も変更へんこう可能かのうである。シンボリックモードでは ssetuidsetgid モードをあらわし、tsticky モードをあらわす。それぞれ、特定とくていのクラスでのみ有効ゆうこうである。くわしくはファイルパーミッション参照さんしょうされたい。

おおくのオペレーティングシステムでは絶対ぜったいモードでの特殊とくしゅモード指定してい可能かのうだが、一部いちぶでは不可能ふかのうなOSもあり、その場合ばあいはシンボリックモードでしか指定していできない。

  • chmod +r fileすべてのリードパーミッションを付与ふよ
  • chmod -x fileすべての実行じっこうパーミッションを削除さくじょ
  • chmod u=rw,go= file所有しょゆうしゃにはリード/ライトパーミッションをセットし、グループおよびそのについてはぜんパーミッションを削除さくじょ
  • chmod +rw fileすべてのリード/ライトパーミッションを付与ふよ
  • chmod -R u+w,go-w docs/ – ディレクトリ docs とその配下はいかぜんファイルについて、ユーザ(所有しょゆうしゃ)にはライトパーミッションを付与ふよし、それ以外いがいからはライトパーミッションを削除さくじょするよう変更へんこう
  • chmod 666 fileすべてのリード/ライトパーミッションを付与ふよ
  • chmod 0755 fileu=rwx (4+2+1),go=rx (4+1 & 4+1)等価とうか0特殊とくしゅモードを指定していしないことを意味いみする。
  • chmod 4755 file4setuid意味いみする。
  • find path/ -type d -exec chmod a-x {} \; – path/ 配下はいかぜんディレクトリについて、a-x を設定せっていする(ファイルのみの場合ばあいは '-type f')
  • find path/ -type d -exec chmod 777 {} \; – path/ 配下はいかぜんディレクトリについて、ぜんパーミッションを付与ふよする
  • chmod -R u+rwX,g-rwx,o-rwx <directory>所有しょゆうしゃパーミッションはディレクトリについては rwx、ファイルについては rw を設定せっていし、それ以外いがいのパーミッションは --- とする。]
  • chmod 777 file - すべての利用りようしゃにすべての権限けんげん付与ふよ[1]

脚注きゃくちゅう

[編集へんしゅう]

関連かんれん項目こうもく

[編集へんしゅう]

外部がいぶリンク

[編集へんしゅう]