Linux / Unix でフォルダとディレクトリの権限を変更する

Nilesh Katuwal 2023年1月30日
  1. Unix / Linux システムでのファイルの所有権
  2. Linux でのファイル権限の表示
  3. Unix / Linux システムでのファイル権限の変更
  4. Linux でのグループと所有者の変更
  5. Linux での所有権コマンドの変更
  6. Linux の絶対モードで chmod を使用する
Linux / Unix でフォルダとディレクトリの権限を変更する

ファイルパーミッションシステムは、Linux オペレーティングシステムの重要なセキュリティ要素の 1つです。

これらの機能により、ファイルのアクセス許可とアクセスモードを調整できます。ユーザーにファイルやフォルダーへの適切なアクセス権が与えられていない場合に発生する可能性のある脆弱性を回避するために、適切なアクセス許可に基づいてアクセス許可を提供します。

Unix / Linux システムでのファイルの所有権

Unix / Linux システムでは、ファイルとディレクトリの所有権には 3つのタイプがあります。ファイルに割り当てられた所有者には、ファイルが受け取る権限に基づいてファイルを変更する権限があります。

  • 所有者のアクセス許可:ファイルの所有者のアクセス許可は、ファイルの所有者が実行できる機能を指定します。ファイルを作成したユーザーがその所有者になるため、ユーザーは所有者とも呼ばれます。
  • グループごとのアクセス許可:グループのアクセス許可によって、ユーザーがそのグループのメンバーである場合にファイルに対して実行できるアクティビティが決まります。
  • 追加のアクセス許可:他のユーザーのアクセス許可は、ファイルに対して実行できるアクションを定義します。

各ファイルには、最初は 3つのアクセスオプションがありました。それらは次のとおりです。

  • 読み取り(r):ファイルの内容を取得することはできますが、書き込むことはできません。これにより、ディレクトリ内にあるファイルとディレクトリのリストを受け取ることができます。
  • 書き込み(w):ファイルに新しいデータを追加したり、既存のデータを変更したり、ファイルやディレクトリを作成および変更したりできます。
  • 実行(x):プログラムに実行フラグがない場合、実行できません。このプロパティは、すべてのプログラムとスクリプトに設定されます。システムはこれを使用して、ファイルをプログラムとして起動する必要があるかどうかを判断します。

Linux でのファイル権限の表示

もちろん、Linux のファイルマネージャーを使用してファイルのアクセス許可を検索することもできます。それらはすべてこの機能をサポートしていますが、この方法で部分的な情報を受け取ります。

すべてのフラグの完全な詳細を取得するには、-l 引数を指定して ls コマンドを使用します。ディレクトリ内のすべてのファイルが、それらのプロパティとビットとともに表示されます。

ファイルが保存されているフォルダーで次のコマンドを実行して、Linux ファイルのアクセス許可を確認します。

$ ls -l

フォルダとその中に testtestfile の 2つのファイルを作成しました。

出力:

total 0
-rw-rw-r-- 1 user user 0 Jan 14 01:00 test
-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile

最初の列は、ファイルまたはディレクトリに関連付けられているさまざまなアクセスモードまたはアクセス許可を示しています。次に、最初に所有者、次にグループ、そして他のすべての人のための権利のグループがあります。

許可フラグの条件値が何を意味するかを詳しく見てみましょう。

  • --- - 権利はまったくありません。
  • --x - プログラムとしてはファイルの実行のみが許可されますが、変更や読み取りは許可されません。
  • -w- - ファイルの書き込みと変更のみが許可されます。
  • -wx - 変更と実行を許可しますが、ディレクトリの場合、その内容を表示することはできません。
  • r-- - 読み取り専用の権利;
  • rx - 読み取りと実行のみ、書き込みアクセスなし。
  • rw- - 読み取りおよび書き込み権限がありますが、実行はありません。
  • rwx - すべての権利;
  • --s - SUID または SGID ビットが設定されている場合、所有者の SUID がフィールドに表示され、グループの SGID がフィールドに表示されます。
  • --t - スティッキービットが設定されています。これは、ユーザーがこのファイルを削除できないことを意味します。

Unix / Linux システムでのファイル権限の変更

chmod は、ファイルまたはディレクトリの権限を変更する変更モードコマンドです。chmod を使用する 2つの方法は、シンボリックモードとアブソリュートモードです。

シンボリックモードで chmod を使用する

シンボリックモードは、学習者がファイルまたはディレクトリのアクセス許可を調整するための最も簡単なアプローチです。

次の表の演算子を使用して、シンボリック権限で必要な権限セットを追加、削除、または指定できます。

chmod 演算子 説明
+ 指定された権限がファイルまたはディレクトリに追加されます。
- ファイルまたはディレクトリの指定された権限を削除します。
= 指定されたユーザーの権限を設定します。

例を見てみましょう。テストで ls -l を実行すると、権限が次のようになっていることがわかります。

$ ls -l test

出力:

-rw-rw-r-- 1 user user 0 Jan 14 01:00 test

次に、テストの前の表のサンプル chmod コマンドをそれぞれ実行し、続いて ls -l を実行して、アクセス許可の変更を確認します。

$ chmod o+wx test
$ ls -l test

ここで、o は他のユーザー、w は書き込み、x は実行を表します。+ は、指定された権限を test ファイルに追加するために使用されます。

出力:

-rw-rw-rwx 1 user user 0 Jan 14 01:00 test

上記の 2つの出力の違いを見ることができます。-rw-rw-r---rw-rw-rwx に変更されます。上記のコマンドは、その他のユーザーに rw 権限を追加しました。

Linux でのグループと所有者の変更

Unix でアカウントを作成すると、各ユーザーには所有者 ID とグループ ID が与えられます。上記のすべての権限も、所有者とグループに基づいて割り当てられます。

グループと所有者を変更するには、主に 2つのコマンドがあります。

  • chownchange owner を表す chown コマンドは、ファイルの所有者を変更するために使用されます。
  • chgrpchange group の略である chgrp コマンドは、ファイルのグループを変更するために使用されます。

使用される権限グループは次のとおりです。

  • u -所有者
  • g -グループ
  • o -その他
  • a -すべてのユーザー

Linux での所有権コマンドの変更

chown コマンドは、ファイルの所有権を変更するために使用されます。

基本的な構文は次のとおりです。

$ chown [name] [filename]

ユーザーの値として、システムユーザーの名前またはシステムユーザーのユーザーID(UID)を使用できます。

同様に、ファイルのグループ所有者を変更するには、次のようにします。

$ chgrp [group_name] [filename]

Linux の絶対モードで chmod を使用する

ファイルのアクセス許可は、数値コードで変更することもできます。アクセスモードの同等の番号コードは次のとおりです。

数字 アクセスモード
0 ---
1 -x
2 -w-
3 -wx
4 r-
5 r-x
6 rw-
7 rwx

たとえば、chmod 711 filename は、所有者にすべての権利を与え、他のすべてのユーザーには実行権のみを与えます。

ファイル testfile のパーミッションを見てみましょう。

$ ls -l testfile

出力:

-rw-rw-r-- 1 user user 0 Jan 14 01:00 testfile

ここで、chmod で数値コードを使用します。

$ chmod 711 testfile
$ ls -l testfile

出力:

-rwx--x--x 1 user user 0 Jan 14 01:00 testfile

出力に見られるように、ファイルのパーミッションが変更されています。