Linux
 Computer >> コンピューター >  >> システム >> Linux

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

Linuxの非常に便利な機能は、ファイルとディレクトリへのアクセスを制御する「アクセス制御リスト」です。 Linuxでファイルのアクセス許可を制御するためにアクセス制御リストがどのように機能するかを次に示します。

注: アクセス制御リストがどのように機能するかを完全に把握するために、最初に、動作しているLinuxシステム上にいくつかのユーザーとグループを設定します。次の演習は、Kaliオペレーティングシステムを実行している仮想マシンで実行されます。 rootユーザーには、システムに新しいユーザーを追加してグループに割り当てる権限があります。

ユーザーとグループの作成

まず、rootとしてログインし、ユーザーを作成して、次の表に示すようにそれぞれのグループに配置します。ユーザーには、概念をよりよく理解するのに役立つ簡単な名前が付けられています。

ユーザー グループ
john1
john2
john3
ジョンズ
jane1
jane2
ジェーンズ

adduserを使用します システムに新しいユーザーを追加するコマンド。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

id コマンドは、新しく作成されたユーザーの詳細を表示します。ユーザーID(uid)、グループID(gid)、グループ名(groups)が表示されます。ユーザーは、作成時に、ユーザー名と同じ名前のグループに自動的に追加されます。そのユーザーがグループの唯一のメンバーになります。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

同様に、ユーザー「john2」と「john3」も作成されます。

adduser john2
adduser john3

3人のユーザーが作成されたら、idを使用します それぞれのユーザーIDとグループIDを表示するコマンド。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

3人のユーザーが独自のグループ(1000、1001、1002)に属していることがわかります。前に示した表によると、3人のユーザーを同じグループに含める必要があります:johns 。このようなグループは現在システムに存在しないため、groupaddを使用して作成します。 コマンド:

groupadd -g <new_group_ID> <group_name>

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

新しいグループIDは5000として指定されます。-gの場合 スイッチが無視されると、システムは自動的にグループIDを選択します。新しいグループの名前は「johns」です。ここで、「john1」、「john2」、「john3」の3人のユーザーをこのグループのメンバーとして追加する必要があります。 usermodを使用します このタスクのコマンド。

usermod -g <group_name> <user_name>

usermod ユーザー「user_name」をグループ「group_name」に追加します。次の図は、グループ変更前の「john1」のuidとgidを最初に示しています。 usermodの後 コマンドが正常に実行されると、「john1」がgid5000の「johns」グループに追加されます。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

ユーザー「john2」と「john3」についても同じプロセスが実行されます。

usermod -g johns john2
usermod -g johns john3

最後に、「johns」グループの3人のユーザーの詳細は、idを使用して表示できます。 コマンド。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

3人のユーザーを作成し、同じグループに追加しました。

同様に、ユーザー「jane1」と「jane2」が作成され、gid 6000で「janes」グループに追加されます。これらの詳細は、idを使用して表示できます。 以下に示すコマンド。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

アクセス制御リストの必要性は何ですか?

ユーザー「john1」がログインするとします

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

ホームディレクトリに新しいファイルを作成します

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

それにコンテンツを追加します。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

lsを使用する コマンドを実行すると、ファイルのメタデータが表示されます。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

出力の最初の数文字、- rw - r - - r - - 許可文字列を説明します。分析しましょう。

rw – r – – r – –
ファイルタイプ john1がファイルに持っている権限 johnsグループのメンバーがファイルに持っている権限 ジョンズグループ以外の人に与えられる許可

この記事は、ファイルのアクセス許可に関する優れた入門書です。

ファイル所有者である「john1」が、「john2」と「jane1」にのみ書き込み権限を追加で付与し、「john3」と「jane2」の読み取り権限を保持したい場合はどうなりますか?

rw – r – –
john1
john2
jane1
john3
jane2

1つのオプションは、「john1」、「john2」、「jane1」の読み取り、書き込み権限を持つ新しいグループと、「john3」と「jane2」の読み取り権限のみを持つ別のグループを作成することです。 john1がグループメンバーの権限をさらに変更したい場合は、さらにグループを作成する必要があります。複数のグループを作成して管理することは、システム管理者の負担です。

代わりに、ファイルに対して「アクセス制御リスト」を作成して、ユーザーがそのファイルに対して実行できる操作を明確に示すことができます。

ファイルのアクセス制御リスト(ACL)を作成するにはどうすればよいですか?

作成時にすべてのファイルにACLが割り当てられます。それを効率的に使用することは単にそれを修正することの問題です。ファイルのACLを変更できるのは、ファイルの所有者とrootユーザーのみです。

getfaclを使用できます 既存のACLを表示するコマンド:

getfacl <file_name>

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

#で始まる行 コメント行です。実際の情報は、出力の最後の3行にあります。これは、前に取得した許可文字列と同様です。 「user」行は、ファイル所有者「john1」に割り当てられた権限を示します。 「group」行は、「johns」グループの他のメンバーに割り当てられた権限を示します。ご想像のとおり、「その他」の行は、グループ外の他の人を指します。

setfaclを使用してみましょう ファイル上の既存のACLを変更するコマンド。

setfacl -m entity:name:permissions <file_name>
エンティティ 名前 許可
ここでの値は、ACLエントリの対象者を示します。

ユーザー(u)またはグループ(g)またはその他(o)

ACLエントリが関連するユーザーまたはグループの名前 読み取り、書き込み、実行のアクセス許可は、文字r、w、xで示されます

「john2」には、最初にファイルへの読み取り、書き込みアクセス権が与えられます。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

続いて「jane1」。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

「secretfile」の更新されたACLを見てみましょう。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

「john2」と「jane1」に読み取りと書き込みのアクセス許可が割り当てられていることがわかります。

ACLの信頼性の検証

「john2」がファイルを読み取って書き込むことができることがわかります。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

「john2」によって入力された新しい情報がファイルに追加されました。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

同様に、「jane1」は同じ特権(読み取りアクセスと書き込みアクセス)を取得します。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

ただし、同じグループの「john3」はファイルに書き込めません。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

他のカテゴリに属する​​「jane2」もファイルに書き込めません。

Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法

結論

同じプロセスをディレクトリにも拡張できます。アクセス制御リストを使用すると、システム管理者はファイルとディレクトリへのアクセスを適切に処理できます。


  1. LinuxでZipファイルを抽出する方法

    Zipファイルは、ダウンロード速度が遅く、保存されたすべてのバイトが重要だったときほど一般的ではありません。それでも、これはかなり一般的なファイルタイプです。遅かれ早かれ、おそらく1つ開く必要があります。 使用するディストリビューションによっては、zipアーカイブを抽出するのはおそらくかなり簡単です。それでも、zipファイルを開いてその内容を処理するためのより高度な方法を知っていても問題はありません。 GUIを使用した解凍 ほとんどのLinuxデスクトップ環境では、ファイルを解凍するのは簡単です。ファイルを右クリックするだけで、いくつかのオプションが表示されます。通常、「ここで抽出」または

  2. LinuxでZsyncを使用してファイルの一部を転送する方法

    ISOイメージのような大きなファイルをダウンロードすることは、大きな苦痛になる可能性があります。インターネット接続によっては、ダウンロードに時間がかかる場合があり、ハードドライブの容量を大量に消費します。次に、更新されたバージョンが必要になった場合は、プロセス全体をもう一度実行する必要があります。 ただし、解決策はあります。 ZsyncはLinux用のファイル同期ツールであり、すべてを再度ダウンロードすることなく、変更されたファイルの一部のみを更新できます。 Zsyncは、ファイルとディレクトリを同期するためのもう1つの人気のあるLinuxツールであるrsyncに基づいており、非常に使いや