Linuxでの権限と権利

特定のディレクトリ/フォルダに含まれるファイルへの「アクセスを制限」する必要があった人、または特定のファイルのコンテンツを表示、削除、または変更できないようにする必要がある人はどれくらいいますか? 複数ありますよね? 愛するペンギンでそれを達成できますか? 答えは: もちろんはい :D.

はじめに

Windowsから来た私たちの多くは、この「問題」を非常に異なる方法で処理することに慣れていました。この目的を達成するには、ファイルをその属性で非表示にしたり、ファイルを移動したりするなど、非正統的な「手法」に頼らなければなりませんでした。チームの最も離れた場所(20,000フォルダー内)に情報を送信して、「敵」XDを思いとどまらせたり、ファイル拡張子を変更または削除したり、最も「一般的な」方法を試したりするために、「アクセスするためのパスワードを要求する素敵なダイアログボックスの後ろにあるディレクトリを閉じます。 私たちははるかに良い選択肢がありましたか? いいえ.

BTRFS
関連記事
端末経由でHDDまたはパーティションをマウントする方法

「Windolero」の友達には大変申し訳ありませんが(私はそれをとても愛情を込めて言っているので、誰も気分を害することはありません、いいですか?;))、しかし今日はWindows:Pで少し自分自身を学ぶ必要があります。この機能をネイティブにします。

私たちが「Windows」コンピューターの後ろに座っていると(たとえそれが私たちのものでなくても)、コンピューターに含まれるすべてのもの(画像、ドキュメント、プログラムなど)の所有者になることに気付いた人はどれくらいいますか? どういう意味ですか? そうですね、「Windowsの制御」を行うだけで、この情報の「所有者」であるかどうかに関係なく、フォルダやファイルを左右にコピー、移動、削除、作成、開く、または変更できます。 これは、オペレーティングシステムの重大なセキュリティ上の欠陥を反映していますね。 これはすべて、Microsoftのオペレーティングシステムがマルチユーザー向けにゼロから設計されていないためです。 MS-DOSのバージョンとWindowsの一部のバージョンがリリースされたとき、エンドユーザーがそれぞれのコンピューターを「保護」する責任があり、他のユーザーがそこに保存されている情報にアクセスできないようにすることを完全に信頼していました。 ¬。 WinUsersの友達、あなたはすでにこの「謎」がある理由を知っています:D。

一方、GNU / Linuxは、基本的にネットワーキング用に設計されたシステムであり、多くのユーザーがアクセスできる、またはアクセスできる可能性があるため、コンピューター(サーバーは言うまでもなく)に保存する情報のセキュリティが基本です。これらのコンピューターで管理されるソフトウェアリソース(アプリケーションと情報の両方)およびハードウェアの一部。

これで、許可システムが必要な理由がわかります。 トピックに飛び込みましょう;)。

関連記事
DU:最もスペースを占める10個のディレクトリを表示する方法

GNU / Linuxでは、ユーザーがそれに含まれる特定のファイルに対して持つことができる権限または権利は、XNUMXつの明確に区別されたレベルで確立されます。 これらのXNUMXつのレベルは次のとおりです。

所有者の許可。
グループ権限。
残りのユーザー(または「その他」とも呼ばれる)の権限。

これらの概念を明確にするために、ネットワークシステム(ペンギンなど)には、常に管理者、スーパーユーザー、またはルートの図があります。 この管理者は、ユーザーの作成と削除、および各ユーザーがシステムで持つ特権の確立を担当します。 これらの特権は、各ユーザーのHOMEディレクトリと、管理者がユーザーがアクセスできると判断したディレクトリとファイルの両方に対して確立されます。

所有者の権限

所有者は、作業ディレクトリ(HOME)内、または権限を持つ他のディレクトリにファイル/フォルダを生成または作成するユーザーです。 各ユーザーには、デフォルトで、作業ディレクトリ内に必要なファイルを作成する権限があります。 原則として、彼と彼だけが、あなたのHOMEディレクトリのファイルとディレクトリに含まれる情報にアクセスできる人になります。

グループ権限

最も普通のことは、各ユーザーがワークグループに属していることです。 このように、グループを管理する場合、そのグループに属するすべてのユーザーが管理されます。 つまり、各ユーザーに個別に特権を割り当てるよりも、システムで特定の特権が付与されているグループに複数のユーザーを統合する方が簡単です。

残りのユーザーの権限

最後に、任意のディレクトリに含まれるファイルの特権は、問題のファイルが統合されているワークグループに属していない他のユーザーによっても保持されている可能性があります。 つまり、ファイルが配置されているワークグループに属していないが、他のワークグループに属しているユーザーは、他のシステムユーザーと呼ばれます。

とてもいいですが、どうすればこれをすべて識別できますか? 簡単です。ターミナルを開いて、次の手順を実行します。

$ ls -l

注意: 小文字の「L」です 

次のように表示されます。

ご覧のとおり、このコマンドは私のHOMEのコンテンツを表示または「リスト」します。私たちが扱っているのは、赤と緑の線です。 赤いボックスは所有者を示し、緑のボックスは上記の各ファイルとフォルダがどのグループに属しているかを示します。 この場合、所有者とグループの両方が「Perseus」と呼ばれますが、「sales」などの別のグループに遭遇した可能性があります。 残りの部分については、今のところ心配しないでください。後で説明します:D。

GNU / Linuxでの権限の種類

GNU / Linuxで権限がどのように設定されるかを学ぶ前に、システムが持つことができるさまざまなタイプのファイルをどのように区別できるかを知る必要があります。

GNU / Linuxの各ファイルは、呼び出される10文字で識別されます。 仮面。 これらの10文字のうち、最初の文字(左から右)はファイルタイプを示します。 次の9つは、左から右へ、3つのブロックで、それぞれ所有者、グループ、その他に付与される権限を示しています。 これらすべてを示すスクリーンショット:

ファイルの最初の文字は次のとおりです。

すみません 識別する
アーカイブ
d ディレクトリ
b 特殊ブロックファイル(デバイス特殊ファイル)
c 特殊文字ファイル(ttyデバイス、プリンター...)
l リンクファイルまたはリンク(ソフト/シンボリックリンク)
p チャネル特殊ファイル(パイプまたはパイプ)

次のXNUMX文字は、システムユーザーに付与されるアクセス許可です。 XNUMX文字ごとに、所有者、グループ、およびその他のユーザー権限が参照されます。

これらの権限を定義する文字は次のとおりです。

すみません 識別する
許可無く
r 読み取り許可
w 書き込み許可
x 実行許可

ファイルのアクセス許可

読み取り:基本的に、ファイルの内容を表示できます。
書き込み:ファイルの内容を変更できます。
実行:ファイルを実行可能なプログラムであるかのように実行できます。

ディレクトリ権限

読み取り:この権限を持つディレクトリに含まれるファイルとディレクトリを知ることができます。
書き込み:通常のファイルまたは新しいディレクトリのいずれかで、ディレクトリにファイルを作成できます。 ディレクトリの削除、ディレクトリ内のファイルのコピー、移動、名前の変更などを行うことができます。
実行:ディレクトリに移動して、その内容を調べたり、ファイルをコピーしたり、ディレクトリにコピーしたりできます。 読み取りと書き込みのアクセス許可もある場合は、ファイルとディレクトリに対して可能なすべての操作を実行できます。

注意: 実行権限がない場合、このアクションは拒否されるため、(「cd」コマンドを使用しても)そのディレクトリにアクセスすることはできません。 また、パスの一部としてディレクトリの使用を区切ることもできます(そのディレクトリにあるファイルのパスを参照として渡す場合のように。フォルダ "にあるファイル" X.ogg "をコピーするとします。 / home / perseo / Z”-フォルダ“ Z”に実行権限がない場合、次のようにします。

$ cp /home/perseo/Z/X.ogg /home/perseo/Y/

これにより、ファイルにアクセスするための十分な権限がないことを通知するエラーメッセージが表示されます:D)。 ディレクトリの実行権限が無効になっている場合、そのコンテンツを表示することはできますが(読み取り権限がある場合)、このディレクトリは必要なパスの一部であるため、ディレクトリに含まれるオブジェクトにアクセスすることはできません。オブジェクトの場所を解決します。

GNU / Linuxでの権限管理

これまで、GNU / Linuxでの権限の目的について説明してきましたが、以下では、権限または権限を割り当てたり削除したりする方法を説明します。

開始する前に、システムにユーザーを登録または作成するときに、ユーザーに特権を自動的に付与することに注意する必要があります。 もちろん、これらの特権は合計ではありません。つまり、ユーザーは通常、スーパーユーザーと同じ権限と権限を持ちません。 ユーザーが作成されると、システムはデフォルトでファイル管理とディレクトリ管理のユーザー特権を生成します。 明らかに、これらは管理者が変更できますが、システムは、各ユーザーが自分のディレクトリ、ファイル、および他のユーザーのディレクトリとファイルに対して実行するほとんどの操作に対して、多かれ少なかれ有効な特権を生成します。 これらは通常、次の権限です。

<°ファイルの場合: rw-r- r-
<°ディレクトリの場合: rwx rwx rwx

注意: これらは、すべてのGNU / Linuxディストリビューションに対して同じ権限ではありません。

これらの権限により、ファイルの作成、コピー、削除、新しいディレクトリの作成などが可能になります。 これを実際に見てみましょう:D:

例として「AdvancedCSS.pdf」ファイルを取り上げましょう。 次のように表示されることを確認しましょう。 わ、わ、r- …高度なCSS.pdf。 よく見てみましょう。

ティポ ユーザー グルポ 残りのユーザー(その他) ファイル名
rw- r- r- 高度なCSS.pdf

この意味は:

<°タイプ: アーカイブ
<°ユーザーは次のことができます。 ファイルの読み取り(コンテンツの表示)と書き込み(変更)。
<°ユーザーが属するグループは次のことができます。 ファイルの読み取り(のみ)。
<°他のユーザーは次のことができます。 ファイルの読み取り(のみ)。

ls -lによって取得されたリストの他のフィールドが何を参照しているのか、現時点で疑問に思っている人のために、ここに答えがあります。

ハードリンクとソフト/シンボリックリンクについて詳しく知りたい場合は、ここに説明とその diferencias.

よく友達、私たちは問題の主題の最も興味深くそして重い部分に来ます...

権限の割り当て

コマンド chmod (「変更モード」)では、マスクを変更して、ファイルまたはディレクトリに対して実行できる操作を増減できます。つまり、chmodを使用すると、各タイプのユーザーの権限を削除または削除できます。 特権の削除、配置、または割り当てを行うユーザーのタイプが指定されていない場合、操作を実行すると、すべてのユーザーに同時に影響が及ぶことになります。

覚えておくべき基本的なことは、次のレベルで権限を付与または削除することです。

パラメータ Nivel 説明
u 所有者 ファイルまたはディレクトリの所有者
g グループ ファイルが属するグループ
o 他人 所有者またはグループではない他のすべてのユーザー

権限の種類:

すみません 識別する
r 読み取り許可
w 書き込み許可
x 実行許可

 所有者に実行の許可を与えます。

$ chmod u+x komodo.sh

すべてのユーザーから実行権限を削除します。

$ chmod -x komodo.sh

他のユーザーに読み取りおよび書き込み権限を付与します。

$ chmod o+r+w komodo.sh

ファイルが属するグループに読み取り権限のみを残します。

$ chmod g+r-w-x komodo.sh

XNUMX進数形式の権限

chmodコマンドを使用する別の方法があります。これは、多くのユーザーにとって「より快適」ですが、事前に理解するのはやや複雑です。

ユーザーの各グループの値の組み合わせは20進数を形成し、「x」ビットは1、つまり21、wビットは2、つまり22、rビットは4、つまりXNUMXであり、次のようになります。

r = 4
w = 2
x = 1

各グループのビットのオンまたはオフの組み合わせにより、XNUMXつの可能な値の組み合わせ、つまり、オンのビットの合計が得られます。

すみません オクタル値 説明
0 あなたには許可がありません
x 1 実行許可のみ
--w- 2 書き込み許可のみ
-wx 3 書き込みおよび実行権限
r 4 読み取り許可のみ
r x 5 読み取りおよび実行権限
rw- 6 読み取りおよび書き込み権限
rwx 7 すべての権限の設定、読み取り、書き込み、および実行

ユーザー、グループ、およびその他のアクセス許可を組み合わせると、ファイルまたはディレクトリのアクセス許可を構成するXNUMX桁の番号を取得します。 例:

すみません 勇気 説明
rw - - - 600 所有者には読み取りおよび書き込み権限があります
rwx-バツ -x 711 所有者は読み取り、書き込み、実行、グループなどは実行のみ
rwx rx rx 755 読み取り、書き込み、実行の所有者、グループなどがファイルの読み取りと実行を行うことができます
rwx rwx rwx 777 ファイルは誰でも読み取り、書き込み、実行できます
r - - - 400 所有者だけがファイルを読み取ることができますが、ファイルを変更または実行することはできません。もちろん、グループも他の人もファイル内で何もできません。
rw-r- 640 所有者ユーザーは読み取りと書き込みができ、グループはファイルを読み取ることができ、他のユーザーは何もできません

特別な許可

考慮すべき許可にはまだ他の種類があります。 これらは、SUID(ユーザーIDの設定)許可ビット、SGID(グループIDの設定)許可ビット、およびスティッキービット(スティッキービット)です。

setuid

setuidビットは実行可能ファイルに割り当てることができ、ユーザーがそのファイルを実行するときに、プロセスが実行されたファイルの所有者のアクセス許可を取得できるようにします。 setuidビットを持つ実行可能ファイルの最も明確な例は次のとおりです。

$ su

次のキャプチャでは、ビットが「s」として割り当てられていることがわかります。

このビットをファイルに割り当てるには、次のようになります。

$ chmod u+s /bin/su

そしてそれを削除するには:

$ chmod u-s /bin/su

注意: システムの特権がエスカレートする可能性があるため、このビットは細心の注意を払って使用する必要があります。

セットギッド

setidビットを使用すると、ファイルに割り当てられたグループの特権を取得できます。また、ディレクトリにも割り当てることができます。 これは、同じグループの複数のユーザーが同じディレクトリ内のリソースを操作する必要がある場合に非常に役立ちます。

このビットを割り当てるには、次のようにします。

$ chmod g+s /carpeta_compartida

そしてそれを削除するには:

$ chmod g-s /carpeta_compartida

スティッキー

このビットは通常、すべてのユーザーがアクセスできるディレクトリに割り当てられ、すべてのユーザーが書き込み権限を持っているため、ユーザーがそのディレクトリ内の別のユーザーのファイル/ディレクトリを削除できないようにします。
次のキャプチャでは、ビットが「t」として割り当てられていることがわかります。

このビットを割り当てるには、次のようにします。

$ chmod o+t /tmp

そしてそれを削除するには:

$ chmod o-t /tmp

友よ、今あなたはあなたの情報をよりよく保護する方法を知っています、これであなたが代わりを探すのをやめることを願っています フォルダのロック o フォルダーガード GNU / Linuxでは、XDはまったく必要ありません。

追伸: この記事は、友人のいとこの隣人 XD からリクエストされたものです。あなたの質問に答えられたことを願っています... 