共有ファイルシステムのユーザー(user01と呼ばれる)は、自分だけが読み取れるようにファイルを設定しようとします。ディレクトリに入ると、ls -l は次のような出力を生成します。
ls -l
-rwx------ 1 user01 gp 16035 Dec 21 2015 Output.cpp
明らかに、このファイルに対する読み取り権限はありませんが、コピー/読み取りは可能です! (ここでは出力を公開しませんが、問題なくファイルをemacs / cat / cpとして見ることができ、内容を見ることができます)。
どうやってこれができますか?
答え1
簡単な場合、ローカルディスク上のファイルで構成されたファイルシステムの場合、ファイルシステムドライバ1はファイルシステムの形式(既存のUnixユーザーとグループの所有権とrwxrwxrwx権限、アクセス制御リスト)に従ってディスクに保存されている権限メタデータを読み取ります。など)これらの権限に基づいてアクセス権を付与するかどうかを決定します。ただし、オンディスク表現とアプリケーションの間にさらに多くのレイヤがある場合、アクセス制御に使用される権限メタデータとメタデータプロバイダによって報告された権限メタデータが一致しない可能性があります。
実行すると、ls
メタデータプロバイダを使用して権限と所有権を表示します。ファイルシステムがリモートファイルシステムの場合、ローカルファイルシステムドライバはリモートファイルシステムにメタデータクエリを送信します。リモートファイルシステムを使用してファイルにアクセスしようとすると(アプリケーションがファイルを開いてファイルを読み取る場合など)、ローカルファイルシステムドライバはリモートファイルシステムに読み取り要求を送信します。リモートファイルシステムの応答が一貫していない場合、両方の応答が一貫していない可能性があります。
リモートファイルシステムがローカルファイルシステムでサポートされていないメタデータをサポートしている場合、リモートファイルシステムの応答が一貫していない可能性があります。たとえば、リモートサーバーにローカルクライアントにないアカウントがある場合、ファイルシステムはメタデータを正確に報告できません。これは、サーバーとクライアントが異なるオペレーティングシステム(たとえば、WindowsサーバーとLinuxクライアント、またはその逆)を実行している場合に一般的です。
あなたの場合、リモートファイルシステムサーバーがuser01が要求する方法で構成されていないか、サーバーへの権限が予想どおり厳密ではないようです。たとえば、追加の項目があるとします。前方十字靭帯(特定)リモートユーザーにアクセス権を付与する項目です。リモートファイルシステムがUnix権限のみを報告でき、より豊富なACLが報告できない場合は、「グループ」または「その他」権限なしでユーザーが所有するファイルを表示できます。所有者はあなたではありませんが、できます。権限のACLエントリ。
1これは、特定の種類のファイルシステムドライバと一般的な階層です。仮想FS)がシステムによって異なりますので、ここでは意図的に区別しません。