Linux / Unix でフォルダとディレクトリの権限を変更する
- Unix / Linux システムでのファイルの所有権
- Linux でのファイル権限の表示
- Unix / Linux システムでのファイル権限の変更
- Linux でのグループと所有者の変更
- Linux での所有権コマンドの変更
-
Linux の絶対モードで
chmod
を使用する
ファイルパーミッションシステムは、Linux オペレーティングシステムの重要なセキュリティ要素の 1つです。
これらの機能により、ファイルのアクセス許可とアクセスモードを調整できます。ユーザーにファイルやフォルダーへの適切なアクセス権が与えられていない場合に発生する可能性のある脆弱性を回避するために、適切なアクセス許可に基づいてアクセス許可を提供します。
Unix / Linux システムでのファイルの所有権
Unix / Linux システムでは、ファイルとディレクトリの所有権には 3つのタイプがあります。ファイルに割り当てられた所有者には、ファイルが受け取る権限に基づいてファイルを変更する権限があります。
- 所有者のアクセス許可:ファイルの所有者のアクセス許可は、ファイルの所有者が実行できる機能を指定します。ファイルを作成したユーザーがその所有者になるため、ユーザーは所有者とも呼ばれます。
- グループごとのアクセス許可:グループのアクセス許可によって、ユーザーがそのグループのメンバーである場合にファイルに対して実行できるアクティビティが決まります。
- 追加のアクセス許可:他のユーザーのアクセス許可は、ファイルに対して実行できるアクションを定義します。
各ファイルには、最初は 3つのアクセスオプションがありました。それらは次のとおりです。
読み取り(r)
:ファイルの内容を取得することはできますが、書き込むことはできません。これにより、ディレクトリ内にあるファイルとディレクトリのリストを受け取ることができます。書き込み(w)
:ファイルに新しいデータを追加したり、既存のデータを変更したり、ファイルやディレクトリを作成および変更したりできます。実行(x)
:プログラムに実行フラグがない場合、実行できません。このプロパティは、すべてのプログラムとスクリプトに設定されます。システムはこれを使用して、ファイルをプログラムとして起動する必要があるかどうかを判断します。
Linux でのファイル権限の表示
もちろん、Linux のファイルマネージャーを使用してファイルのアクセス許可を検索することもできます。それらはすべてこの機能をサポートしていますが、この方法で部分的な情報を受け取ります。
すべてのフラグの完全な詳細を取得するには、-l
引数を指定して ls
コマンドを使用します。ディレクトリ内のすべてのファイルが、それらのプロパティとビットとともに表示されます。
ファイルが保存されているフォルダーで次のコマンドを実行して、Linux ファイルのアクセス許可を確認します。
$ ls -l
フォルダとその中に test
と testfile
の 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つのコマンドがあります。
chown
:change owner
を表すchown
コマンドは、ファイルの所有者を変更するために使用されます。chgrp
:change 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
出力に見られるように、ファイルのパーミッションが変更されています。