ユーザーがファイルを開くときにinodeでファイル権限を変更する

ユーザーがファイルを開くときにinodeでファイル権限を変更する

~によるとこれしたがって、問題は、ファイルを読み取るためにファイルを開くときにファイルを開くときに権限を一度だけ確認することです。ファイルの権限を変更し、ユーザーがファイルを読み取れなくなったと言うと、ユーザーはファイルを読み続けることができます。これにより、いくつかの質問が提起されます。

  1. ファイルを開いて読んでから使用しようとするとwriteエラーが発生するため、権限を確認し続ける必要はありませんか?これは、ファイルに対して何ができるかを確認したいという意味です。 (たぶんfdを使ってできることをローカルに保存して毎回確認できますか?)

  2. 権限を更新するときに、inodeテーブル内のinodeの単一のコピーを更新しますか、またはディスクのコピーを直接更新しますか?ディスク上のコピーから権限を直接更新すると、inodeテーブルを表示する他のプロセスで更新されたバージョンが表示されないため、inodeテーブルを更新してオペレーティングシステムに変更をディスクに書き戻す方が合理的です。そこから。

ベストアンサー1

ファイルを読み取るためにファイルを開いてから書き込みを使用しようとするとエラーが発生する必要があるため、権限を確認する必要はありませんか?

いいえ、そうではありません!これは意図的なものです。open権限は後でではなく、ファイルにアクセスするときに重要です。これがAPIです。

権限を更新するときに、inodeテーブル内のinodeの単一のコピーを更新しますか、またはディスクのコピーを直接更新しますか?

これは完全にファイルシステム層の実装の詳細です。私たちは知りません。そして気にする必要もありません。私たちが知っているのは、これがさまざまなプロセスで一貫している必要があり、どこで変更しても構いません。

おすすめ記事