|
3 years ago | |
---|---|---|
vendor | 3 years ago | |
Gopkg.lock | 3 years ago | |
Gopkg.toml | 3 years ago | |
LICENSE | 5 years ago | |
README.md | 3 years ago | |
main.go | 3 years ago |
dangerously simple webdav server for a local filesystem
go get git.thisco.de/vbatts/srvdav
This daemon can serve up WebDAV for a local directory without any auth, nor encryption. DO NOT DO THIS
Produce an x.509 certificate and accompanying key. For development use case use can use the generator in golang's stdlib.
> go run $(go env GOROOT)/src/crypto/tls/generate_cert.go -h
> go run $(go env GOROOT)/src/crypto/tls/generate_cert.go -host="localhost,example.com"
2016/09/22 09:46:19 written cert.pem
2016/09/22 09:46:19 written key.pem
Produce a password list for users.
The htpasswd(1)
utility creates the password file nicely.
> htpasswd -bc srvdav.passwd vbatts topsecretpassword
Then launch srvdav
with these credentials.
> mkdir -p ./test/
> srvdav -htpasswd ./srvdav.passwd -cert ./cert.pem -key ./key.pem
Serving HTTPS:// :9999
[...]
There are a number of webdav clients.
For my specific use case, I am working with ChromeOS and there is a WebDAV Storage Provider.
For Linux hosts, there is a package commonly davfs2
, that provides a mount.davfs
command.
See mount.davfs(8)
man page for more information.
Basic example:
[vbatts@valse] {master} ~$ sudo mount.davfs https://bananaboat.usersys:9999/ ./x
Please enter the username to authenticate with server
https://bananaboat.usersys:9999/ or hit enter for none.
Username: vbatts
Please enter the password to authenticate user vbatts with server
https://bananaboat.usersys:9999/ or hit enter for none.
Password:
mount.davfs: the server certificate is not trusted
issuer: Acme Co
subject: Acme Co
identity: localhost
fingerprint: ce:19:a6:e7:0a:85:c2:01:fb:71:a6:bf:dd:56:3a:47:30:a8:7a:37
You only should accept this certificate, if you can
verify the fingerprint! The server might be faked
or there might be a man-in-the-middle-attack.
Accept certificate for this session? [y,N] y
[vbatts@valse] {master} ~$ ls x/file
x/file
[vbatts@valse] {master} ~$ cat !$
cat x/file
[vbatts@valse] {master} ~$ echo Howdy > !$
echo Howdy > x/file
[vbatts@valse] {master} ~$ cat x/file
Howdy
[vbatts@valse] {master} ~$ sudo umount ./x
/sbin/umount.davfs: waiting while mount.davfs (pid 8931) synchronizes the cache .. OK