常に存在し、「一般」ユーザーがそのファイルにアクセスできないファイルはありますか?

常に存在し、「一般」ユーザーがそのファイルにアクセスできないファイルはありますか?

単体テストにはこれが必要です。できる機能があります。統計資料引数として渡されたファイルパス。失敗したコードパスをトリガーする必要がありますlstat(コードカバレッジが90%である必要があるため)。

このテストは単一のユーザーとしてのみ実行できるため、Ubuntuに常に存在するファイルがあるかどうか疑問に思います。一般ユーザーは、そのファイルまたはそのフォルダに対する読み取り権限を持っていません。 (したがってlstatルートとして実行しないと失敗します。)

存在しないファイルには、私がトリガーした別のコードパスがあるため、ソリューションではありません。

編集:ファイルへの読み取りアクセス権が不足しているだけでは不十分です。これはlstatまだ動作します。 /rootにフォルダを作成し、その中にファイルを作成して(rootアクセス権を持つローカルコンピュータで)それをトリガーすることができました。そして、そのフォルダの権限を700に設定してください。そのため、rootとしてのみアクセスできるフォルダからファイルを検索しています。

ベストアンサー1

/proc/1/fdinfo/0最新のLinuxシステムでは、(プロセスID 1のファイル記述子1(stdout)に関する情報(init実行する必要があるルートpidネームスペースにありますroot))を使用できる必要があります。

一般ユーザーとしてリストを見つけることができます:

sudo find /etc /dev /sys /proc -type f -print0 |
  perl -l -0ne 'print unless lstat'

-type f通常のファイルに制限したくない場合は削除してください)。

/var/cache/ldconfig/aux-cacheUbuntuシステムのみを考えると、これは別の潜在的な候補です。/var/cache/ldconfigルートの読み取り+書き込み+検索は、GNU libcに付属のコマンドを介してのみ生成できるため、ほとんどのGNUシステムで機能します。ldconfig

おすすめ記事