GNU/Linux >> Linux の 問題 >  >> Linux

inode でファイルを操作できないのはなぜですか?

セキュリティ上の理由 -- ファイルにアクセスするには、ファイルにアクセスするために必要なルートからすべてのディレクトリを検索するためのパーミッションと同様に、ファイルに対するパーミッションが必要です。 inode でファイルにアクセスできる場合は、ファイルを含むディレクトリのチェックをバイパスできます。

これにより、一連のユーザー (または一連のグループ) がアクセスできるファイルを作成でき、他のユーザーはアクセスできなくなります。ユーザーのみがアクセスできるディレクトリ (ユーザーごとに 1 つのディレクトリ) を作成し、その後ハード-ファイルをこれらすべてのディレクトリにリンクします。ファイル自体には誰でもアクセスできますが、実際には、リンク先のディレクトリの 1 つに対する検索権限を持つユーザーのみがアクセスできます。


一部のオペレーティング システムでは 動作 その施設を持っています。たとえば、OS X では Carbon File Manager をサポートするために必要であり、Linux では debugfs を使用できます。 .もちろん、コマンドラインから find -inum を介して任意の UNIX で実行できます。 ですが、inode でファイルにアクセスできない本当の理由は、それがあまり役に立たないからです。 する 読み取りまたは実行できないフォルダーに読み取り可能なファイルがある場合、inode を開くとそれを検出できるため、一種のファイル アクセス許可を回避します。

あまり役に立たない理由は、*stat() 経由で inode 番号を見つける必要があるからです。 その時点ですでに 持っている ファイル名 (または開いている fd)...または inum を推測する必要があります。


あなたのコメントに応えて:「ファイルを渡す」には、 SCM_RIGHTS によって AF_LOCAL ソケットを渡す fd を使用できます (man 7 unix を参照) ).


Linux
  1. Rmが読み取り専用ファイルを削除できるのはなぜですか?

  2. ファイル名を別のディレクトリに読み取ってファイルを移動しますか?

  3. Linux で 2 GB を超えるファイルを作成できないのはなぜですか?

  1. Linuxでファイルとディレクトリを隠す簡単な方法

  2. 特定のファイルまたはディレクトリを除いて、ファイルをtar(圧縮)する方法

  3. 1つのファイルを除くすべてのファイル/ディレクトリを削除しますか?

  1. 上書きされたファイルは回復できますか?

  2. ディレクトリを比較しますが、ファイルの内容は比較しませんか?

  3. .apeファイルを分割できないのはなぜですか?