GFARM2FS(1)

πŸ’– GFARM2FS(1) πŸ’–

okay bestie, so gfarm2fs is a thing in the manual, and it's literally the cutest little mount tool for the Gfarm file system. pull up a chair, grab a boba, we're doing this πŸ§‹βœ¨


🌸 NAME 🌸

gfarm2fs β€” mount a Gfarm file system


✨ SYNOPSIS ✨

gfarm2fs mount_point [ options ]

πŸ¦‹ DESCRIPTION πŸ¦‹

gfarm2fs mounts the Gfarm file system at the mount point you point it at. that's it. that's the whole vibe. you give it a spot, it puts a whole file system there. iconic behavior honestly πŸ’…


πŸŽ€ GENERAL OPTIONS πŸŽ€

  • -h β€” shows you a whole list of command options. like a menu but for flags.
  • -V β€” displays the version. gotta know which one you're running, no cap.
  • -o opt,[opt...] β€” lets you specify mount options. you can stack them with commas, one after another, go off.

πŸ‘‘ GFARM2FS OPTIONS πŸ‘‘

  • -o syslog=facility β€” pick which syslog facility to use. the default is local0.
  • -o loglevel=priority β€” pick the syslog priority level. the default is notice.
  • -E T β€” sets the timeout of the attribute cache. the default is 1.0 seconds.
  • -o gfs_stat_timeout=T β€” literally the same thing as the -E option. same girl, different name πŸ’œ
  • -o ncopy=N β€” how many copies get automatically created when a file is created. the default is 0, which means the automatic replication mechanism is off. so like, no copies, no drama.
  • -o copy_limit=N β€” the max number of copy creations happening at the same time. this only matters if automatic replication is turned on. the default is 0.
  • -o disable_genuine_nlink β€” uses a faked st_nlink (that's 32000) of struct stat for directories. fake it till you make it, fr fr.
  • -o directory_quota_rename_error_exdev β€” turns on client-side directory moves between directories that belong to different directory quota.
⚠️ CAUTION bestie: a client-side move like this will be really slow, because every single file under the directory gets copied from the source filesystem nodes to the client, and then copied back to the destination filesystem nodes. and because this operation is essentially the same as copy-and-remove, file owner settings may not be preserved, and it's possible some directories just cannot be correctly moved due to permission problems. so like… heads up 😭
  • -o auto_uid_min=N β€” the minimum UID that gets automatically assigned.
  • -o auto_uid_max=N β€” the maximum UID that gets automatically assigned.
  • -o auto_gid_min=N β€” the minimum GID that gets automatically assigned.
  • -o auto_gid_max=N β€” the maximum GID that gets automatically assigned.

🌈 FUSE OPTIONS 🌈

go check gfarm2fs -h. the options are all in there, iykyk πŸ’«


πŸ“ ENVIRONMENT VARIABLE πŸ“

  • GFARM_CONFIG_FILE β€” specifies the Gfarm configuration file.

πŸ’€ NOTES πŸ’€

when there's no local account name that matches the Gfarm global user name, a temporal UID gets assigned somewhere between auto_uid_min and auto_uid_max.

when there's no local group name that matches the Gfarm global group name, a temporal GID gets assigned somewhere between auto_gid_min and auto_gid_max.

and when a temporal UID/GID cannot be assigned? setfacl(1) fails with EPERM. not great, not terrible, just how it is πŸ™ˆ


πŸ”₯ SECURITY NOTES πŸ”₯

okay this part is serious, pay attention bestie:

when untrusted users are registered in the gfarmroot group, or in the gfarm_root.{user,group} extended attributes of any files or directories, then a Security Hole exists on the mount point of gfarm2fs when it's run with the -o suid,allow_other option executed by root β€” and yes, that's true even if either the -o ro option or the -o default_permissions option is also specified. 😭

so basically: do not use both the -o suid,allow_other option and the gfarm_root.{user,group} extended attributes together. periodt. 🚫

🌟 SEE ALSO 🌟

fusermount(1), gfarm_attr(5), gfarm2.conf(5), mount(8)


that's the whole page babes, you're officially fluent in gfarm2fs πŸ«ΆπŸ’– this little manual came from Gfarm and it's dated 2 April 2011 β€” vintage queen behavior, we love her, mwah πŸ˜˜βœ¨πŸŽ€