What are all the illegal characters in the XFS filesystem?

筅森魡賤 提交于 2021-01-29 03:27:56

问题


Could someone provide (or point me to a list) of all the illegal characters in the XFS filesystem? I'm writing an app that needs to sanitize filenames.

EDIT:

Okay, so POSIX filesystems should allow all characters except the NUL character, forward slash, and the '.' and '..' filenames are reserved. All other exceptions are application-level. Thanks!


回答1:


POSIX filesystems (including XFS) allow every character in file names, with the exception of NUL (0x00) and forward-slash (/; 0x2f).

  • NUL marks the end of a C-string; so it is not allowed in file names.
  • / is the directory separator, so it is not allowed.
  • File names starting with a dot (.; 0x2e) are considered hidden files. This is a userland, not kernel or filesystem convention.
  • There may be conventions you're following — for example, UTF-8 file names — in which case, there are many, many more restrictions including which normalization form to use.

Now, you probably want to disallow other things too; file name with all kinds of weird characters are no fun to deal with. I strongly suggest the whitelist approach.

Also, when handling file names, beware of the .. entry in every directory. You don't want to traverse it and allow an arbitrary path.

Source: Single Unix Spec v. 3, §3.169, "the characters composing the name may be selected from the set of all character values excluding the slash character and the null byte."




回答2:


According to Wikipedia, any character except NUL is legal in an XFS filesystem file name. Of course, POSIX typically doesn't allow the forward slash '/' in a filename. Other than this, anything should be good, including international characters.



来源:https://stackoverflow.com/questions/651677/what-are-all-the-illegal-characters-in-the-xfs-filesystem

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!