ファイル名に許可される文字をどのように制限できますか?

ファイル名に許可される文字をどのように制限できますか?

フォローアップUnix/Linux/POSIX ファイル名の変更: 制御文字 (改行文字など)、先行ダッシュ、その他の問題*、方法がありますか?禁止する一般的なLinuxカーネル/ファイルシステムで問題のある名前のファイルを作成しますか?これは低レベルで適用される必要があるため、rootアクセスによる設定変更以外の変更はこれらのファイル名を生成できません。たとえば、ファイルシステムドライバに、制御文字、改行、その他の文字(名前の先頭のハイフンなど)なしで有効なUTF-8シーケンスのみを許可するように指示するマウントオプションが理想的です。

ユースケースは主にセキュリティ強化ですが、ひどいハッキングをせずにコードでファイル名を処理できることです(詳細は上記の記事を参照)。

*:これまでの回答とコメントで提起されたほとんどの事項がこの記事で解決されました。公開する前に確認してください。

ベストアンサー1

ファイル名を制限するモジュールの提案が1つ以上あります。これは、「Fiking Unix / Linux / POSIX Filenames」の著者であるDavid A. Wheelerが開発したLinuxセキュリティモジュール(LSM)です。

これに関するLWNの記事は次のとおりです。 Safename: 「危険な」ファイル名を制限します。。記事にはパッチを含む電子メールリンクがあります。これは2016年5月のことで、まだ直接試したことがありません。牽引力があるのか​​、最新のカーネルに移植可能なのかはわかりません。しかし、実際のコードでは提案が行われました。

おすすめ記事