Linuxファイルシステムのパーミッション管理

1.RWX-UGO典拠コントロール

LinuxのRWX許可制御は、DAC(随意アクセス制御)とも呼ばれます。DACメカニズムは、オブジェクトの所有者がオブジェクトに対応するアクセス許可を自由に変更または付与できることを意味します。サブジェクトとオブジェクトの観点からは、サブジェクトと他のサブジェクトがオブジェクトに対してどのようなアクセス権限を持っているかを決定する権利があることを意味しますたとえば、LinuxのユーザーAは、ファイルのRWX(つまり、読み取り、書き込み、実行)権限をUGO(つまり、このユーザー、このユーザーグループ、他のユーザー)に自由に設定できます。

1)許可オブジェクト

  • オーナー:ファイルの所有者
  • グループ:ユーザー・グループ
  • その他:ファイルの所有者、またはユーザーグループ外の誰か、他の人ではありません

2)許可タイプ

rwx    rwx    rwx   
属主   属组    其他人 
例:
drwxr-xr-x.  2 root root   4096 Mar  1 05:09 ssl
  • r (読んで読んで): ドキュメントの場合、ファイルの内容を読み取る権限があります。 カタログ用、ディレクトリを参照する権限があります。

  • w (書き込み、書き込み) ドキュメントの場合、ファイルの内容を追加、変更、削除する権利があります。カタログ用、ディレクトリ内のファイルを作成、削除、変更、および移動する権限があります。

  • バツ (eXecute、execute):ドキュメントの場合、ファイルを実行する権限があります。カタログ用、ユーザーにはディレクトリに入る権限があります。((このディレクトリにcdして、ls-lを使用してファイルの詳細な属性情報を取得できます。

  • ファイルには読み取り権限しかありませんが、ファイルの所有者はこのファイルに書き込むことができますか?

[root@localhost tmp]# ls -l
total 0
-r--r--r--. 1 root root 0 Mar 13 19:16 file
[root@localhost tmp]# vim file
[root@localhost tmp]# cat file
hello world!(这是我写入的内容)
  • 結論:ファイルの所有者はファイルに書き込むことができなければなりません。
    たとえば、rootは強制的にシャドウを書き込むことができます。影の持ち主は根だから

    ここに画像の説明を挿入

2.ファイル許可判断ロジック

  • ファイルを削除する:正しいファイルディレクトリ持ってるW
    ユーザーのID、ユーザーがファイルを削除するID判別するためのアクセス許可所有者->グループ->その他
    もしディレクトリの所有者:ディレクトリ許可ビット左の3つはwの許可が必要です、成功した場合、失敗し
    なかった場合、ディレクトリの所有者でない場合は、はいグループに所属、ディレクトリ許可ビット3人はw許可が必要です、成功した場合、失敗しなかった
    場合、はいの場合他の人、ディレクトリ許可ビット内右の3桁にはw権限が必要です、ある場合は成功し、ない場合は失敗する

  • ディレクトリへの読み取り専用アクセスでは、cdがディレクトリに入ることができません、 持つ必要があります執行機関入る

  • 実行許可のみディレクトリにのみ入ることができます、ディレクトリの内容が表示されない、欲しいですディレクトリ内のファイル名とディレクトリ名を確認したい、必要読み取り許可

  • ディレクトリのwビットが設定されていません。ディレクトリ内のファイルのw権限があっても、ファイルを書き込むことはできません。

3.特権管理コマンド

  • 1).chmodコマンド

chmodコマンドは、Linuxシステムのファイルまたはディレクトリのアクセス許可を変更し、ファイルまたはディレクトリのアクセス許可を制御するために使用されます。

u オーナー
g グループに所属
O その他
A すべて
-R 再帰的変更

1.1。権限を与えられた表記

实例:
[root@localhost tmp]# ls -l
total 0
-rw-r--r--. 1 root root 0 Mar 13 05:21 file
[root@localhost tmp]# chmod u=rwx file
[root@localhost tmp]# ls -l
total 0
-rwxr--r--. 1 root root 0 Mar 13 05:21 file
[root@localhost tmp]# chmod g=rwx file
[root@localhost tmp]# chmod o=rwx file
[root@localhost tmp]# ls -l
total 0
-rwxrwxrwx. 1 root root 0 Mar 13 05:21 file
[root@localhost tmp]# chmod a=x file
[root@localhost tmp]# ls -l
total 0
---x--x--x. 1 root root 0 Mar 13 05:21 file
  • どのユーザーとしてログインすると、作成したファイルまたはディレクトリが自動的にファイルの所有者およびグループになります
    2.2。承認表記
实例:
[root@localhost tmp]# ls -l
total 0
-rw-r--r--. 1 root root 0 Mar 13 05:24 file
[root@localhost tmp]# chmod a+x file
[root@localhost tmp]# ls -l
total 0
-rwxr-xr-x. 1 root root 0 Mar 13 05:24 file
[root@localhost tmp]# chmod a-r file(可以加也可以减)
[root@localhost tmp]# ls -l
total 0
--wx--x--x. 1 root root 0 Mar 13 05:24 file
u,g,o同上方法
  • 2).chownコマンド

((chownは、指定されたファイルの所有者を指定されたユーザーまたはグループに変更します、ユーザーはユーザー名またはユーザーID、グループはグループ名またはグループIDです。システム管理者は、chownコマンドを使用して、ファイルを別のユーザーのディレクトリにコピーした後、ファイルを使用する許可をユーザーに与えることがよくあります。
コマンド機能: chownを使用してファイルの所有者とグループを変更します。ファイルの所有者またはグループを変更するときは、ユーザー名とユーザーIDの設定を使用できます。通常のユーザーは、自分のファイルを他の所有者に変更することはできません。通常、操作権限は管理者です。

使用法:chown [オプション] ... [所有者] [:[グループ]]ファイル..

-R 指定されたディレクトリとそのサブディレクトリ内のすべてのファイルを処理します(再帰的変更)
实例:
[root@localhost ~]# groupadd kobi
[root@localhost tmp]# ls -l
total 0
-rw-r--r--. 1 root root 0 Mar 13 05:21 file
[root@localhost tmp]# chown root:kobi file
[root@localhost tmp]# ll
total 0
--wx--x--x. 1 root kobi 0 Mar 13 05:24 file
[root@localhost tmp]# chown root:jerry file
[root@localhost tmp]# ll
total 0
--wx--x--x. 1 root jerry 0 Mar 13 05:24 file
[root@localhost tmp]# chown jerry file
[root@localhost tmp]# ll
total 0
--wx--x--x. 1 jerry jerry 0 Mar 13 05:24 file(jerry是用户不是组)
  • 3).chgrpコマンド

((このコマンドは、指定されたファイルが属するユーザーグループを変更します、管理者のみがファイルの所有者とグループを変更できます)
使用法:chgrp [オプション] [グループ] [ファイル]

实例:
[root@localhost tmp]# ll
total 0
--wx--x--x. 1 jerry jerry 0 Mar 13 05:24 file
[root@localhost tmp]# chgrp root file
[root@localhost tmp]# ll
total 0
--wx--x--x. 1 jerry root 0 Mar 13 05:24 file

4.プロセスのセキュリティコンテキスト

(ファイルへのプロセスアクセスのアプリケーションモデル。 ファイルへのプロセスを開始したユーザーのアクセス許可は何ですか、次にファイルへのプロセスのアクセス許可は何ですか)。

プロセスの所有者がファイルの所有者と同じであるかどうかに関係なく、同じである場合は、所有者権限が適用されます。
それ以外の場合は、プロセスの所有者とファイルの所属グループが同じかどうかを確認します。同じ場合は、所属グループの権限が適用されます。
それ以外の場合は、他の権限を使用してください。

ユーザーがファイルに対してx個のアクセス許可と実行可能アクセス許可を持っているかどうかに応じて、ファイルをプロセスに実行します

五.ACL(アクセス制御リスト)

アクセス制御リスト

ACLを使用すると、任意のファイル/ディレクトリのアクセス許可を任意のユーザーまたはユーザーグループに設定できます。

  • ユーザーの権限を設定する

  • ユーザーグループの権限を設定する

  • 子ファイルまたはサブディレクトリは、親ディレクトリのアクセス許可を継承します

  • 1).setfaclコマンド

setfaclコマンドを使用して、単一のユーザーまたはユーザーグループ、単一のファイルまたはディレクトリの読み取り/書き込み/実行権限を制御します

-m ACLを構成する
-バツ ACLパラメータを削除します
-b すべてのACL権限を削除します
-R 再帰的構成
  • 2).getfaclコマンド

-R 再帰的構成

例1:ユーザーcurryのrwx権限をファイルファイルに設定します。curryはファイルのメイングループに属していません。curryは他のものです。どうすればよいですか?
ここに画像の説明を挿入
拡張アクセス許可ACLがboboyuユーザーに追加されると、そのユーザーの下に、他のユーザーのアクセス許可の後ろに+記号があり、ファイルを書き込むことができます。ファイルは引き続きrootユーザーとルートグループ。
ここに画像の説明を挿入
このファイルに切り替えると、ユーザーkdで書き込むことができない場合、このファイル
ここに画像の説明を挿入
はユーザーカレーで書き込むことができます。
ここに画像の説明を挿入

例2.ディレクトリーに許可を追加するに
は、dパラメーターがあります。
ここに画像の説明を挿入

6.許可マスク

umaskのデフォルトのアクセス許可デフォルトでは022)
は、ファイルの場合は666、ディレクトリの場合は777です。

  • デフォルトのファイル権限:減算の結果に実行許可がある場合は、1666を追加します
    -umask644
  • ディレクトリのデフォルトの権限777-umask 755許可
    科学的計算方法:

1.デフォルトのパーミッション(ディレクトリ777、ファイル666)とumaskの値を2進数に変換します
。2。umaskを反転します。3。
デフォルトのパーミッションとumaskを反転した値に
追加します。4 結果のバイナリ値を追加します。8進数に変換します。 、つまり許可

インスタンスumask为 033

6   6   6           umask   0   3    3

110 110 110               000 011  011 # 转成2进制

                          111 100  100 # umask取反的值

110 110 110   
与             #默认权限和umask取反后的值做与运算
111 100 100    # umask取反的值

110  100  100
6    4    4     #转成8进制

7.ファイルの特別な権限

SUID SGID SBIT
元のパーミッションビットに実行パーミッションがある場合は小文字を使用し、それ以外の場合は大文字を使用します

  • 1).SUID

許可は、sSが所有者のx位置に表示されることです。

1.バイナリプログラムにのみ有効です
。2。エグゼキュータはプログラムの実行可能権限を持っている必要があります
。3。プログラムを実行するプロセスでのみ有効です。プログラム----->プロセス
4.エグゼキュータはプログラムの所有者の権限を持っている。

例:
ここに画像の説明を挿入

  • 2.)SGID

パーミッションはグループのx位置にあり、sSが表示され
ます1.バイナリプログラムに有効
2.エグゼキュータはプログラムの実行可能パーミッションを持っている必要があります
3.エグゼキュータはプログラムの所属グループのパーミッションを持っています
4.SGIDは主に作用しますディレクトリ:このディレクトリに新しいファイルを作成する場合、新しいファイルの属グループはディレクトリの属グループと同じです。

SGID 例:

ここに画像の説明を挿入

  • 3).SBIT

その他の場合、/ tmp、tTは実行許可位置
1に表示されます。ディレクトリに対してのみ有効です
。2。ユーザーとrootのみが、このディレクトリにユーザーが作成したファイルまたはディレクトリを削除する権限を持っています。

SBIT 例:
ここに画像の説明を挿入

8.添付

  • ディレクトリ内のすべてのファイルに拡張アクセス許可を追加します:Setfacl -R -mu:boboyu:rw-testdirectory /(- Rは-mの前にある必要があります。これは、ディレクトリ内のすべてのファイルを意味します

  • 個々の権​​限を削除する:setfacl -xu:curry / tmp / file

  • すべてのACL権限を削除します:setfacl -b / tmp / file

9.隠された属性

1).lsattr

Linuxでは、statコマンドを使用してファイルの関連する属性情報を表示できます。これらの属性に加えて、Linuxではファイルの非表示の属性がいくつかあります
。lsattrコマンドを使用して表示できます。

注意: ファイルの隠し属性はext2 / ext3 / ext4ファイルシステム完全で効果的な他のファイルシステムは、部分的な非表示属性のみをサポートする場合と、
非表示属性をまったくサポートしない場合があります。

A で始まるファイルを含む、すべてのファイルの属性情報を表示します。
R ディレクトリ内のすべてのサブディレクトリとファイルの属性を再帰的に表示します
d ディレクトリの下のファイルの属性ではなく、ディレクトリの属性を表示します

2).chattr

形式:chattr±= [ai]

A ファイルにデータを追加することはできますが、削除することはできません。主にサーバーログファイルのセキュリティに使用されます。rootのみが設定できます。
ファイルの削除、名前の変更、ハードリンク関係の設定、および書き込みや追加はできません(rootユーザーの場合でも)。ルートのみ設定可能

おすすめ

転載: blog.csdn.net/qq_44944641/article/details/104827406