このセクションでは自宅サーバーとしてLinuxを操作するうえでよく使うコマンドについて初心者/ビギナー向けに解説します。
お便利サーバー.com+相互リンクサイト内をキーワードで検索
抜粋Linuxコマンドリファレンス

ディレクトリとファイルの操作

ディレクトリとファイルの作成
カレントディレクトリの変更
ディレクトリとファイルの表示
ディレクトリとファイルのコピーと移動
ディレクトリとファイルの削除
ディレクトリとファイルの検索
パーミッションの変更
解凍と圧縮

ディスクとパーティションの操作+

テキストの操作+

ユーザーとアカウント管理+

ネットワークの管理+

システム・プロセス管理+

その他のコマンド+


"chmod"パーミッションを変更する

既存のディレクトリやファイルの パーミッション を変更する コマンド です。

単一のファイルやディレクトリに対してだけでなく、ディレクトリ構造ごとパーミッションを変更することもできます。また、 ワイルドカード を利用すれば複数のファイルやフォルダのパーミッションを一度に変更することもできます。

chmodコマンドは、文字形式と数字形式の二種類の方法で実行することができますが、コマンドの一般書式はいずれも、

chmod [オプション] [モード] [ファイルまたはディレクトリ] ... Enter

となり、[モード]の指定に従って[ファイルまたはディレクトリ]のパーミッションが変更されます。

パーミッションを変更するには、変更対象となるファイルとディレクトリの所有者が、chmodコマンドを実行する ユーザーアカウント と同じでなければなりません。

ただしroot アカウント だけは例外的に、システム上のすべてのファイルとディレクトリのパーミッションを任意に変更することができます。

数字形式による"chmod"の使い方

パーミッションの数字形式 数字形式のパーミッション表記 による表記法に準じて[モード]を指定した実行方法です。

chmod [オプション] 1〜4桁の数字 [ファイルまたはディレクトリ] ... Enter

「1〜4桁の数字」の部分には、数字形式のパーミッションの値をそのまま入力します。入力する桁数が3桁以下の場合は、全4桁のパーミッション値のうち、先頭側の"0"が省略されているとみなされます。

[tanaka@web1 ~]$ ls -lEnter カレントディレクトリを表示します。 lsコマンドの説明
合計 4
-rw-r--r--  1 tanaka  tanaka     6 11月 23 10:54 sample.txt
 ↑パーミッション"644"が与えられています。
[tanaka@web1 ~]$ chmod 755 sample.txtEnter
[tanaka@web1 ~]$ ls -lEnter
合計 4
-rwxr-xr-x  1 tanaka  tanaka     6 11月 23 10:54 sample.txt
 ↑パーミッションが"755"に変更されました。
[tanaka@web1 ~]$ chmod 4755 sample.txtEnter
[tanaka@web1 ~]$ lsEnter
合計 4
-rwsr-xr-x  1 tanaka  tanaka     6 11月 23 10:54 sample.txt
 ↑パーミッションが"4755"に変更されました。
[tanaka@web1 ~]$

文字形式による"chmod"の使い方

パーミッション の文字形式 文字形式のパーミッション表記 による表記法に準じて[モード]を指定した実行方法です。

chmod [オプション] 変更指示 [ファイルまたはディレクトリ] ... Enter

「変更指示」の部分の書式は、

変更対象のユーザー記号+文字によるパーミッション記号

でパーミッションを追加し、

変更対象のユーザー記号-文字によるパーミッション記号

でパーミッションを削除することになります。

複数の変更対象のユーザーに対して異なるパーミッションを設定したい場合は、それぞれの式を "," で区切って記述します。間にスペースは入れません。

変更対象のユーザー記号 実際の変更対象
u 所有者
g 所有グループ
o その他のユーザー
a 上のすべて

"変更対象のユーザー記号"の一覧

 
文字によるパーミッション記号 変更されるパーミッション
r 読み取り許可
w 書き換え許可
x 実行許可
s SUIDまたはSGID
t スティッキービット

"文字によるパーミッション記号"の一覧

 
[tanaka@web1 ~]$ ls -lEnter カレントディレクトリを表示します。 lsコマンドの説明
合計 4
-rw-r--r--  1 tanaka  tanaka     6 11月 23 10:54 sample.txt
 ↑パーミッション"644"が与えられています。
[tanaka@web1 ~]$ chmod g+x sample.txtEnter
[tanaka@web1 ~]$ ls -lEnter
合計 4
-rw-r-xr--  1 tanaka  tanaka     6 11月 23 10:54 sample.txt
 ↑所有グループにのみ実行許可が与えられました。
[tanaka@web1 ~]$ chmod a+x sample.txtEnter
[tanaka@web1 ~]$ ls -lEnter
合計 4
-rwxr-xr-x  1 tanaka  tanaka     6 11月 23 10:54 sample.txt
 ↑すべてに実行許可が与えられました(元々許可があるものは変更されません)。
[tanaka@web1 ~]$ chmod u-x,go-rx sample.txtEnter
[tanaka@web1 ~]$ lsEnter
合計 4
-rw-------  1 tanaka  tanaka     6 11月 23 10:54 sample.txt
 ↑所有者の実行許可と、所有グループ及びその他のユーザーの読み取り許可と実行許可をはずしました。
[tanaka@web1 ~]$

"chmod"の数字形式と文字形式の使い分け

chmod コマンド の数字形式による入力と文字形式による入力は、好みで使い分けるというより、目的によって使い分けるべき選択になります。

数字形式による入力は、変更対象のディレクトリやファイルの元の パーミッション とは無関係にパーミッションの再設定が行われます。つまり、 「絶対変更」 です。

従って、すべてのパーミッションを一度に変更する場合には「直感的に」作業しやすいのですが、例えば「その他のユーザーに書き換え許可だけを与えたい」という場合でも、所有者、所有グループのパーミッションまで同時に指定しなければなりません。

一方の文字形式による入力は、変更対象の現在のパーミッションに対して変更指示を行う、いわゆる 「相対変更」 です。

従って、パーミッションの変更したい部分だけを的確に変更することができますが、例えば「元のパーミッションが何であるかとは無関係にパーミッションを変更したい」というような場合はかえって面倒です。

という訳ですから、変更対象のディレクトリやファイルが数個程度ならば "chmod 755 [ディレクトリまたはファイル名]" のように数字形式で行うのがベターです。

一方で変更対象が多く、特定のパーミッションだけを丸ごと変更したい場合には "chmod go+rwx [ ワイルドカード でディレクトリまたはファイル名を指定] のように文字形式で行うほうが間違いがないでしょう。

"-R"の利用と注意

chmod コマンド に、オプションスイッチ "-R" を付け、ディレクトリを変換対象にして実行すると、そのディレクトリを含めて、以下のディレクトリとファイルの全ての パーミッション を一気に変更することができます。

chmod -R [モード] [ファイルまたはディレクトリ] ... Enter

ただし、この "-R" オプションの利用はあまりおすすめできません。

例えば、

"chmod -R 644 /home/tanaka/mydata/"

と実行して、「"/home/tanaka/mydata/"以下の全てのファイルを誰でも読めるように」設定しようとしても、実はうまくいきません。

なぜなら、このコマンドを実行すると、変更対象のディレクトリにも同じ "644" のパーミッションが設定されてしまいますから、所有者以外には開くことができなくなってしまうからです。ディレクトリには当然、オープン許可の "755" を設定しなければなりません。

chmodコマンドは取り消しが効きませんので、大量の変更対象に誤ったパーミッションを設定してしまうと、元の状態に戻すのは大変です。

という訳ですから、chmodコマンドを利用する場合にはできるだけ "-R" オプションは使用せず、原則として一つずつ、多くても一つのディレクトリ内ごとに操作するほうが間違いないでしょう。

"chown"所有者と所有グループを変更する

既存のディレクトリやファイルの所有者と所有グループを変更する コマンド です。

単一のファイルやディレクトリに対してだけでなく、ディレクトリ構造ごと変更することもできます。また、 ワイルドカード を利用すれば複数のファイルやフォルダごと一度に変更することもできます。

コマンドの一般書式は以下の通りです。

chown [オプション] [所有者] [ファイルまたはディレクトリ] ... Enter

chown [オプション] [所有者].[所有グループ] [ファイルまたはディレクトリ] ... Enter

chown [オプション] .[所有グループ] [ファイルまたはディレクトリ] ... Enter

chownコマンドはこのように[所有者]と[所有グループ]を ".(ドット)" で区切ることで両方を一度に、また、[所有者]を記述せずに ".(ドット)" に続けて[所有グループ]を記述することで、所有グループのみを変更することができます。

通常の ユーザーアカウント の場合は所有者の変更はできません。ただし、そのユーザーアカウントが複数の所有グループに所属している場合は、その所有グループに限って変更は可能です。

という訳ですから、実際にこのchownコマンドを利用するのは "root" ユーザーに限られるます。rootユーザーは全てのディレクトリとファイルについて、所有者と所有グループを自由に変更できます。

[root@web1 tanaka]# ls -lEnter カレントディレクトリを表示します。 lsコマンドの説明
合計 4
-rw-r--r--  1 tanaka  tanaka     6 11月 23 10:54 sample.txt
 ↑所有者、所有グループとも"tanaka"です。
[root@web1 tanaka]# chown suzuki sample.txtEnter
[root@web1 tanaka]# ls -lEnter
合計 4
-rw-r-xr--  1 suzuki  tanaka     6 11月 23 10:54 sample.txt
 ↑所有者のみ"suzuki"に変更されました。
[root@web1 tanaka]# chown .root sample.txtEnter
[root@web1 tanaka]# ls -lEnter
合計 4
-rwxr-xr-x  1 suzuki  root      6 11月 23 10:54 sample.txt
 ↑所有グループのみ"root"に変更されました。
[root@web1 tanaka]# chown tanaka.named sample.txtEnter
[root@web1 tanaka]# lsEnter
合計 4
-rw-------  1 tanaka  named      6 11月 23 10:54 sample.txt
 ↑所有者が"tanaka"に、所有グループが"named"に変更されました。
[root@web1 tanaka]#

chownコマンドは、オプションスイッチ "-R" を付けて、ディレクトリを指定して実行すると、そのディレクトリを含めて、以下のディレクトリとファイルの全ての所有者、所有グループを一気に変更することができます。

"chgrp"所有グループを変更する

既存のディレクトリやファイルの所有グループを変更する コマンド です。

単一のファイルやディレクトリに対してだけでなく、ディレクトリ構造ごと変更することもできます。また、 ワイルドカード を利用すれば複数のファイルやフォルダごと一度に変更することもできます。

コマンドの一般書式は以下の通りです。

chgrp [オプション] [所有グループ] [ファイルまたはディレクトリ] ... Enter

コマンドの実行方法はchownコマンドとほとんど同じですし、所有グループの変更はchownコマンドでも可能ですから、強いて覚える必要はないかもしれません。

ちなみに、chgrpコマンドはchownコマンドと同様に、オプションスイッチ "-R" を付けて、ディレクトリを指定して実行すると、そのディレクトリを含めて、以下のディレクトリとファイルの全ての所有グループを一気に変更することができます。

このサイトは リンクフリー です。趣味や勉強のためでしたら、引用、転用、コピー、朗読、その他OKです。このサイトへのリンクについては こちら をご覧ください。今のところ更新予定はありませんのでご了承ください。
”Linux”は、Linus Torvalds 氏の各国における登録商標です。”Red Hat”及びRed Hatのロゴおよび Red Hat をベースとしたすべての商標とロゴは、各国におけるRed Hat, Inc. 社の商標または登録商標です。その他のプログラム名、システム名、製品名などは各メーカー、ベンダの各国における登録商標又は商標です。