私はここ数カ月間Linuxのコースを受講していましたが、Linuxの側面の1つは、パーミッションの仕組みでした。 たとえば、Webサーバーにファイルを1回アップロードしてエラーが発生したときに、Webホストからファイルのアクセス権を755に変更するように指示されました。
パーミッションを変更して問題が解決したとしても、それが何を意味するのか私にはわかりませんでした。 Linuxのパーミッションはそれほど複雑ではないことに気付きました。システムを理解するだけでいいのです。 この記事では、Linuxの権限について高レベルで説明し、chmodコマンドを使用してファイルとフォルダーの権限を変更する方法を説明します。
Linuxの権限とレベル
Linuxでは、通常心配しなければならない基本的に3つの許可があります。それは読み取り、書き込み、そして実行です。 これら3つすべては、一目瞭然です。 これらの権限がファイルに適用されると、レベルで適用されます。
Linuxには、所有者、グループ、その他の3つのレベルの権限があります。 所有者はファイル/フォルダを所有するユーザーです。グループにはファイルのグループ内の他のユーザーが含まれ、その他は所有者またはグループに属していない他のすべてのユーザーを表します。
読み取り、書き込み、および実行は、記号文字または8進数として表されます。 たとえば、いくつかのファイルを含むディレクトリでls -lを実行すると、権限の記号文字表現が表示されます。
許可は次のように書かれています:最初のビットはダッシュか文字dです。 ダッシュはファイルで、 dはディレクトリを意味します。 ファイル名がリンクの場合、最初のビットもlになることがあります。 次に、3ビットの3つのグループがあります。 各グループの最初のビットは読み取り用、2番目のビットは書き込み用、3番目のビットは実行用です。 最初の3ビットは所有者用、2番目の3ビットはグループ用、3番目の3ビットはその他用です。 これはより視覚的な説明です。
あなたが手紙の代わりにダッシュを見るならば、それは所有者、グループあるいは他のすべてのユーザーがその許可を持っていないことを意味します。 上記の例では、所有者、グループ、その他の全員が読み取り、書き込み、および実行権限を持っています。
ls -lコマンドの出力を見ると、私の練習用テキストファイルには次の権限があることがわかります。
-rw-rw-rw-
これは、全員がファイルに対する読み取り/書き込み権限しか持っていないことを意味します。 これは別の例です。
drwxr - r--
最初の部分を見ると、パーミッションがディレクトリに対するものであることがわかります。 所有者には読み取り/書き込み/実行権限がありますが、グループおよび他のユーザーには読み取り権限しかありません。
8進数表現
そのため、Linuxではパーミッションはシンボルを使って表示されます。 同じ許可を表す2番目の方法は、8進数を使用することです。 後でchmodコマンドを使用するときは、シンボルまたは8進数を使用してアクセス権を変更できることがわかります。
では、Linuxは8進数を使用して読み取り、書き込み、実行をどのように表しているのでしょうか。 基本的には、以下のように各権限に番号を割り当てるだけです。
読み取り許可は4で表され、2で書き込まれ、1で実行されます。あなたがしなければならないのは8進の許可を得るためにそれらを足し合わせることです。 たとえば、全員がすべての権限を持っている上記の例を見てみましょう。
-rwxrwxrwx
所有者はrwxを持っているので、7の値を取得するために4 + 2 + 1を追加します。グループに対しても同じことを行い、その他に対しても同じことを行います。 最後の8進値は777です。読み取り/書き込み権限のみを与えた例を見てみましょう。
-rw-rw-rw-
読み書きを追加しているので、最初の8進数は4 + 2になります。 2番目のものは3番目の8進数と同じになります。 ここで我々は666の最終的な8進値を持っています。
それでは、今度は別の方法で試しましょう。 755が表すパーミッションを知りたいとしましょう。 さて、あなたが個々の数字でそれを分類するかどうかを理解するのはかなり簡単です。 最初の数字は7です。これは、4 + 2 + 1を追加することによってのみ取得できます。つまり、所有者には読み取り/書き込み/実行権限があります。 5つは4 + 1を追加することによってのみ得ることができます。つまり、グループと他のユーザーは読み取り権限と実行権限を持ちます。
うまくいけば、これはLinuxでパーミッションを8進数で表す方法の良い説明です。 全体的にはかなり簡単です。
chmodを使ってパーミッションを変更する
パーミッションの読み方が理解できたので、パーミッションを変更する方法について話しましょう。 この目的に使用するのに最も簡単なユーティリティはchmodコマンドです。 これがどのように機能するかです。 コマンドを説明するための最良の方法は、例を見てみることです。
上記で説明した権限から始めましょう。
-rw-rw-rw-
所有者、グループ、その他に実行権限を追加したい場合は、2つの方法で実行できます。 シンボル法かオクタル法を使うことができます。 シンボルメソッドでは、以下のようにして次のことを行います。
正確なコマンドは
chmod a + xファイル名
構文は次のとおりです。所有者( u )、グループ( g )、その他( o )、またはすべて( a )を表す1文字以上の後に権限を追加するための+ 、または権限を削除するための-許可(読み取りの場合はr 、書き込みの場合はw 、実行の場合はx )。
上記の例では、すべてのユーザーに実行権限を追加しました。 上のスクリーンショットでわかるように、結果は所有者、グループ、その他のxです。 それでは、グループと他のユーザーだけに書き込み権限と実行権限を削除したいとしましょう。
ここに見られるように、私はこれを達成するために次のコマンドに慣れていました:
chmod go-wxファイル名
groupなどのアクセス許可を変更したいので、 gとoの文字を使います。 権限を削除したいので、 -記号を使用します。 最後に、書き込み権限と実行権限を削除したいので、 wとxを使用します。 これがシンボルの使い方の便利な小さなテーブルです。
それで、シンボルメソッドを使用するだけです。 それでは、もう少し簡単な8進法について話しましょう。 Octalは、アクセス権を一度に追加または削除できるため、優れています。
ファイルに次の権限を設定した場合、8進法を使用してそれらをどのように変更できるかを見てみましょう。
-rw-rw-rw-
上で、あなたは私が以下のコマンドを使ったのを見ることができます:
chmod 744ファイル名
これは基本的に、所有者は読み取り/書き込み/実行権限を取得し、グループやその他のユーザーは読み取り権限のみを取得するということです。 ご覧のとおり、1つの簡単なコマンドで権限を追加または削除するのは簡単です。 続けて許可を変更したいと言います。
今度は次のコマンドを使いました。これもまた非常に単純なものです。
chmod 640ファイル名
ここでは、所有者に読み取り/書き込み権限、グループに読み取り権限のみ、他のグループには権限なしを与えました。 権限がないことを示すにはゼロを使用します。 かなり単純ですね。
結論として、これはLinuxパーミッションの非常に単純な概要であり、これよりずっと複雑になる可能性がありますが、初心者にとっては、始めるのに適した場所です。 将来的には、より高度な権限に関する記事を追加する予定です。 質問がある場合は、コメントしてください。 楽しい!