\r\n\r\n

chmodコマンドとlinuxのファイルパーミッションについて説明します。

Linuxオペレーティングシステムでファイルのパーミッションを適切に管理したい場合、chmodコマンドを知る必要があります...

好みのスタイルのLinuxを見つけたものの、ターミナルコマンドやLinuxのファイルパーミッションについて何も知らないので、混乱しているのですね。

あるいは、Linuxサーバーでホストされているウェブサイトをお持ちで、コマンドラインの魔法でしか解決できないようなファイルパーミッションの問題が発生しているのかもしれません。

いずれにせよ、学ぶべき最も基本的なLinuxコマンドの1つは、chmodと呼ばれる小さいが強力なコマンドである。しかし、このコマンドが何をするのかを説明する前に、まずLinuxがどのようにファイルセキュリティを扱うのかを少し理解する必要があります。

linuxのファイルパーミッションの基本

Linux OSは実質的にUnix系システムであり(Understanding Linux and Unix)、Unix系システムはファイルのパーミッションを次のように扱っています。

各ファイルには所有者がいて、ファイルの「ユーザークラス」を決定する。また、各ファイルにはグループがあり、ファイルの「グループクラス」を決定する。所有者でなく、同じグループに属していないシステムユーザーは、別のユーザーとして識別されます。

クラスUnixシステム上のすべてのファイルには、これら3つのクラスに割り当てられたパーミッションがあり、これらのパーミッションによって、これらのクラスが与えられたファイルに対して実行できる操作が決定されます。

Unix系システムで利用できる操作は、read(ファイルを開いて内容を見る機能)、write(ファイルを開いて内容を変更する機能)、execute(ファイルを実行プログラムとして実行する機能)の3つです。

つまり、ドキュメントのパーミッションは、その有無を決定する。

  • 所有者は、ファイルの読み取り、書き込み、実行が可能です。
  • このグループは、ファイルの読み取り、書き込み、実行が可能です。
  • それ以外の人は、ファイルの読み取り、書き込み、実行が可能です。

Linuxのファイルパーミッションは、2つのフォーマットで表示することができます。

最初の形式はシンボリック表記と呼ばれ、10文字の文字列で、1文字がファイルの種類、次に9文字がファイルの読み取り(r)、書き込み(w)、実行(x)権限(所有者、グループ、その他の順)である。これが許されない場合は、ダッシュ(-)が使われる。

例えば、こんな感じです。

-rwxr-xr--

これは、所有者には読み取り、書き込み、実行の権限があり、グループには読み取りと実行の権限があり、他の人には読み取り権限しかない、通常のファイルであることを意味します。

2つ目の形式は、数値表現と呼ばれ、3つの数値の文字列で、それぞれユーザー、グループ、その他の権限を表す。各数値は0から7まであり、各クラスのパーミッションを合計することで値が得られます。

  • 0は、パーミッションが許可されていないことを意味します。
  • クラスがファイルを実行できる場合、+1 が返される。
  • + クラスをファイルに書き出すことができる場合。
  • クラスがファイルを読み取ることができれば+4。

つまり、各数値の意味は、最終的に

  • 0:許可しない
  • 1:実装
  • 2:Write
  • 3:書き込みと実行
  • 4:Read
  • 5:読み取りと実行
  • 6:読み・書き
  • 7:読み出し、書き込み、実行

つまり、上の例(

-rwxr-xr--

)は754と数値で表される。

要するに、Linuxのファイルパーミッションである。

Chimod (chmod)は何ですか?

Unix系システムでは、chmodは「change mode」の略で、ファイルの権限設定を手動で変更するためのシステムレベルのコマンドです。

Unix系システムのシステムレベルコマンドであるchownと混同しないように、chownは「所有者の変更」を意味し、ファイルの所有権を他のユーザーに割り当てることができます。" といった具合に、ファイルを別のグループに割り当てることができます。これを知っておくことは重要ですが、chmodほど一般的ではありません。

chmod 644とはどういう意味ですか?

ファイルのパーミッションを644に設定し、オーナーだけがファイルにアクセスし変更でき、他の人はアクセスするだけで変更できず、オーナーであっても誰もファイルを実行できないようにします。柔軟性と安全性のバランスがとれており、一般に公開されるファイルには理想的な設定です。

chmod 755とはどういう意味ですか?

ファイルパーミッションを755に設定すると、全員に実行権限があることを除けば、基本的に644と同じになります。ディレクトリへの変更には実行権限が必要なため、主に一般にアクセス可能なディレクトリに使用されます。

chmod 555とはどういう意味ですか?

ファイルのパーミッションを555に設定し、システムのスーパーユーザー以外がファイルを変更できないようにします(Linuxのスーパーユーザーについて詳しくはこちらをご覧ください)。これは644ほど一般的に使用されていないが、読み取り専用に設定することで偶発的な変更や改ざんを防ぐことができるため、知っておくことが重要である。

chmod 777とはどういう意味ですか?

ファイルのパーミッションを777に設定し、誰でもそのファイルに対してあらゆるアクションを実行できるようにします。これは、特にウェブサーバーでは、大きなセキュリティリスクです事実上、誰でもそのファイルにアクセスし、必要に応じて修正し、システム上で実行することができます。不正なユーザーが入手した場合の被害の可能性は想像に難くないでしょう。

linuxでのchmodの使い方

chmodコマンドの書式は簡単です。

chmod [permissi***] [file]

パーミッションは数値表記で表すことができ、全クラスに特定のパーミッションを割り当てる場合に最適な形式です。

chmod 644 example.txt

パーミッションはシンボルで表現することもでき、特定のクラスのパーミッションだけを変更したい場合に便利です。

chmod u=rwx example.txtchmod g=rw example.txtchmod o=rw example.txt

複数のクラスの権限を変更することができます。例えば、この例ではオーナーは読み取り/書き込み/実行に設定されていますが、グループと他のクラスは読み取り/実行に設定されています。

chmod u=rwx,g=rw,o=rw example.txt

複数のクラスに同じ権限を割り当てる場合、それらを組み合わせることができます。

chmod u=rwx,go=rw example.txt

しかし、特定の操作に対して特定のクラスの権限を追加または削除したい場合に、シンボリック表現を使用することの素晴らしさが明らかになります。

例えば、これはファイルの所有者に実行権限を追加するものである。

chmod u+x example.txt

これにより、他のユーザーに対する書き込み権限と実行権限が削除されます。

chmod o-wx example.txt

最後に、特定のディレクトリ内のすべてのファイルとフォルダに特定のパーミッションを適用する (つまり再帰的 chmod) には、-R オプションを使用して、そのディレクトリを対象とします。

chmod -R 755 example_directory

chmodコマンドは一見すると少しクレイジーに見えるかもしれませんが、実はとてもシンプルで完全に論理的なものです。上記が理解できれば、基本的にchmodはマスターしたも同然です

マスタリング リナックスについてもっと知る

chmod、chown、chgrpなどのコマンドは、Linuxの氷山の一角に過ぎません。Linuxを初めてお使いになる方には、「Linux初心者のためのヒント」や「絶対に実行してはいけないLinuxコマンド」をご覧になることをお勧めします。

しかし、最も重要なことは、私たちの包括的なUbuntuとLinuxの初心者ガイドを見るのが賢明でしょう。

  • 2021-03-25 12:15 に公開
  • 閲覧 ( 21 )
  • 分類:IT

あなたが興味を持っているかもしれない記事

匿名者
匿名者

0 件の投稿

作家リスト

  1. admin 0 投稿
  2. 匿名者 0 投稿

おすすめ