Nicola Murino
3ac5af47f2
minor fixes
2019-11-15 12:26:52 +01:00
Nicola Murino
bb37a1c1ce
sftpd: add support for chmod/chown
...
added matching permissions too and a new setting "setstat_mode".
Setting setstat_mode to 1 you can keep the previous behaviour that
silently ignore setstat requests
2019-11-15 12:15:07 +01:00
Nicola Murino
206799ff1c
httpd: add an API to get data provider status
2019-11-14 18:48:01 +01:00
Nicola Murino
f3de83707f
improve README
2019-11-14 17:43:14 +01:00
Nicola Murino
5be1d1be69
sftpd: send exit-status message on close
...
this fix restic compatibility
2019-11-14 16:49:42 +01:00
Nicola Murino
08e85f6be9
sftpd: return sftp.ErrSSHFxNoSuchFile if the client ask the file for a missing path
...
some clients expected this error and not the generic one if the path is missing
2019-11-14 14:18:43 +01:00
Nicola Murino
acdf351047
dataprovider: add custom command and/or HTTP notifications on users add, update and delete
...
This way custom logic can be implemented for example to create a UNIX user
as asked in #58
2019-11-14 11:06:03 +01:00
Nicola Murino
c2ff50c917
dataprovider: add support for user status and expiration
...
an user can now be disabled or expired.
If you are using an SQL database as dataprovider please remember to
execute the sql update script inside "sql" folder.
Fixes #57
2019-11-13 11:36:21 +01:00
Nicola Murino
363b9ccc7f
sftpd: explicitly configure supported SFTP extensions
...
update pkg/sftp to a git revision that includes the needed patch
https://github.com/pkg/sftp/pull/315
2019-11-12 07:37:47 +01:00
Nicola Murino
74367a65cc
failed connection logs: rename host to client_ip
2019-11-11 19:53:27 +01:00
Nicola Murino
2221d3307a
Improve README
2019-11-11 18:28:18 +01:00
Nicola Murino
4ff34b3e53
logger: add specific logs for failed attempts to initialize a connection
...
This should allow for better integration in tools like fail2ban.
Hopefully fix #59
2019-11-11 15:20:00 +01:00
Nicola Murino
191da1ecaf
fix a typo
2019-11-08 08:46:31 +01:00
Nicola Murino
77db2bd3d1
fix posix rename
...
update pkg/sftp to a git revision that includes:
https://github.com/pkg/sftp/pull/316
add a test case here too and update other deps
2019-11-08 08:43:27 +01:00
Nicola Murino
758f2ee834
improve README
2019-10-26 20:42:46 +02:00
Nicola Murino
c5a6ca5650
portable mode: advertise service via multicast dns
...
Fixes #51
2019-10-26 18:25:53 +02:00
Nicola Murino
b409523d5c
document memory data provider
2019-10-25 19:01:01 +02:00
Nicola Murino
8cd0aec417
add memory data provider and use it for portable mode
2019-10-25 18:37:12 +02:00
Nicola Murino
a4cddf4f7f
add portable mode
...
Portable mode is a convenient way to share a single directory on demand
2019-10-24 18:50:35 +02:00
Roman Isko
d970e757eb
Use relative to the current branch links in readme
2019-10-22 10:00:09 +02:00
Nicola Murino
083d9f76c6
add commit hash and build date to the version logged when starting the daemon
2019-10-21 21:18:45 +02:00
Jo Vandeginste
2003d08c59
Log version when starting the daemon
...
Signed-off-by: Jo Vandeginste <Jo.Vandeginste@kuleuven.be>
2019-10-21 21:15:31 +02:00
Nicola Murino
9cf4653425
improve docs for available Arch Linux packages
2019-10-20 09:23:04 +02:00
Nicola Murino
4f6bb00996
web: display version string
2019-10-19 07:52:58 +02:00
Nicola Murino
25f97bbe62
set version to 0.9.3
2019-10-18 11:28:20 +02:00
Nicola Murino
44d403cf9c
sftpd_test: use path.Join for SFTP/SCP path
...
filepath.Join could use an OS dependent separator
2019-10-16 12:57:06 +02:00
Nicola Murino
8682ae4a54
sftpd: make file/dir removal and creation more standard
...
- remove a non empty directory. Before: the directory contents were
removed recursively. Now: removing a non empty directory fails.
- make a directory in a non existent path: Before: any necessary parents
were created. Now: it fails.
- remove a file. Before: files, directories and symlinks were removed.
Now: only files and symlink are removed, removing a directory using "Remove"
instead of "Rmdir" fails.
Upload a file in a non existent directory. Before: any necessary parents
were created. Now: it fails.
Now SFTPGo behaves as OpenSSH.
2019-10-16 07:48:22 +02:00
Nicola Murino
f98a29a1e0
sftpd: port to non deprecated pkg/sftp error types
...
see https://github.com/pkg/sftp/pull/304
2019-10-14 22:44:57 +02:00
Nicola Murino
2932dba5cc
update modules deps
2019-10-14 08:36:39 +02:00
Nicola Murino
24914e90d1
web: fix quota scan error message
2019-10-13 13:08:19 +02:00
Nicola Murino
587c8a0347
web: add quota scan support
2019-10-13 12:07:22 +02:00
Nicola Murino
62224debd2
simplify closing a connection
...
get the connection from the map instead of cycling all the open connections
2019-10-12 15:12:43 +02:00
Nicola Murino
871e2ccbbf
sftpd: refactor connection closing
...
we have not known bugs with the previous implementation anyway this one
is cleaner: the underlying network connection is directly related with
SFTP/SCP connections.
This should better protect us against buggy clients and edge cases
2019-10-10 09:04:17 +02:00
Nicola Murino
4b5ce3913e
ssh handshake: add a deadline for handshake to complete
...
we use a 2 minutes timeout as OpenSSH
2019-10-09 19:07:35 +02:00
Nicola Murino
1d917561fe
sftpd: add support for upload resume
...
we support resume only if the client sets the correct offset while resuming
the upload.
Based on the specs the offset is optional for resume, but all the tested
clients sets a right offset.
If an invalid offset is given we interrupt the transfer with the error
"Invalid write offset ..."
See https://github.com/pkg/sftp/issues/295
This commit add a new upload mode: "atomic with resume support", this acts
as atomic but if there is an upload error the temporary file is renamed
to the requested path and not deleted, this way a client can reconnect
and resume the upload
2019-10-09 17:33:30 +02:00
Nicola Murino
4f36c1de06
web: use html/template
...
so output is safe against code injection
2019-10-09 11:48:54 +02:00
Nicola Murino
5ffa34dacb
improve godoc
2019-10-08 10:29:16 +02:00
Nicola Murino
60d4a3e1b5
improve docs
2019-10-08 08:20:26 +02:00
Nicola Murino
3e0558c0e9
add web interface support to windows setup ...
...
... and other small improvements
2019-10-07 22:37:28 +02:00
Nicola Murino
c74d90407b
launchd service: add env vars for html templates and static files
2019-10-07 19:40:17 +02:00
Nicola Murino
557831fa0d
Dockerfiles: add support for web interface
2019-10-07 19:16:52 +02:00
Nicola Murino
afd312f26a
add a basic web interface
...
The builtin web interface allows to manage users and connections
2019-10-07 18:19:01 +02:00
Nicola Murino
bb0338870a
unhide public keys
...
hiding public keys give no security improvement
2019-10-03 15:29:54 +02:00
Nicola Murino
fb8ccfe824
improve doc for dataprovider Close method
...
the method is used in test cases, it assumes that the dataprovider
is initialized and it is not safe Initialize/Close from different
goroutines
2019-09-29 08:38:09 +02:00
Nicola Murino
0b4ff97a1a
dataprovider: simplifly validateUser
2019-09-28 23:44:36 +02:00
Nicola Murino
00dd5db226
add support for users' default base dir
2019-09-28 22:48:52 +02:00
Jo Vandeginste
71093bbe1b
Log to journald
...
By default on systems with systemd, send logs to stdout and thus to journald.
2019-09-20 12:38:31 +02:00
Nicola Murino
088e187e6a
add Inno Setup script used to generate the Windows setup
...
So we can receive pull requests to improve it :)
2019-09-19 08:19:25 +02:00
Nicola Murino
0d8506c93d
set version to 0.9.2
2019-09-18 22:19:34 +02:00
Nicola Murino
df96ea7e9f
add a new permission for overwriting existing files
...
The upload permission is required to allow file overwrite
2019-09-17 08:53:45 +02:00