diff options
-rw-r--r-- | AUTHORS | 23 | ||||
-rw-r--r-- | ChangeLog | 628 | ||||
-rw-r--r-- | Makefile.am | 2 | ||||
-rw-r--r-- | NEWS | 112 | ||||
-rw-r--r-- | README.md (renamed from README) | 26 | ||||
-rw-r--r-- | cache.c | 1 | ||||
-rw-r--r-- | configure.ac | 4 | ||||
-rwxr-xr-x | generate-faq.sh | 11 | ||||
-rw-r--r-- | sshfs.1.in | 2 | ||||
-rw-r--r-- | sshfs.c | 34 |
10 files changed, 151 insertions, 692 deletions
@@ -1 +1,22 @@ -Miklos Szeredi <miklos@szeredi.hu> +Current Maintainer +------------------ + +Nikolaus Rath <Nikolaus@rath.org> + + +Past Maintainers +---------------- + +Miklos Szeredi <miklos@szeredi.hu> (until 12/2015) + + +Contributors (autogenerated list) +--------------------------------- + +Alan Jenkins <alan.christopher.jenkins@gmail.com> +Alexander Neumann <alexander@bumpern.de> +Chris Wolfe <cwolfe@chromium.org> +Mike Kelly <mike@pair.com> +Miklos Szeredi <miklos@szeredi.hu> +Nikolaus Rath <Nikolaus@rath.org> +Percy Jahn <email@percyjahn.de> @@ -1,597 +1,139 @@ -2014-01-14 Miklos Szeredi <miklos@szeredi.hu> +Release 2.7 (2015-01-28) +------------------------ - * Released 2.5 +* New maintainer (Nikolaus Rath <Nikolaus@rath.org>) -2014-01-08 Miklos Szeredi <miklos@szeredi.hu> - * Add -o disable_hardlink option (debian bug #670926). Reported - by Louis-David Mitterrand +Release 2.6 (2014-01-14) +------------------------ - * Optimize readdir by sending multiple requests in parallel. Add - -o sync_readdir to restore old behavior. Patch by Alexander - Neumann +* Some performance improvements for large directories. +* New `disable_hardlink` option. +* Various small bugfixes. -2014-01-07 Miklos Szeredi <miklos@szeredi.hu> +Release 2.4 (2012-03-08) +------------------------ - * Map SSH2_FX_FAILURE to ENOTEMPTY for rmdir. Reported by Ross - Lagerwall +* New `slave` option. +* New `idmap`, `uidmap` and `gidmap` options. +* Various small bugfixes. -2012-05-14 Miklos Szeredi <miklos@szeredi.hu> +Release 2.3 (2011-07-01) +------------------------ - * When checking root directory use LSTAT not STAT. This prevents - I/O error being returned after a successful mount if a symlink is - mounted. Reported by Bart Friederichs +* Support hard link creation if server is OpenSSH 5.7 or later +* Small improvements and bug fixes +* Check mount point and options before connecting to ssh server +* New 'delay_connect' option -2012-03-08 Miklos Szeredi <miklos@szeredi.hu> +Release 2.2 (2008-10-20) +------------------------ - * Released 2.4 +* Handle numerical IPv6 addresses enclosed in square brackets +* Handle commas in usernames -2012-03-08 Miklos Szeredi <miklos@szeredi.hu> +Release 2.1 (2008-07-11) +------------------------ - * Make sure idmap files aren't writable by others otherwise, other - local users could change the mapping, and gain access to things - they shouldn't. Patch by Mike Kelly +* Small improvements and bug fixes -2012-02-08 Chris Wolfe <cwolfe@chromium.org> +Release 2.0 (2008-04-23) +------------------------ - * Add -o slave. This option routes the sftp communication over stdin - and stdout, bypassing SSH and network. +* Support password authentication with pam_mount -2011-12-16 Mike Kelly <mike@pair.com> +* Support atomic renames if server is OpenSSH 4.9 or later - * Add -o idmap=file, -o uidmap=FILE, -o gidmap=FILE. These options - allow you to create a pair of local files, similar to /etc/passwd or - /etc/group files from the remote server, and use those to remap all - the given UIDs/GIDs. +* Support getting disk usage if server is OpenSSH 5.1 or later -2011-11-25 Miklos Szeredi <miklos@szeredi.hu> +* Small enhancements and bug fixes - * Make chown respect the UID mapping policy. Reported and tested - by Vivenzio Pagliari +What is new in 1.9 +------------------ -2011-11-16 Miklos Szeredi <miklos@szeredi.hu> +* Fix a serious bug, that could result in sshfs hanging, crashing, or + reporting out-of-memory - * Submit max 32k reads and writes to the sftp server. Also don't - limit the kernel to 64k reads and writes, rather split into 32k - sized chunks and send them to the server all at once. This is - more efficient and less demanding from the server. Reported by - Ludovic Courtès. Fix suggested by Niels Möller +What is new in 1.8 +------------------ -2011-11-14 Miklos Szeredi <miklos@szeredi.hu> +* Bug fixes - * Fix double free if reconnection races with request sending. - Patch by E. Kuemmerle +What is new in 1.7 +------------------ - * Add locking around modifver and connver +* Tolerate servers which print a banner on login -2011-10-21 Miklos Szeredi <miklos@szeredi.hu> +* Small improvements - * Remove "-oPreferredAuthentications" from ssh options if the - "password_stdin" option is used. Reported by E. Kuemmerle +What is new in 1.6 +------------------ -2011-08-24 Miklos Szeredi <miklos@szeredi.hu> +* Workaround for missing truncate operation on old sftp servers - * Add "-oworkaround=fstat" for SFTP servers which don't support - the FSTAT message. Patch by: Percy Jahn +* Bug fixes -2011-07-01 Miklos Szeredi <miklos@szeredi.hu> +What is new in 1.5 +------------------ - * Released 2.3 +* Improvements to read performance. Now both read and write + throughput should be very close to 'scp' -2011-07-01 Miklos Szeredi <miklos@szeredi.hu> +* If used with FUSE 2.6.0 or later, then perform better data caching. + This should show dramatic speed improvements when a file is opened + more than once - * Add hard link operation. Works if the server supports the - "hardlink@openssh.com" protocol extension. +* Bug fixes -2011-03-25 Miklos Szeredi <miklos@szeredi.hu> +What is new in 1.4 +------------------ - * Fix possible deadlock on reconnection. Reported by Florian - Zumbiehl +* Updated to version 25 of libfuse API -2011-01-25 Miklos Szeredi <miklos@szeredi.hu> +* This means that the 'cp' of readonly file to sshfs bug is finally + solved (as long as using libfuse 2.5.0 or later *and* Linux 2.6.15 + or later) - * Fix cleanup when ssh connection is terminated. This prevents - sshfs hanging when the server is rebooted, for example. +* Sshfs now works on FreeBSD -2010-03-16 Miklos Szeredi <miklos@szeredi.hu> +* Added option to "transform" absolute symbolic links - * Set FD_CLOEXEC on fuse device. This prevents deadlocks that - happen in some circumstances (bugzilla.kernel.org #12864). - Reported by Tim Connors +What is new in 1.3 +------------------ -2009-07-15 Miklos Szeredi <miklos@szeredi.hu> +* Add workaround for failure to rename to an existing file - * Check mountpoint and fuse options before starting an ssh - session (debian bug #535333). This is only supported if compiled - against libfuse-2.6 or later. Reported by Greg Kochanski +* Simple user ID mapping - * Check that the remote path specified refers to the same type of - file as the mountpoint, i.e. both are directories or both are - non-directories (debian bug #535343). Reported by Greg Kochanski +* Estimate disk usage of files based on size - * Allow mounting a single non-directory from the server +* Report "infinite" disk space -2009-07-15 Sebastian Dransfeld <sebastid@tango.flipp.net> +* Bug fixes - * Add option 'delay_connect': This will always create the sshfs mount, - even if the connection to the server can't be established. +What is new in 1.2 +------------------ -2009-01-27 Miklos Szeredi <miklos@szeredi.hu> +* Better compatibility with different sftp servers - * Print usage information and version to stdout, not stderr. - Libfuse also needs to be fixed up. Reported by Kārlis Repsons +* Automatic reconnect (optional) -2008-10-20 Miklos Szeredi <miklos@szeredi.hu> +What is new in 1.1 +------------------ - * Released 2.2 +* Performance improvements: -2008-10-20 Miklos Szeredi <miklos@szeredi.hu> + - directory content caching - * Escape commas in fsname option if libfuse supports it + - symlink caching -2008-10-08 Miklos Szeredi <miklos@szeredi.hu> + - asynchronous writeback - * Handle numerical IPv6 addresses enclosed in square brackets. - Reported by Andre-John Mas + - readahead - * Fix error if username contains a comma character. Reported by - Yang Zhang +* Fixed '-p' option - * Fix harmless glib assertations with "cache=no" +What is new in 1.0 +------------------ -2008-07-11 Miklos Szeredi <miklos@szeredi.hu> - - * Released 2.1 - -2008-07-11 Miklos Szeredi <miklos@szeredi.hu> - - * Fix statvfs extension to match the current protocol in - opensshfs - - * Check version numbers of extensions, so such changes wouldn't - cause stupid behavior - -2008-06-24 Miklos Szeredi <miklos@szeredi.hu> - - * Add '-F' option to specify the ssh config file. Patch by Pat - Pascal. - -2008-05-06 Miklos Szeredi <miklos@szeredi.hu> - - * Fix bug in caching which could cause file corruption for append - mode writes. Reported by Jose Alonso - -2008-05-05 Miklos Szeredi <miklos@szeredi.hu> - - * Fix compile on OS X. Original patch from Michael G Schwern - - * Fix compile on Solaris. Reported by Jean-Jacques Sarton - -2008-04-23 Miklos Szeredi <miklos@szeredi.hu> - - * Released 2.0 - -2008-04-23 Miklos Szeredi <miklos@szeredi.hu> - - * Add manual page. Written by Bartosz Fenski - -2008-04-22 Miklos Szeredi <miklos@szeredi.hu> - - * Add missing ssh options: ControlMaster, ControlPath, - KbdInteractiveAuthentication, KbdInteractiveDevices, LocalCommand, - RekeyLimit (Debian bug #430225). - - * Allow the '-ossh_command=CMD' command to contain parameters. - Escape charater is backslash. - - * Limit write requests to 64kB. - - * Support "statvfs@openssh.com" extension, which will be available - in OpenSSH 5.1. - -2008-04-21 Miklos Szeredi <miklos@szeredi.hu> - - * Fix incorrect disk usage reported by 'du' for files of size 4GB - or above. Reported by Christian Boltz. - -2008-04-16 Miklos Szeredi <miklos@szeredi.hu> - - * If debugging is enabled, print some statistics at exit about the - number of bytes transferred, etc.. - -2008-03-31 Miklos Szeredi <miklos@szeredi.hu> - - * Support "posix-rename@openssh.com" extension available in - OpenSSH 4.9. This allows rename to be atomic even when target - file or directory exists. If available, the extension will be - used instead of the rename operation in the original protocol and - the "-oworkaround=rename" option will be ignored. - -2008-03-28 Miklos Szeredi <miklos@szeredi.hu> - - * Add support for password authentication with pam_mount. - Original patch and help with testing: John S. Skogtvedt - -2008-03-03 Miklos Szeredi <miklos@szeredi.hu> - - * Fix ssh debug only appearing if "-d" is used. Reported by - Michael Gorbach - -2008-01-03 Miklos Szeredi <miklos@szeredi.hu> - - * Fix condition for building of sshnodelay.so - -2007-12-17 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.9 - -2007-12-12 Miklos Szeredi <miklos@szeredi.hu> - - * Fix checking for fuse_opt_parse in configure - -2007-12-11 Miklos Szeredi <miklos@szeredi.hu> - - * Fill in st_ctime attribute with st_mtime, instead of leaving it - zero - - * Check for OpenSSH version >= 4.4, and if found, don't build the - sshnodelay.so workaround - -2007-12-10 Miklos Szeredi <miklos@szeredi.hu> - - * Fix crash on writing files, caused by missing locking around - sshfs_file_get() - - * Don't time requests when not debugging - - * Add subtype support with libfuse >= 2.7.0 - - * Abort on allocation failure instead of exit - - * Correctly show default of nodelaysrv workaround in help message - -2007-05-16 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.8 - -2007-05-15 Miklos Szeredi <miklos@szeredi.hu> - - * Add needed g_thread_init() to fix rare crashes. Reported by - Dimitrios Apostolou - - * Fix memory leak in sshfs_open_common() - -2007-04-18 Miklos Szeredi <miklos@szeredi.hu> - - * Fix crash within gdb, caused by sem_wait() returning with an - error on interrupt. Reported by Dimitrios Apostolou - - * Fix spurious cache entries remaining after renaming a directory - -2007-02-28 Miklos Szeredi <miklos@szeredi.hu> - - * Don't set DISPLAY environment variable to "", because it breaks - ssh-askpass. Make nodelaysrv_workaround default to off, because - with this change it may have security implications. - -2007-02-19 Miklos Szeredi <miklos@szeredi.hu> - - * OpenSSH sftp-server can read requests faster, than it processes - them, when it's buffer is full it aborts. This can happen on a - large upload to a slow server. Work around this by limiting the - total size of outstanding reqests. Debian bug #365541. Tracked - down by Thue Janus Kristensen - - * Add --disable-sshnodelay configure option. The sshnodelay.so - hack shouldnt be needed with OpenSSH client versions >= 4.3 - -2006-12-20 Miklos Szeredi <miklos@szeredi.hu> - - * Work around write performace issues due to missing TCP_NODELAY - in sshd. Reported by Justin Searle - -2006-11-10 Miklos Szeredi <miklos@szeredi.hu> - - * Fix bug which ommitted directory entries for symlinks with the - -ofollow_symlinks option. Bug reported by Mikael Ståldal - -2006-09-29 Miklos Szeredi <miklos@szeredi.hu> - - * Fix segfault if there are outstanding writes to the server after - release on the file descriptor. This only happened on FreeBSD. - Reported by Andriy Gapon - -2006-08-18 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.7 - -2006-08-17 Miklos Szeredi <miklos@szeredi.hu> - - * Cosmetics on bogus statfs numbers - -2006-08-16 Miklos Szeredi <miklos@szeredi.hu> - - * Add option 'follow_symlinks' to resolve symlinks on the server. - - * On setups where the login shell prints a banner, the sftp - protocol was confused, and bailed out with "reply len too large: - ...". So iterate over any rubbish read immediately after login - until a valid reply is found. - - * Check remote directory for existence before mounting. Closes - Ubuntu bug #46633 - -2006-03-10 Miklos Szeredi <miklos@szeredi.hu> - - * Use socketpair() instead of pipe() for communication between ssh - and sshfs. Patch from Csaba Henk - - * Update to FUSE interface version 26 - -2006-03-09 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.6 - -2006-03-09 Miklos Szeredi <miklos@szeredi.hu> - - * Fix segfault if remote host is down and reconnection is enabled - -2006-03-08 Miklos Szeredi <miklos@szeredi.hu> - - * Fix bug in symlink transformation. Reported by Ralf Hoffmann - -2006-02-24 Miklos Szeredi <miklos@szeredi.hu> - - * Add workaround for broken truncate on old sftp servers. Can be - enabled with '-oworkaround=truncate'. Patch from Joseph M Link - -2006-02-23 Miklos Szeredi <miklos@szeredi.hu> - - * Avoid double memcpy on writes. Patch by Joseph M Link - - * More memory copy avoidance - -2006-02-22 Miklos Szeredi <miklos@szeredi.hu> - - * Add -fPIC to the comile flags of sshnodelay.so. Reported by - Anthony Kolasny - -2006-02-20 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.5 - -2006-02-19 Miklos Szeredi <miklos@szeredi.hu> - - * Fix compilation with old FUSE versions. Report by Kurt George - Gjerde - -2006-02-16 Miklos Szeredi <miklos@szeredi.hu> - - * Block TERM/INT/HUP/QUIT signals in sshfs reading thread, so they - will always be received by the FUSE main thread. Fixes the - "double ^C" problem seen on FreeBSD. - - * Use 'auto_cache' option if available, so that file cache is not - thrown away on each open. This should make repeated reading of a - file much much faster. - -2006-01-31 Miklos Szeredi <miklos@szeredi.hu> - - * Fix problems with nodelay workaround on FreeBSD. - -2006-01-30 Miklos Szeredi <miklos@szeredi.hu> - - * Fix data consitency bug if readahead is enabled and writes are - intermixed with reads. Solution is far from optimal, since it - will prevent readahead in the above situation. If used with FUSE - >= 2.6.0 with Linux-2.6.X, readahead will be done by the kernel, - and hence there will be no performance penalty. Bug reported and - test program written by Wolfgang Köbler. Further testing on - FreeBSD by Csaba Henk - -2006-01-29 Miklos Szeredi <miklos@szeredi.hu> - - * Add '-olarge_read' option for Linux-2.4.*. This should - generally improve download performance - -2006-01-27 Miklos Szeredi <miklos@szeredi.hu> - - * Add workaround (enabled by default) for ssh clients not setting - TCP_NODELAY on the network connection. Currently this is all - known versions of openssh. This may improve download speed in - some circumstances - - * Make it possible to idividually disable workarounds with a "no" - prefix - - * Change '-otransform_symlinks' not to prefix with the mountpoint - (which is fragile wrt. moving/binding the mount). Rather convert - absolute symlinks to relative if possible. Does not yet work if - base path is itself relative - -2006-01-25 Miklos Szeredi <miklos@szeredi.hu> - - * Use TCP_NODELAY socket option for direct connection. This may - improve download speed in some circumstances - -2006-01-20 Miklos Szeredi <miklos@szeredi.hu> - - * Update to fuse API 2.6 - - * Don't do readahead in sshfs if it's done in kernel - -2006-01-14 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.4 - -2006-01-09 Miklos Szeredi <miklos@szeredi.hu> - - * Added 'transform_symlinks' option to "fix-up" absolute symlinks. - Patch by Paul Jarc - - * Add option parsing implementation, so linking with older than - 2.5.0 libfuse still works. - -2005-12-09 Miklos Szeredi <miklos@szeredi.hu> - - * Use new option parsing interface of FUSE - -2005-11-28 Miklos Szeredi <miklos@szeredi.hu> - - * Set statvfs::f_frsize - -2005-11-23 Miklos Szeredi <miklos@szeredi.hu> - - * Fix warnings on 64bit systems. Reported by D. R. Evans - -2005-11-16 Miklos Szeredi <miklos@szeredi.hu> - - * Replace EPROTO with the more portable EIO - - * Fix bug in option parsing. Reported by Csaba Henk - -2005-10-29 Miklos Szeredi <miklos@szeredi.hu> - - * Use FUSE version 25 if available - - * Add <sys/socket.h> include. Reported by Csaba Henk - -2005-10-29 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.3 - -2005-10-28 Miklos Szeredi <miklos@szeredi.hu> - - * Add atomic create+open and ftruncate operation. This should fix - issues with 'cp' and other programs failing with "Permission - denied". To be effective, needs FUSE version 2.5 and kernel - version 2.6.15 (just a guess, since neither of them is released - yet). - -2005-10-27 Miklos Szeredi <miklos@szeredi.hu> - - * Add support for SSH protocol version 1. Bug reported by Miklos - Bagi Jr. - -2005-10-26 Miklos Szeredi <miklos@szeredi.hu> - - * Fix typo (ConnectTimeout -> ConnectionTimeout) in ssh options. - Bug reported by Miklos Bagi Jr. - -2005-10-19 Miklos Szeredi <miklos@szeredi.hu> - - * GNOME Nautilus fails to copy file to sshfs filesystem, because - FUSE returns zero free space. So instead return huge (999999999 - kbytes) amount of free space, yet it should be obvious that the - number is artificial. Bug report by Peter Kronheimer - -2005-10-18 Miklos Szeredi <miklos@szeredi.hu> - - * Add remote uid detection and translation ('idmap=user' option). - Idea and implementation details worked out by Jean-Marc Valin - -2005-10-17 Miklos Szeredi <miklos@szeredi.hu> - - * Add one more missing lock. - - * Add workaround for failure to rename to an existing file. Based - on patch by Michael Best - -2005-10-15 Miklos Szeredi <miklos@szeredi.hu> - - * Protect request ID allocation with mutex. Bug report by Tvrtko - Ursulin - -2005-08-17 Miklos Szeredi <miklos@szeredi.hu> - - * Try to calculate approximate disk usage of files from their - size, so that 'du' returns meaningful results. Problem reported - by Bernd Amend. - -2005-08-15 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.2 - -2005-08-13 Miklos Szeredi <miklos@szeredi.hu> - - * Add 'reconnect' option, which tries to reconnect to the server - when the connection is broken. If a password is required for - connection, it is recommended that you install ssh-askpass, and - set the SSH_ASKPASS environment variable (see 'man ssh' for more - details). - -2005-05-05 Miklos Szeredi <miklos@szeredi.hu> - - * Work around missing truncate() support in some older sftp - servers (only works for zero size truncate). Thanks to Eduard - Czimbalmos for the bug report and help with testing - -2005-04-13 Miklos Szeredi <miklos@szeredi.hu> - - * Fix compilation with gcc-2.95. Reported by David A. Gershman - -2005-03-08 Miklos Szeredi <miklos@szeredi.hu> - - * Make it work on server version 2 (e.g. Sun_SSH_1.0.1). Report - and testing by Pieter J. Kersten - -2005-03-04 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.1 - -2005-03-03 Miklos Szeredi <miklos@szeredi.hu> - - * Slightly optimize readahead. Still not clever enough to always - keep the pipe filled. - - * Add 'sshfs_debug' option - -2005-02-17 Miklos Szeredi <miklos@szeredi.hu> - - * Parse 'max_read' mount option and if smaller than 65536 forward - to FUSE - -2005-02-16 Miklos Szeredi <miklos@szeredi.hu> - - * Added simple readahead (big performance gain in case of - sequential read pattern). Can be disabled with '-o no_readahead' - -2005-02-14 Miklos Szeredi <miklos@szeredi.hu> - - * Added asynchronous writeback (big performance gain) and made - this the default. Can be disabled with '-o sshfs_sync' - -2005-02-09 Miklos Szeredi <miklos@szeredi.hu> - - * Added option to start arbitary command instead of 'ssh' - - * Re-added '-p PORT' as a convenience option, also '-C' works as - in ssh. - -2005-02-08 Miklos Szeredi <miklos@szeredi.hu> - - * Add caching of symlinks - - * Add support for many ssh options to be passed to ssh - - * Port number can now actually be specified with "-o port=PORT", - bug spotted by Andrew Ukrainec - -2005-02-07 Miklos Szeredi <miklos@szeredi.hu> - - * Separate attribute caching to a separate layer - - * Add caching of directory contents - -2005-02-03 Miklos Szeredi <miklos@szeredi.hu> - - Fix PKG_CONFIG_PATH setting in configure.ac (reported by Alpar - Juttner) - -2005-01-09 Miklos Szeredi <miklos@szeredi.hu> - - * Released 1.0 - -2004-12-04 Miklos Szeredi <miklos@szeredi.hu> - - * Started ChangeLog +* Initial release diff --git a/Makefile.am b/Makefile.am index 078b2b7..c5b92f0 100644 --- a/Makefile.am +++ b/Makefile.am @@ -14,7 +14,7 @@ sshfs_LDADD = $(SSHFS_LIBS) sshfs_CFLAGS = $(SSHFS_CFLAGS) sshfs_CPPFLAGS = -D_REENTRANT -DFUSE_USE_VERSION=26 -DLIBDIR=\"$(libdir)\" -EXTRA_DIST = sshnodelay.c FAQ.txt +EXTRA_DIST = sshnodelay.c CLEANFILES = sshnodelay.so sshfs.1 dist_man_MANS = sshfs.1 @@ -1,112 +0,0 @@ -What is new in 2.1, 2.2 and 2.3 -------------------------------- - -* Support hard link creation if server is OpenSSH 5.7 or later - -* Check mount point and options before connecting to ssh server - -* Handle commas in usernames - -* Small improvements and bug fixes - - -What is new in 2.0 ------------------- - -* Support password authentication with pam_mount - -* Support atomic renames if server is OpenSSH 4.9 or later - -* Support getting disk usage if server is OpenSSH 5.1 or later - -* Small enhancements and bug fixes - -What is new in 1.9 ------------------- - -* Fix a serious bug, that could result in sshfs hanging, crashing, or - reporting out-of-memory - -What is new in 1.8 ------------------- - -* Bug fixes - -What is new in 1.7 ------------------- - -* Tolerate servers which print a banner on login - -* Small improvements - -What is new in 1.6 ------------------- - -* Workaround for missing truncate operation on old sftp servers - -* Bug fixes - -What is new in 1.5 ------------------- - -* Improvements to read performance. Now both read and write - throughput should be very close to 'scp' - -* If used with FUSE 2.6.0 or later, then perform better data caching. - This should show dramatic speed improvements when a file is opened - more than once - -* Bug fixes - -What is new in 1.4 ------------------- - -* Updated to version 25 of libfuse API - -* This means that the 'cp' of readonly file to sshfs bug is finally - solved (as long as using libfuse 2.5.0 or later *and* Linux 2.6.15 - or later) - -* Sshfs now works on FreeBSD - -* Added option to "transform" absolute symbolic links - -What is new in 1.3 ------------------- - -* Add workaround for failure to rename to an existing file - -* Simple user ID mapping - -* Estimate disk usage of files based on size - -* Report "infinite" disk space - -* Bug fixes - -What is new in 1.2 ------------------- - -* Better compatibility with different sftp servers - -* Automatic reconnect (optional) - -What is new in 1.1 ------------------- - -* Performance improvements: - - - directory content caching - - - symlink caching - - - asynchronous writeback - - - readahead - -* Fixed '-p' option - -What is new in 1.0 ------------------- - -* Initial release @@ -11,7 +11,7 @@ The idea of sshfs was taken from the SSHFS filesystem distributed with LUFS, which I found very useful. There were some limitations of that codebase, so I rewrote it. Features of this implementation are: - - Based on FUSE (the best userspace filesystem framework for Linux ;)) + - Based on FUSE (the best userspace filesystem framework for Linux ;) - Multithreading: more than one request can be on it's way to the server @@ -26,8 +26,7 @@ Latest version ============== The latest version and more information can be found on - - http://fuse.sourceforge.net/sshfs.html +http://github.com/libfuse/sshfs How to mount a filesystem @@ -35,7 +34,7 @@ How to mount a filesystem Once sshfs is installed (see next section) running it is very simple: - sshfs hostname: mountpoint + sshfs hostname: mountpoint Note, that it's recommended to run it as user, not as root. For this to work the mountpoint must be owned by the user. If the username is @@ -47,28 +46,27 @@ is the home directory. Also many ssh options can be specified (see the manual pages for sftp(1) and ssh_config(5)), including the remote port number -('-oport=PORT') +(`-oport=PORT`) To unmount the filesystem: - fusermount -u moutpoint + fusermount -u mountpoint Installing ========== -First you need to download FUSE 2.2 or later from: - - http://fuse.sourceforge.net +First you need to download FUSE 2.2 or later from +http://github.com/libfuse/libfuse. You also need to install the devel package for glib2.0. After installing FUSE, compile sshfs the usual way: - ./configure - make - make install (as root) + ./configure + make + make install (as root) And you are ready to go. -If checking out from CVS for the first time also do 'autoreconf -i' -before doing './configure'. +If checking out from git for the first time also do `autoreconf -i` +before doing `./configure`. @@ -490,6 +490,7 @@ static void cache_unity_fill(struct fuse_cache_operations *oper, cache_oper->init = oper->oper.init; #endif cache_oper->getattr = oper->oper.getattr; + cache_oper->access = oper->oper.access; cache_oper->readlink = oper->oper.readlink; cache_oper->getdir = cache_unity_getdir; cache_oper->mknod = oper->oper.mknod; diff --git a/configure.ac b/configure.ac index 7f3008d..d0ee2eb 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ -AC_INIT(sshfs-fuse, 2.5) +AC_INIT(sshfs, 2.6) AC_CANONICAL_TARGET -AM_INIT_AUTOMAKE +AM_INIT_AUTOMAKE([foreign subdir-objects]) AM_CONFIG_HEADER(config.h) AC_PROG_CC diff --git a/generate-faq.sh b/generate-faq.sh deleted file mode 100755 index 9576d2b..0000000 --- a/generate-faq.sh +++ /dev/null @@ -1,11 +0,0 @@ -#! /bin/bash - -( -echo "See http://fuse.sourceforge.net/wiki/index.php/SshfsFaq for the latest" -echo "version of this FAQ" -echo "---" -echo - -lynx -nolist -dump http://fuse.sourceforge.net/wiki/index.php/SshfsFaq \ -| sed -e '1,12d' -e '/____/,$d' -) > FAQ.txt @@ -296,5 +296,3 @@ SSHFS has been written by Miklos Szeredi <miklos@szeredi.hu>. .LP This man page was written by Bartosz Fenski <fenio@debian.org> for the Debian GNU/Linux distribution (but it may be used by others). - - @@ -139,6 +139,8 @@ #define READDIR_START 2 #define READDIR_MAX 32 +#define MAX_PASSWORD 1024 + #ifdef __APPLE__ #ifndef LIBDIR @@ -285,6 +287,7 @@ struct sshfs { int ext_statvfs; int ext_hardlink; mode_t mnt_mode; + struct fuse_operations *op; /* statistics */ uint64_t bytes_sent; @@ -2009,6 +2012,22 @@ static int sshfs_getattr(const char *path, struct stat *stbuf) return err; } +static int sshfs_access(const char *path, int mask) +{ + struct stat stbuf; + int err = 0; + + if (mask & X_OK) { + err = sshfs.op->getattr(path, &stbuf); + if (!err) { + if (S_ISREG(stbuf.st_mode) && + !(stbuf.st_mode & (S_IXUSR|S_IXGRP|S_IXOTH))) + err = -EACCES; + } + } + return err; +} + static int count_components(const char *p) { int ctr; @@ -3351,6 +3370,7 @@ static struct fuse_cache_operations sshfs_oper = { .oper = { .init = sshfs_init, .getattr = sshfs_getattr, + .access = sshfs_access, .readlink = sshfs_readlink, .mknod = sshfs_mknod, .mkdir = sshfs_mkdir, @@ -3458,10 +3478,11 @@ static int is_ssh_opt(const char *arg) static int sshfs_fuse_main(struct fuse_args *args) { + sshfs.op = cache_init(&sshfs_oper); #if FUSE_VERSION >= 26 - return fuse_main(args->argc, args->argv, cache_init(&sshfs_oper), NULL); + return fuse_main(args->argc, args->argv, sshfs.op, NULL); #else - return fuse_main(args->argc, args->argv, cache_init(&sshfs_oper)); + return fuse_main(args->argc, args->argv, sshfs.op); #endif } @@ -3590,7 +3611,7 @@ static void check_large_read(struct fuse_args *args) static int read_password(void) { int size = getpagesize(); - int max_password = 64; + int max_password = MIN(MAX_PASSWORD, size - 1); int n; sshfs.password = mmap(NULL, size, PROT_READ | PROT_WRITE, @@ -3951,8 +3972,8 @@ int main(int argc, char *argv[]) if (!realpath(*exec_path, sshfs_program_path)) { memset(sshfs_program_path, 0, PATH_MAX); } - - /* Until this gets fixed somewhere else. */ + + /* Until this gets fixed somewhere else. */ g_slice_set_config(G_SLICE_CONFIG_ALWAYS_MALLOC, TRUE); #endif /* __APPLE__ */ g_thread_init(NULL); @@ -4133,7 +4154,8 @@ int main(int argc, char *argv[]) if (res == -1) perror("WARNING: failed to set FD_CLOEXEC on fuse device"); - fuse = fuse_new(ch, &args, cache_init(&sshfs_oper), + sshfs.op = cache_init(&sshfs_oper); + fuse = fuse_new(ch, &args, sshfs.op, sizeof(struct fuse_operations), NULL); if (fuse == NULL) { fuse_unmount(mountpoint, ch); |