IIRCの場合、/proc/mounts
に表示されるマウントオプションが変更されました。少し前にacl
とuser_xattr
が表示されていましたが、これらの機能をオフにすると、noacl
とnouser_xattr
のみが表示されるようになりました。
これはどこで構成されていますか?それはファイルシステムコードのコンパイルされたデフォルトに依存しますか?ボリュームがサポートされているかどうかを確認するにはどうすればよいですか? ACL? setfacl
、getfacl
でテストするよりも良い解決策はありますか?
一部のファイルシステムタイプは、マウントオプションのないACLをサポートし、その他のファイルシステムタイプはマウントオプションのみをサポートします。 ext2/ext3/ext4の場合、acl/noaclを含むいくつかのデフォルトのマウントオプションがファイルシステムに保存されます(これはtune2fs -l /dev/BLOCK_DEVICE | grep '^Default mount options:'
で確認できます)。 don_crisstiで示されます のように、ext4の場合、オプションが表示されるかどうかはカーネルのバージョンによって異なります(カーネル2.6.39以降、ファイルシステムの内容に関係なくacl
がデフォルトになります)。 vfatやminixなどのファイルシステムはACLをサポートしていません。 tmpfs、xfs、zfsなどのファイルシステムは常にACLをサポートしています。
ファイルシステムのタイプ、バージョン、デフォルトをチェックするコマンド、およびカーネルバージョンの大きなテーブルを作成して維持する場合を除いて、ファイルシステムがマウントオプションまたはファイルシステムの特性を介してACLをサポートするかどうかを判断する方法はありません。 getfacl
を使用した純粋な観察では、少なくともunixパーミッションを常に報告するため、わかりません。ファイルシステムがACLをサポートしている場合でも、必要なACLタイプをサポートしていない可能性があります。したがって、最善の策は、setfacl
(または基盤となるC API)を呼び出して、必要なACLを設定することです。エラーステータスがEOPNOTSUPP(操作はサポートされていません)の場合、ファイルシステムが(このタイプの)ACLをサポートしていないことがわかります。