ディレクトリの実行権限と対応するinode構造の関係

ディレクトリの実行権限と対応するinode構造の関係

私の質問は、ディレクトリの読み取りビットと実行ビットの関係に関連しています。まず、私が現在知っている知識をもとに仮説を提示し、質問します。私の質問は太字で表示されています。これらの仮定の文脈で。間違った仮定があれば修正してください。

  1. ファイルとディレクトリは両方ともinodeを使用して保存されます。
  2. ファイルとディレクトリの両方に権限があります(rwxビットにのみ集中し、Sticky、setuid、setguid(関連しない限り)は忘れます)。
  3. ディレクトリの inode データブロックの内容には、ファイル名と inode 番号のマッピングが格納されます。
  4. ディレクトリに対する読み取り権限により、ユーザーはディレクトリ内のすべてのファイルの名前のリストを取得できます。
  5. ユーザーはその内容にアクセスするためにファイルのinode番号を知る必要があります。更新:ここにある元の声明の意味は、私が伝えたいことを反映していません。私がもっと意味するものは次のとおりです。ユーザーはファイルのinode番号を知る必要はありませんが、ファイルの内容を取得するには、指定されたファイル名のinode番号を取得する権限が必要です。
  6. ディレクトリに対する実行権限を使用すると、ユーザーはディレクトリを「使用」できます。これは、特にディレクトリのinode番号を取得するという意味で理解されます(これについて私が理解したことを確認したい)。これにより、ユーザーはディレクトリに対してcdなどの操作を実行できます。これは実行権限を必要とするユーザーの典型的な例です。

ユーザーがディレクトリリストにアクセスするには、ディレクトリの「内容」(実際にはディレクトリのinodeデータブロックの内容)を取得できる必要があり、ユーザーはディレクトリのinode番号を知る必要があるとします。コンテンツにアクセスし、ユーザーがディレクトリに対する実行権限なしでディレクトリのリストを取得できるのはなぜですか?ディレクトリDの内容のリストを取得するには、次のものが必要です。一時的にinode データブロックの内容を読み取るには、対応する inode 番号を探します。また、読み取り権限は、そのディレクトリに対する実行権限を意味する必要があるようです。

ベストアンサー1

上記の6番目の項目を無効にするいくつかの誤解があります。ディレクトリに含まれるファイルのinode番号を取得するには、ディレクトリの実行(「検索」とも呼ばれる)ビットが必要ですが、独自の inode 番号ではありません。

引用:

ディレクトリを読み込んで実行する方法は次のとおりです。ディレクトリは、各ファイルに関する 2 つの情報、つまりファイル名と inode 番号を含むデータファイルです。ディレクトリのファイル名にアクセスするには読み取り権限が必要です。ファイル名が既にわかっている場合は、ディレクトリ内のファイルのinodeにアクセスするには実行(検索とも呼ばれる)権限が必要です。

引用:

  1. https://askubuntu.com/questions/83788/accessing-files-in-a-directory-without-x-permission
  2. https://wpollock.com/AUnix1/FilePermissions.htm
  3. https://superuser.com/questions/442581/why-do-you-need-execute-permission-on-the-parent-directory-to-rename-a-file

おすすめ記事