linux-ファイルのパーミッションと所有権(SUID、SIGD、SBITを含む) - 隠された属性 - SIGDディレクトリ内のファイルのアクセス制御リストACL - (chownコマンド - chmodコマンド)

以下からのこの記事で、「そのような学校の点でLinuxの、」劉は抜粋トレントの先生を終え、後半に自分のブログの容易なアクセスを書く
本のは素晴らしいですが、簡潔な言語は、理解しやすい、強くお勧めします、あなたは学ぶために、接続を指すことができます〜

ファイルのアクセス権と所有権

すべてがファイルですが、Linuxシステム内の各、が、ファイルの種類異なるので、次のような共通の文字のようにLinuxシステムでは、区別するために別の文字を使用します。

フィギュアのファイル:

これは、ディスクサイズ、更新時刻、およびファイル名やその他の情報の量を、ファイルの種類、アクセス権限、所有者(所有者)を含むグループ(属グループ)に属しています。

分析することで、他の人以外の通常のファイルとしてファイルの種類、読み取り権限の所有者、書き込み(rw-)、(r--の)を読み取るためにグループ権限を所有しているが、読み取り専用の権限( r--の)、ディスク使用量のファイルサイズが34298バイトで、朝の4月2日の最後の修正時刻ファイルinstall.logにの名前として23ポイント、です。

ファイルの種類と対応する代表文字

  • - :通常のファイル
  • D:ディレクトリファイル
  • L:リンクファイル
  • B:ブロックデバイスファイル
  • C:キャラクタデバイスファイル
  • P:パイプファイル

ファイルのアクセス権

Linuxシステムでは、各ファイルは、所有者とすべてのグループに属しており、ファイルの所有者、グループを指定すると、すべてのファイルに他の人がきていた(r)、書き込み(w)は、実行ファイル読み込み(X)および他の特権。

一般的なファイルのパーミッション

  • 読み取り:読み取り可能なファイルの実際の内容を表しています
  • 書き込み:編集できることを示し、追加、変更、実際のコンテンツのファイルの削除
  • 実行可能ファイル:それはスクリプトを実行することを意味

ディレクトリのパーミッション

  • 読む:ディレクトリ内のファイルのリストを読み込むことができます
  • 書き込み:ディレクトリ、削除、名前の変更ファイルに追加することができます
  • 実行可能ファイル:ディレクトリを入力することができます

文字やファイルのパーミッションの数値表現

読み取りファイル、書き込みおよび実行権限をは、それぞれ、rwxのと略記することができ、グループを所有している、ファイルの所有者との間に関連を数字4,2,1を表現しないために使用することができ、他のユーザーの権利

代表権を簡素化することを目的と計算から文字表現(RWX)の権限に基づいて、ファイルのアクセス権表現のデジタル方法。(このようなファイル承認へのchmodコマンドと同様にchmod 760 test

例えば

  • ファイルの許可場合7は、(4 + 2 + 1)実行可能、書き込み可能、読み取り可能を表します
  • 許可が6であれば読み取り可能、書き込み可能(4 + 2)を表します。

  • そこのファイルがグループに属していること、ファイル、その所有者が読み込み可能、​​書き込み可能、​​実行権限は、権限を読み、書き込み可能なを持っているであり、他は唯一の権限をお読みください。
    • したがって、このファイルへのアクセスがrwxrw-r--のある、プラス小学校数学7 + 6 + 4 = 17の結果を計算するために一緒にこれらの3つの数字を停止しなければならない(764でデジタル方法を表します権威デジタル引き算ではなく、Linuxシステムの表現は、3の間には交換関係はありません。)

小演習

  • デジタル表現を対応する方法764642153731文字表記を算出します
  • rwxrw-R - 、RW - W - WX、RW-R - 変換r--のデジタル表現に

特殊なファイルのパーミッション

生産環境の中で、単独の設定はrwxファイルのパーミッションは、セキュリティと柔軟性のための私たちのニーズを満たすことができないので、あるでしょう、SGIDとSUID SBIT特別許可ビット。

これは、関数を達成することはできません一般的な権威を補償するための一般的な権威と同時に使用することができ、ファイルのパーミッション機能セットの特別な種類です。

SOUTH

SUIDは、あなたがパフォーマーバイナリプログラムすることができ、バイナリ権限設定の特別な種類である所有者の一時的な所有権を(バイナリプログラムが唯一の有効な実行権限を持っています)。

シナリオ

だから、普通のユーザーは、一時shadowファイルを操作する権限を持っていること:

SUIDが特別許可ビットと連結された場合のpasswdコマンドを使用している場合しかし、その普通のユーザーがプログラムの所有者の一時的なアイデンティティを得ることができ、パスワード情報はshadowファイルに書き込まれる変更。

あなたが破損している訓練することができますので、これは非常に私たちが手持ち帝国大臣の中で最も強力な武器に衣装ドラマで見たもののように、彼は、皇帝の権威に代わって、最も強力な武器を保持しているが、それは彼が永久に皇帝になったという意味ではありません。だから、これは単なる条件、一時的な特別な権限の認証方式です。

ビューpasswdの施設によって所有者にrwxの許可は、xは、ファイルがSUID権限を与えられているのに手段を変えるところRWSは、コマンドになりました。元の権限がrw-ある場合は、別の読者は、その後、不思議でしょうか?あなたは、元のx許可ビットのパーミッションを実行しない場合、それは資本S.なるための特別な許可が与えられます

[root@linuxprobe ~]# ls -l /etc/shadow
----------. 1 root root 1004 Jan 3 06:23 /etc/shadow
[root@linuxprobe ~]# ls -l /bin/passwd
-rwsr-xr-x. 1 root root 27832 Jan 29 2017 /bin/passwd

SIGD

  • グループ(バイナリプログラムは、権限のセットを実行してい)された幹部は、一時的な権限を持ってみましょう
  • ディレクトリ内に作成されたファイルは自動的にディレクトリユーザグループを(だけセットディレクトリにすることができます)を継承します

最初の機能は、ユーザプログラム実行は、もはやファイルの所有者への一時的な許可を得るが、ファイルが属してアクセスを得ることであることを除いて、参照SGID SUIDとデザインです。

例えば、初期のLinuxシステムでは、/ dev / kmemのは、アクセスされるカーネルデータ格納のためのキャラクタデバイスファイルで、権限:

cr--r----- 1 root system 2, 1 Feb 11 2017 kmem

システム管理者またはルートグループのメンバーに属していることに加えて、すべてのユーザーがファイルの読み込みにアクセスすることはできません。

通常、我々は、ステータス情報のプロセスに入ることができるようにするために、システムのプロセスの状態を確認する必要があるため、SGIDはpsコマンドファイルのプロセスのステータスを表示するために使用されるシステム上で特別な権限をビット増やすことができます。

ビュープロパティ情報psコマンドファイル:

-r-xr-sr-x 1 bin system 59346 Feb 11 2017 ps

ユーザーがコマンドを実行するとこのように、psコマンドがSGID特別な許可ビットが増加しているので、それは、デバイスが正常にファイルを読むことができるように、一時的なユーザーグループの権限システムを取得します。

前述したように、各ファイルは、その所有者とグループの所有権を有している、またはファイル転送を作成する場合、ファイルは自動的に(すなわちユーザがファイルの所有者である)ユーザが行うこの操作に割り当てられます。

あなたは今、部門内のすべての職員は、ディレクトリの内容を読み取ることができますのでこと、部門で共有ディレクトリを設定する必要がある場合は後に、あなたはSGID設定されたディレクトリに特別な権限をビット部門共有ディレクトリを作成することができます。

このように、任意の文書は、グループがディレクトリの作成ではなく、あなたの基本的なユーザー・グループに帰属所属する部署内の任意の担当者になります。

この場合、我々はSGIDが第二の機能で使用し、自動的にディレクトリに作成されたファイルは、ディレクトリこれにユーザー・グループを継承します(ディレクトリはのみ設定できます)。

[root@linuxprobe ~]# cd /tmp
[root@linuxprobe tmp]# mkdir testdir
[root@linuxprobe tmp]# ls -ald testdir/
drwxr-xr-x. 2 root root 6 Feb 11 11:50 testdir/
[root@linuxprobe tmp]# chmod -Rf 777 testdir/
[root@linuxprobe tmp]# chmod -Rf g+s testdir/
[root@linuxprobe tmp]# ls -ald testdir/
drwxrwsrwx. 2 root root 6 Feb 11 11:50 testdir/

ディレクトリのための特別な権限をビット良い777ディレクトリを(平均的なユーザーは、ファイルに書き込むことができるようにするために)設定し、SGIDを設定するコマンドを使用した後は、通常のユーザーに切り替え、その後、そのディレクトリにファイルを作成しようとすることができます新しく作成されたファイルは、ファイルがグループ名に属する新しく作成したディレクトリを継承するかどうかを参照してください。

[root@linuxprobe tmp]# su - linuxprobe
Last login: Wed Feb 11 11:49:16 CST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ cd /tmp/testdir/
[linuxprobe@linuxprobe testdir]$ echo "linuxprobe.com" > test
[linuxprobe@linuxprobe testdir]$ ls -al test
-rw-rw-r--. 1 linuxprobe root 15 Feb 11 11:50 test

chmodコマンド

chmodコマンドは、設定するために使用することができ、非常に便利なコマンドであるファイルやディレクトリのパーミッションを

フォーマット: chmod [参数] 权限 文件或目录名称

場合は許可がファイルを作成するように配置されて読み書きをその所有者、読み書き可能な所属グループを実行可能ファイル、他の人がどんな権利を持っていない、対応する文字が----メソッド、メソッド対応する番号rwxrw表されます760で表されます。

以前と実践を学ぶ基づいて、現在の実践によって、そして今、私たちはバーのファイルのパーミッションを設定するためにデジタル方式を使用しての利便性を感じることができます。

chownコマンド

chownコマンドを設定するために使用することができ、ファイルやディレクトリの所有者とグループを

フォーマット:chown [参数] 所有者:所属组 文件或目录名称

chmodとchownコマンドで最も一般的なコマンドは、ファイルの属性やアクセス権を変更するために使用され、彼らはまた、特別な共通性を表現するためのディレクトリのための資本を操作するとき、-Rパラメータを追加する必要がある必要があり、再帰的操作を、ある、ディレクトリ内のすべてのファイルへ全体的な動作。

[root@linuxprobe ~]# ls -l test
-rwxrw----. 1 linuxprobe root 15 Feb 11 11:50 test
[root@linuxprobe ~]# chown root:bin test
[root@linuxprobe ~]# ls -l test
-rwxrw----. 1 root bin 15 Feb 11 11:50 test

SBITは、単にファイルの所有者がファイルを削除することができましょう

彼は、ユーザーが唯一の自分のファイルではなく、削除、他のユーザーのファイルを削除できるようにすることができます

ジョブを削除するために今、多くの大学教員は、サーバー上の特定の共有ディレクトリにジョブをアップロードする学生を必要とするが、いくつかの「工作員」は、他の学生のように常に存在している、そして我々はSBIT(スティッキービット)特別な許可を設定する必要がありますビット(スティッキービット特別許可ビットと呼ばれることができます)。

SBIT特別許可ビットは、ユーザーが唯一の自分のファイルではなく、削除、他のユーザーのファイルを削除することができていることを確認することができます。

言い換えれば、ディレクトリがSBITスティッキービットアクセス権が設定されている場合、そのディレクトリ内のファイルは、その所有者の削除を実行することができます。

最初は非上級技術者がビット文字通りなる「スティッキービットを」スティッキーなるか分からない、教師トレント劉さんは覚えていないだけでその、それは「保護ビット」と呼ばれることが示唆されたが、また、人々はすぐにその役割を理解しています。

共有ファイルとして/ tmpディレクトリにRHEL 7システムは、デフォルトでは、ディレクトリの所有者でない限り、セットSBIT特別許可ビットとなっている、または内部にこれらのファイルを削除することはできません。

先にディレクトリが設定SBIT特別許可ビット、xは、ファイルのパーミッション部他人を交換する権限を実行したりT T、そうでなければX実行権限を書き込まなければならないとき、SUID SGID許可と異なる表示方法を話さT、Xは、許可は、もともとTと書かれていないでしょう実行します

[root@linuxprobe tmp]# su - linuxprobe
Last login: Wed Feb 11 12:41:20 CST 2017 on pts/0
[linuxprobe@linuxprobe tmp]$ ls -ald /tmp
drwxrwxrwt. 17 root root 4096 Feb 11 13:03 /tmp
[linuxprobe@linuxprobe ~]$ cd /tmp
[linuxprobe@linuxprobe tmp]$ ls -ald
drwxrwxrwt. 17 root root 4096 Feb 11 13:03 .
[linuxprobe@linuxprobe tmp]$ echo "Welcome to linuxprobe.com" > test
[linuxprobe@linuxprobe tmp]$ chmod 777 test
[linuxprobe@linuxprobe tmp]$ ls -al test 
-rwxrwxrwx. 1 linuxprobe linuxprobe 10 Feb 11 12:59 test

実際には、ファイルには、独自の権限に依存するが、かどうか、彼らは、ディレクトリへの書き込み権限がありません削除することができます

上記のコマンドは、最大テストファイル777(のrwxrwxrwx)に与えられているので、多くの読者は、信頼していないことを避けるために。

私たちは、他の通常のユーザーに切り替え、その後、わかります、他の人が作成したファイルを削除しようとします

でも、書き込みを読んで、そして開くための実行権限を、しかしSBIT特別許可ビットのために、まだファイルを削除することはできません。

[root@linuxprobe tmp]# su - blackshield
Last login: Wed Feb 11 12:41:29 CST 2017 on pts/1
[blackshield@linuxprobe ~]$ cd /tmp
[blackshield@linuxprobe tmp]$ rm -f test
rm: cannot remove ‘test’: Operation not permitted

ディレクトリのパーミッションビットを設定するにはSBIT

SBITは、他のディレクトリに特別な許可ビットを設定したい場合はもちろん、それにはchmodコマンドを使用します。スティッキービットセットSBIT権限を表すパラメータに対応O + T:

[blackshield@linuxprobe tmp]$ exit
Logout
[root@linuxprobe tmp]# cd ~
[root@linuxprobe ~]# mkdir linux
[root@linuxprobe ~]# chmod -R o+t linux/
[root@linuxprobe ~]# ls -ld linux/
drwxr-xr-t. 2 root root 6 Feb 11 19:34 linux/

隠しファイル属性

Linuxのシステムファイルの一般的な権利に加えて、特別な権限、隠された権威がある、すなわち隠された権限を持っている、ユーザーが直接、デフォルトでは見つけることができません。

ユーザーは、本番環境で発生しているすぎる明らかに十分な権限が、ファイルの削除はできませんケースをかのみログファイルに追加コンテンツが、コンテンツを変更したり、削除することはできません、防止のハッカーはある程度、システムログの改ざんましたプロットは、そう、この「奇妙な」文書はまた、Linuxシステムのセキュリティを保護します。

隠し属性の管理ファイル chattr

chattrはコマンドは、ファイルのパーミッション設定を隠すために使用されます

フォーマット:chattr [参数] 文件

あなたは隠された機能、追加するファイルを移動したい場合は、コマンドの後ろにファイル、アペンド「+パラメータ」を非表示にする機能を追加したい場合は、「 - 。パラメータ」

オプションのパラメータコマンドchattrは

パラメータ 効果
ファイルを変更することはできません。このパラメータがディレクトリに設定されている場合は、ファイルのみの息子の内容は、ファイルを作成または削除することはできません変更することができます
A のみを許可補足(追加の)内容が上書き/がコンテンツを削除することはできません(追加のみ)
S ファイルの変更の内容は、すぐにハードディスク(シンク)に同期した後、
S 完全にハードディスクから削除し、回復不能な(ゼロ元のファイルのハードディスク領域で充填)
A ファイルまたはディレクトリ(atimeが)の最終アクセス時刻を変更しません
B もはやファイルまたはディレクトリのアクセス時間を変更します
D 圧縮されたファイルのエラーをチェック
D バックアップするために、dumpコマンドを使用している場合、このファイル/ディレクトリを無視します
C デフォルトでは、ファイルやディレクトリを圧縮します
まだ将来の回復のためにファイルを削除した後、ハードディスクにそのデータを保持する場合
トン マージファイルシステムが尾をサポートしてみよう(末尾融合)
バツ あなたは、直接圧縮されたファイルの内容にアクセスすることができます

このファイルを削除しようとし、その後、通常のファイルを作成し、カバーは(+パラメータ)に除去することができない権限を設定します。

[root@linuxprobe ~]# echo "for Test" > linuxprobe
[root@linuxprobe ~]# chattr +a linuxprobe
[root@linuxprobe ~]# rm linuxprobe
rm: remove regular file ‘linuxprobe’? y
rm: cannot remove ‘linuxprobe’: Operation not permitted

隠しファイルを表示するためのパーミッション lsattr

隠しファイルを表示するための許可たlsattrコマンド

フォーマット:lsattr [参数] 文件

Linuxシステムでは、隠されたファイルのパーミッションは、あなたが手がかりが表示されないように、通常のlsコマンドを使用し、ビューにlsattrコマンドを使用する必要があります。

[root@linuxprobe ~]# ls -al linuxprobe
-rw-r--r--. 1 root root 9 Feb 12 11:42 linuxprobe

lsattrコマンドたら、隠しファイル自体裏切るすぐに許可を与えていますこの時点で、あなたは削除するchattrコマンドをを使用して非表示の権限(アルファ)の種類に応じて表示することができます。

[root@linuxprobe ~]# lsattr linuxprobe
-----a---------- linuxprobe
[root@linuxprobe ~]# chattr -a linuxprobe
[root@linuxprobe ~]# lsattr linuxprobe 
---------------- linuxprobe
[root@linuxprobe ~]# rm linuxprobe 
rm: remove regular file ‘linuxprobe’? y

ファイルアクセス制御リスト(ユーザー、ユーザーグループの)ACLsetfacl

ファイルのアクセス制御リスト - ポピュラーサイエンス

権利者の特定のタイプに設定されている - 私たちは、一般的な能力の前述の説明は、特別な権限は、実際には、権利は、共通の隠蔽があることを発見した場合、私は知りません。

あなたが別のアクセス制御をしたい場合は、指定したユーザーまたはグループのために使用する必要があるファイル制御リスト(ACL)にアクセスします

人気の用語、ファイルやディレクトリのACL設定は、実際にユーザーまたはユーザーグループで指定したファイルまたはディレクトリの操作する権限の共通セットです。

注意点

  • ディレクトリ ACLを設定し、ディレクトリ内のファイルは、そのACLを継承します
  • 以下のためにファイルが ACLを設定し、ファイルがディレクトリでのACL継承しなくなりました。

、制御にACLファイルパーミッションに強い影響を確認するために、より直感的になり、通常のユーザーに対してのスイッチを聞かせて、その後、ルート管理者のホームディレクトリを入力しようとするためです。ACLは、平均的なユーザーのためのルート管理者のホームディレクトリに設定されていない前に、次のように、その実行結果は以下のとおりです。

[root@linuxprobe ~]# su - linuxprobe
Last login: Sat Mar 21 16:31:19 CST 2017 on pts/0
[linuxprobe@linuxprobe ~]$ cd /root
-bash: cd: /root: Permission denied
[linuxprobe@linuxprobe root]$ exit

制御ファイルのACL setfacl

ファイルを管理するためのACLのルールは、setfaclコマンド

フォーマット:setfacl [参数] 文件名称

ACLファイルのアクセス権制御を実行/他の人が読み取り/書き込み、所有グループ、所有者以外に特別な権限を与えている、は、setfaclコマンドを使用しますが読み取ることができる/書き込みを単一のユーザーまたはグループのユーザーの、単一のファイルまたはディレクトリのために/実行権限を制御します。

その中でも、カタログファイルのために使用する必要があり、-R再帰的なパラメータを、通常のファイルのための使用-mパラメータを、あなたは、ファイルのACLを削除したい場合は、あなたが使用することができ-bパラメータを。/ルートディレクトリにレッツ・セットのユーザー権限:

[root@linuxprobe ~]# setfacl -Rm u:linuxprobe:rwx /root
[root@linuxprobe ~]# su - linuxprobe
Last login: Sat Mar 21 15:45:03 CST 2017 on pts/1
[linuxprobe@linuxprobe ~]$ cd /root
[linuxprobe@linuxprobe root]$ ls
anaconda-ks.cfg Downloads Pictures Public
[linuxprobe@linuxprobe root]$ cat anaconda-ks.cfg
[linuxprobe@linuxprobe root]$ exit

ファイルの表示ACL getfacl

表示ファイルのgetfaclのコマンドACL設定

フォーマット:getfacl 文件名称

getfaclのは、ルート管理者のホームディレクトリにあるすべてのACL情報セットを表示するには、次のコマンドを使用します。

[root@linuxprobe ~]# getfacl /root
getfacl: Removing leading '/' from absolute path names
# file: root
# owner: root
# group: root
user::r-x
user:linuxprobe:rwx
group::r-x
mask::rwx
other::---

おすすめ

転載: www.cnblogs.com/suwanbin/p/12057708.html