Linuxパーミッションとchmodの使い方


私は過去数ヶ月間Linuxのコースを受講してきましたが、Linuxを悩ましているのは、権限がどのように働いたかということでした。たとえば、Webサーバーにファイルを一度アップロードしてエラーが発生した場合、Webホストからファイルのアクセス許可を755に変更するように指示されました。

権限によって問題が解決されました。私はLinuxのパーミッションがそれほど複雑ではないことを認識しました。システムを理解するだけです。この記事では、ハイレベルなLinux権限について説明し、chmodコマンドを使ってファイルやフォルダの権限を変更する方法を説明します。

Linux Permissions&レベル

Linuxでは、基本的にあなたが通常心配しなければならない3つのパーミッションがあります:読み取り、書き込み、実行です。これらの3つはすべて自明です。これらの権限がファイルに適用されると、それらはレベルで適用されます。

Linuxでは、オーナー、グループ、その他の3つの権限レベルがあります。所有者はファイル/フォルダを所有するユーザー、グループはファイルグループ内の他のユーザーを含み、その他は所有者またはグループに属していない他のすべてのユーザーを表します。

読み取り、書き込み、実行記号文字または8進数として表されます。たとえば、いくつかのファイルがあるディレクトリでls -lを実行すると、パーミッションのシンボリック文字表現が表示されます。

権限は以下のように書かれています:最初のビットはダッシュかdです。 ダッシュはファイルであり、dはディレクトリを表します。ファイル名がリンクの場合は、最初のビットも1にすることができます。次に、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で実行します。例えば、誰もがすべての権限を持っている上記の例を考えてみましょう。

-rwxrwxrwx

所有者はrwxを持っていますので、4 + 2 + 1を追加して値7を取得します。私たちは同じことをグループで行い、同じことを他の人にします。

-rw-rw-rw-

最初の8進数は4 + 2になります。読み書きを加える。 2番目のものは3番目の8進数と同じになります。ここでは最終的な8進数の値が666になります。

これでもう一方の方法を試してみましょう。 755が表すパーミッションを知りたいとします。あなたが個々の数字でそれを分解したかどうかはかなり簡単です。最初の数字は7です.4 + 2 + 1を追加することで取得できます。これは、所有者が読み取り/書き込み/実行権限を持っていることを意味します。

うまくいけば、それは良いことです8進数を使ってLinuxでパーミッションを表現する方法の説明。

chmodを使ってパーミッションを変更する

パーミッションを読み込む方法を理解したので、ここでどのように変更できるのか話しましょう。この目的のために使用する最も簡単なユーティリティは、chmodコマンドです。これはどのように動作するのですか?

ここで説明した権限から始めましょう。

-rw-rw-rw-

所有者、グループ、その他に対して実行権限を追加したい場合は、2つの方法でこれを実行できます。シンボル法や8進法を使うことができます。

正確なコマンドは

14 <(u)、グループ(g)、その他(o権限を追加するための+、権限を取り除くための - 、許可の手紙を入力してください(rは読み込み、wは書き込み、xは実行)。すべてのユーザーに対して権限を実行します。あなたが上のスクリーンショットで見ることができる結果は、オーナー、グループ、その他のためのxです。ここでは、グループと他のユーザーだけに書き込み権限と実行権限を削除したいとしましょう。

15

グループやその他の権限を変更したいので、gという文字を使用します。 o権限を削除したいので、 - の記号を使用します。最後に、書き込み権限と実行権限を削除したいので、wxを使用します。シンボルの使い方に便利な小さなテーブルがあります:

これでシンボルメソッドを使用するだけです。さて、私は少し簡単だと分かっている8進法について話しましょう。

ファイルに対して次の権限で始める場合は、8進法を使用して変更する方法を見てみましょう。

上記のように、私は次のコマンドを使用していることがわかります:

chmod 744 filename

これは、基本的に、所有者が読み取り/書き込み/実行パーミッションを取得し、グループと他のユーザーが読み取り専用になることを示しています。ご覧のとおり、1つの簡単なコマンドでアクセス許可を追加または削除するのは簡単です。

次に、非常に単純なコマンドを使用しました。

>
chmod 640 filename

ここでは、所有者に読み取り/書き込み権限、グループ読み取り権限のみ、および他のグループに権限は与えられていません。あなたはゼロを使用してパーミッションを表示しません。結局のところ、これはLinuxのアクセス許可の非常に単純な概要であり、これよりもはるかに複雑になる可能性がありますが、初心者にとっては、始めるのが良い場所です。

私は今後さらに高度な権限に関する記事を掲載していきます。ご不明な点がございましたら、お気軽にコメントしてください。お楽しみください!

[プラグイン講座]PermissionEX基本編(コマンド)

関連記事:


16.02.2017