次のファイルがあります。
---------- 1 Steve Steve 341 2017-12-21 01:51 myFile.txt
端末でユーザーを切り替えましたが、次のroot
ような動作が発生しました。
このファイルを読み書きできます。
このファイルを実行できません。
ファイルの
x
ユーザー権限(---x------
)、グループ権限(------x---
)、またはその他の権限()---------x
にビットを設定すると、ファイルを実行できます。
root
誰でも私にこれを説明したり、ユーザーがファイルやディレクトリを扱ったときに適用されるすべてのルールを説明するチュートリアルを教えてもらえますか?
答え1
ファイルとディレクトリへの特権アクセスは、実際に存在するかどうかだけでなく、機能によっても決定されますroot
。実際には、root
すべての可能な機能が一般的に存在しますが、場合によってはすべての機能が削除されたり、一部の機能が他のユーザー(そのプロセス)に提供されたりする可能性があります。
簡単に言えば、特権プロセスのアクセス制御チェックがどのように機能するかを説明しました。さまざまな機能が実際に影響する方法は次のとおりです。
基本ここでの能力はCAP_DAC_OVERRIDE
、それを所有するプロセスは、「ファイルの読み取り、書き込み、および実行権限のチェックをバイパスする」ことができます。これには、ファイルの読み取りと書き込み、ディレクトリの読み取り、書き込み、アクセスも含まれます。
実行ファイルとしてマークされていないファイルの実行は実際には機能しません。これコメントgeneric_permission
(fs/namei.c
)はチェックファイルにアクセスする前の意味です。
読み取り/書き込みDACは常に上書きできます。実行可能なDACは、1つ以上の実行ビットがセットされると上書き可能である。
x
ファイルを実行しようとすると、コードは少なくとも1ビットが設定されていることを確認します。私はこれが誤ってランダムなデータファイルを実行してエラーが発生したり、奇妙な結果を得るのを防ぐための便利な機能にすぎないと思います。
とにかく権限を無視できる場合は、実行可能なコピーを作成して実行できます。(理論的には、プロセスのsetuidファイルはファイル権限(CAP_DAC_OVERRIDE
)をオーバーライドできますが、他には関係ありません(CAP_FSETID
// CAP_FOWNER
)CAP_SETUID
。CAP_DAC_OVERRIDE
/etc/shadow
CAP_DAC_READ_SEARCH
また、すべてのファイルを読み取り、すべてのディレクトリにアクセスできますが、実行または書き込みはできないようにする機能もあります。これCAP_FOWNER
により、プロセスは通常、権限のビットやファイルグループの変更など、ファイル所有者にのみスケジュールされた操作を実行できます。
オーバーライドディレクトリのスティッキー部分は以下でのみ言及されるので、これを無視するだけでは十分でCAP_FOWNER
はないようです。CAP_DAC_OVERRIDE
(書き込み権限を付与しますが、通常、固定ディレクトリではその権限を持って+t
制限します。)
(ここでは特別なデバイスが「ファイル」と見なされると思います。少なくともディレクトリのタイプチェックだけがあり、generic_permission()
それ以上はチェックしません。)
もちろん、関数でさえファイルの修正に役立たない場合があります。
/proc
一部のファイルは/sys
実際のファイルではないため含まれます。- ルートアクセスを制限できるSELinuxおよびその他のセキュリティモジュール
chattr
ext2/ext3/ext4 の変更不可能で追加+i
専用+a
フラグであるこれら 2 つのフラグはルートも停止し、ファイル名の変更などを防止します。root_squash
ネットワークファイルシステム、サーバーは、NFSからルートを誰にもマッピングしないなど、独自のアクセス制御を持つことができます。- ヒューズ、何でもできると思います。
- 読み取り専用マウント
- 読み取り専用デバイス
答え2
これはあなたが気付いた基本的な権限とまったく同じです。
読み書き:
デフォルトでは、rootユーザーはシステム上のすべてのファイルにアクセスできます。次のようにプロパティを変更して、このアクセス権を削除できます。シャテル。次にそれを機能に関連付けます。実装する:
1 つ以上の実行ビットが設定されていない場合、root ユーザーには実行権限がありません。
答え3
myFile.txt
を通じて獲得されますchmod 000 myFile.txt
。
0 no permission
1 execute
2 write
3 execute + write
4 read
5 read + execute
6 read + write
7 all
---------
ユーザー、グループ、およびその他のユーザーに権限がないことを示します。
rootユーザーは無制限このファイルを変更する機能。読み書き可能です。このファイルを実行するには、rootユーザーがファイルを実行可能にする必要があります。 (chmod 100、010、または 001)
答え4
これを理論的に説明します。
rootユーザーはオペレーティングシステムの王です。
ファイルやディレクトリにXなどの実行権限があり、他の権限はなく、Steveユーザーなどのユーザーがファイルを所有している場合は、ルートもファイルを実行できます。
ルートはLinux上で何でもできますし、ルートに制限がないことを常に覚えておいてください。