Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings
forked fromosxfuse/fuse

C-based FUSE for macOS SDK

License

GPL-2.0, LGPL-2.1 licenses found

Licenses found

GPL-2.0
COPYING
LGPL-2.1
COPYING.LIB
NotificationsYou must be signed in to change notification settings

YodaRocker/fuse

Repository files navigation

General Information===================FUSE (Filesystem in Userspace) is a simple interface for userspaceprograms to export a virtual filesystem to the Linux kernel.  FUSEalso aims to provide a secure method for non privileged users tocreate and mount their own filesystem implementations.You can download the source code releases fromhttp://sourceforge.net/projects/fuseor alternatively you can use CVS to get the very latest developmentversion:  cvs -d :pserver:anonymous@fuse.cvs.sourceforge.net:/cvsroot/fuse co fuseDependencies============Linux kernel version 2.6.X where X >= 9.Alternatively a kernel module from FUSE release 2.5.* can be used withthis release, which supports kernels >= 2.4.21.Installation============./configuremakemake installmodprobe fuseYou may also need to add '/usr/local/lib' to '/etc/ld.so.conf' and/orrun ldconfig.Linux kernels 2.6.14 or later contain FUSE support out of the box.  IfFUSE support is detected, the kernel module in this package will notbe compiled.  It is possible to override this with the'--enable-kernel-module' configure option.If './configure' cannot find the kernel source or it says the kernelsource should be prepared, you may either try  ./configure --disable-kernel-moduleor if your kernel does not already contain FUSE support, do thefollowing:  - Extract the kernel source to some directory  - Copy the running kernel's config (usually found in    /boot/config-X.Y.Z) to .config at the top of the source tree  - Run 'make prepare'For more details see the file 'INSTALL'How To Use==========FUSE is made up of three main parts: - A kernel filesystem module - A userspace library - A mount/unmount programHere's how to create your very own virtual filesystem in five easysteps (after installing FUSE):  1) Edit the file example/fusexmp.c to do whatever you want...  2) Build the fusexmp program  3) run 'example/fusexmp /mnt/fuse -d'  4) ls -al /mnt/fuse  5) Be gladIf it doesn't work out, please ask!  Also see the file 'include/fuse.h' fordetailed documentation of the library interface.Security========If you run 'make install', the fusermount program is installedset-user-id to root.  This is done to allow normal users to mounttheir own filesystem implementations.There must however be some limitations, in order to prevent Bad User fromdoing nasty things.  Currently those limitations are:  - The user can only mount on a mountpoint, for which it has write    permission  - The mountpoint is not a sticky directory which isn't owned by the    user (like /tmp usually is)  - No other user (including root) can access the contents of the mounted    filesystem.Configuration=============Some options regarding mount policy can be set in the file'/etc/fuse.conf'Currently these options are:mount_max = NNN  Set the maximum number of FUSE mounts allowed to non-root users.  The default is 1000.user_allow_other  Allow non-root users to specify the 'allow_other' or 'allow_root'  mount options.Mount options=============Most of the generic mount options described in 'man mount' aresupported (ro, rw, suid, nosuid, dev, nodev, exec, noexec, atime,noatime, sync async, dirsync).  Filesystems are mounted with'-onodev,nosuid' by default, which can only be overridden by aprivileged user.These are FUSE specific mount options that can be specified for allfilesystems:default_permissions  By default FUSE doesn't check file access permissions, the  filesystem is free to implement it's access policy or leave it to  the underlying file access mechanism (e.g. in case of network  filesystems).  This option enables permission checking, restricting  access based on file mode.  This is option is usually useful  together with the 'allow_other' mount option.allow_other  This option overrides the security measure restricting file access  to the user mounting the filesystem.  So all users (including root)  can access the files.  This option is by default only allowed to  root, but this restriction can be removed with a configuration  option described in the previous section.allow_root  This option is similar to 'allow_other' but file access is limited  to the user mounting the filesystem and root.  This option and  'allow_other' are mutually exclusive.kernel_cache  This option disables flushing the cache of the file contents on  every open().  This should only be enabled on filesystems, where the  file data is never changed externally (not through the mounted FUSE  filesystem).  Thus it is not suitable for network filesystems and  other "intermediate" filesystems.  NOTE: if this option is not specified (and neither 'direct_io') data  is still cached after the open(), so a read() system call will not  always initiate a read operation.auto_cache  This option enables automatic flushing of the data cache on open().  The cache will only be flushed if the modification time or the size  of the file has changed.large_read  Issue large read requests.  This can improve performance for some  filesystems, but can also degrade performance.  This option is only  useful on 2.4.X kernels, as on 2.6 kernels requests size is  automatically determined for optimum performance.direct_io  This option disables the use of page cache (file content cache) in  the kernel for this filesystem.  This has several affects:     - Each read() or write() system call will initiate one or more       read or write operations, data will not be cached in the       kernel.     - The return value of the read() and write() system calls will       correspond to the return values of the read and write       operations.  This is useful for example if the file size is not       known in advance (before reading it).max_read=N  With this option the maximum size of read operations can be set.  The default is infinite.  Note that the size of read requests is  limited anyway to 32 pages (which is 128kbyte on i386).max_readahead=N  Set the maximum number of bytes to read-ahead.  The default is  determined by the kernel.  On linux-2.6.22 or earlier it's 131072  (128kbytes)max_write=N  Set the maximum number of bytes in a single write operation.  The  default is 128kbytes.  Note, that due to various limitations, the  size of write requests can be much smaller (4kbytes).  This  limitation will be removed in the future.async_read  Perform reads asynchronously. This is the defaultsync_read  Perform all reads (even read-ahead) synchronously.hard_remove  The default behavior is that if an open file is deleted, the file is  renamed to a hidden file (.fuse_hiddenXXX), and only removed when  the file is finally released.  This relieves the filesystem  implementation of having to deal with this problem.  This option  disables the hiding behavior, and files are removed immediately in  an unlink operation (or in a rename operation which overwrites an  existing file).  It is recommended that you not use the hard_remove option. When  hard_remove is set, the following libc functions fail on unlinked  files (returning errno of ENOENT):     - read()     - write()     - fsync()     - close()     - f*xattr()     - ftruncate()     - fstat()     - fchmod()     - fchown()debug  Turns on debug information printing by the library.fsname=NAME  Sets the filesystem source (first field in /etc/mtab).  The default  is the program name.subtype=TYPE  Sets the filesystem type (third field in /etc/mtab).  The default is  the program name.  If the kernel suppports it, /etc/mtab and /proc/mounts will show the  filesystem type as "fuse.TYPE"  If the kernel doesn't support subtypes, the source filed will be  "TYPE#NAME", or if fsname option is not specified, just "TYPE".use_ino  Honor the 'st_ino' field in getattr() and fill_dir().  This value is  used to fill in the 'st_ino' field in the stat()/lstat()/fstat()  functions and the 'd_ino' field in the readdir() function.  The  filesystem does not have to guarantee uniqueness, however some  applications rely on this value being unique for the whole  filesystem.readdir_ino  If 'use_ino' option is not given, still try to fill in the 'd_ino'  field in readdir().  If the name was previously looked up, and is  still in the cache, the inode number found there will be used.  Otherwise it will be set to '-1'.  If 'use_ino' option is given,  this option is ignored.nonempty  Allows mounts over a non-empty file or directory.  By default these  mounts are rejected (from version 2.3.1) to prevent accidental  covering up of data, which could for example prevent automatic  backup.umask=M  Override the permission bits in 'st_mode' set by the filesystem.  The resulting permission bits are the ones missing from the given  umask value.  The value is given in octal representation.uid=N  Override the 'st_uid' field set by the filesystem.gid=N  Override the 'st_gid' field set by the filesystem.blkdev  Mount a filesystem backed by a block device.  This is a privileged  option.  The device must be specified with the 'fsname=NAME' option.entry_timeout=T  The timeout in seconds for which name lookups will be cached. The  default is 1.0 second.  For all the timeout options, it is possible  to give fractions of a second as well (e.g. "-oentry_timeout=2.8")negative_timeout=T  The timeout in seconds for which a negative lookup will be cached.  This means, that if file did not exist (lookup retuned ENOENT), the  lookup will only be redone after the timeout, and the file/directory  will be assumed to not exist until then.  The default is 0.0 second,  meaning that caching negative lookups are disabled.attr_timeout=T  The timeout in seconds for which file/directory attributes are  cached.  The default is 1.0 second.ac_attr_timeout=T  The timeout in seconds for which file attributes are cached for the  purpose of checking if "auto_cache" should flush the file data on  open.   The default is the value of 'attr_timeout'intr  Allow requests to be interrupted.  Turning on this option may result  in unexpected behavior, if the filesystem does not support request  interruption.intr_signal=NUM  Specify which signal number to send to the filesystem when a request  is interrupted.  The default is 10 (USR1).modules=M1[:M2...]  Add modules to the filesystem stack.  Modules are pushed in the  order they are specified, with the original filesystem being on the  bottom of the stack.Modules distributed with fuse-----------------------------iconv`````Perform file name character set conversion.  Options are:from_code=CHARSET  Character set to convert from (see iconv -l for a list of possible  values).  Default is UTF-8.to_code=CHARSET  Character set to convert to.  Default is determined by the current  locale.subdir``````Prepend a given directory to each path. Options are:subdir=DIR  Directory to prepend to all paths.  This option is mandatory.rellinks  Transform absolute symlinks into relativenorellinks  Do not transform absolute symlinks into relative.  This is the default.Reporting bugs==============Please send bug reports to the <fuse-devel@lists.sourceforge.net>mailing list.The list is open, you need not be subscribed to post.

About

C-based FUSE for macOS SDK

Resources

License

GPL-2.0, LGPL-2.1 licenses found

Licenses found

GPL-2.0
COPYING
LGPL-2.1
COPYING.LIB

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C98.0%
  • Other2.0%

[8]ページ先頭

©2009-2025 Movatter.jp