Linuxでアクセス制御リストを使用してファイルのアクセス許可を制御する方法
Linuxの非常に便利な機能は、ファイルとディレクトリへのアクセスを制御する「アクセス制御リスト」です。 Linuxでファイルのアクセス許可を制御するためにアクセス制御リストがどのように機能するかを次に示します。
注: アクセス制御リストがどのように機能するかを完全に把握するために、最初に、動作しているLinuxシステム上にいくつかのユーザーとグループを設定します。次の演習は、Kaliオペレーティングシステムを実行している仮想マシンで実行されます。 rootユーザーには、システムに新しいユーザーを追加してグループに割り当てる権限があります。
ユーザーとグループの作成
まず、rootとしてログインし、ユーザーを作成して、次の表に示すようにそれぞれのグループに配置します。ユーザーには、概念をよりよく理解するのに役立つ簡単な名前が付けられています。
ユーザー | グループ |
---|---|
john1 john2 john3 | ジョンズ |
jane1 jane2 | ジェーンズ |
adduser
を使用します システムに新しいユーザーを追加するコマンド。
id
コマンドは、新しく作成されたユーザーの詳細を表示します。ユーザーID(uid)、グループID(gid)、グループ名(groups)が表示されます。ユーザーは、作成時に、ユーザー名と同じ名前のグループに自動的に追加されます。そのユーザーがグループの唯一のメンバーになります。
同様に、ユーザー「john2」と「john3」も作成されます。
adduser john2 adduser john3
3人のユーザーが作成されたら、id
を使用します それぞれのユーザーIDとグループIDを表示するコマンド。
3人のユーザーが独自のグループ(1000、1001、1002)に属していることがわかります。前に示した表によると、3人のユーザーを同じグループに含める必要があります:johns
。このようなグループは現在システムに存在しないため、groupadd
を使用して作成します。 コマンド:
groupadd -g <new_group_ID> <group_name>
新しいグループ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」グループに追加されます。
ユーザー「john2」と「john3」についても同じプロセスが実行されます。
usermod -g johns john2 usermod -g johns john3
最後に、「johns」グループの3人のユーザーの詳細は、id
を使用して表示できます。 コマンド。
3人のユーザーを作成し、同じグループに追加しました。
同様に、ユーザー「jane1」と「jane2」が作成され、gid 6000で「janes」グループに追加されます。これらの詳細は、id
を使用して表示できます。 以下に示すコマンド。
アクセス制御リストの必要性は何ですか?
ユーザー「john1」がログインするとします
ホームディレクトリに新しいファイルを作成します
それにコンテンツを追加します。
ls
を使用する コマンドを実行すると、ファイルのメタデータが表示されます。
出力の最初の数文字、- 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>
#
で始まる行 コメント行です。実際の情報は、出力の最後の3行にあります。これは、前に取得した許可文字列と同様です。 「user」行は、ファイル所有者「john1」に割り当てられた権限を示します。 「group」行は、「johns」グループの他のメンバーに割り当てられた権限を示します。ご想像のとおり、「その他」の行は、グループ外の他の人を指します。
setfacl
を使用してみましょう ファイル上の既存のACLを変更するコマンド。
setfacl -m entity:name:permissions <file_name>
エンティティ | 名前 | 許可 |
---|---|---|
ここでの値は、ACLエントリの対象者を示します。 ユーザー(u)またはグループ(g)またはその他(o) | ACLエントリが関連するユーザーまたはグループの名前 | 読み取り、書き込み、実行のアクセス許可は、文字r、w、xで示されます |
「john2」には、最初にファイルへの読み取り、書き込みアクセス権が与えられます。
続いて「jane1」。
「secretfile」の更新されたACLを見てみましょう。
「john2」と「jane1」に読み取りと書き込みのアクセス許可が割り当てられていることがわかります。
ACLの信頼性の検証
「john2」がファイルを読み取って書き込むことができることがわかります。
「john2」によって入力された新しい情報がファイルに追加されました。
同様に、「jane1」は同じ特権(読み取りアクセスと書き込みアクセス)を取得します。
ただし、同じグループの「john3」はファイルに書き込めません。
他のカテゴリに属する「jane2」もファイルに書き込めません。
結論
同じプロセスをディレクトリにも拡張できます。アクセス制御リストを使用すると、システム管理者はファイルとディレクトリへのアクセスを適切に処理できます。
-
LinuxでZipファイルを抽出する方法
Zipファイルは、ダウンロード速度が遅く、保存されたすべてのバイトが重要だったときほど一般的ではありません。それでも、これはかなり一般的なファイルタイプです。遅かれ早かれ、おそらく1つ開く必要があります。 使用するディストリビューションによっては、zipアーカイブを抽出するのはおそらくかなり簡単です。それでも、zipファイルを開いてその内容を処理するためのより高度な方法を知っていても問題はありません。 GUIを使用した解凍 ほとんどのLinuxデスクトップ環境では、ファイルを解凍するのは簡単です。ファイルを右クリックするだけで、いくつかのオプションが表示されます。通常、「ここで抽出」または
-
LinuxでZsyncを使用してファイルの一部を転送する方法
ISOイメージのような大きなファイルをダウンロードすることは、大きな苦痛になる可能性があります。インターネット接続によっては、ダウンロードに時間がかかる場合があり、ハードドライブの容量を大量に消費します。次に、更新されたバージョンが必要になった場合は、プロセス全体をもう一度実行する必要があります。 ただし、解決策はあります。 ZsyncはLinux用のファイル同期ツールであり、すべてを再度ダウンロードすることなく、変更されたファイルの一部のみを更新できます。 Zsyncは、ファイルとディレクトリを同期するためのもう1つの人気のあるLinuxツールであるrsyncに基づいており、非常に使いや