tAdd option to chroot into a directory on startup - partage - File upload system
(HTM) git clone git://git.z3bra.org/partage.git
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit d0302b9d7d7d65c177fa6d8b3982cb9f42480662
(DIR) parent c16f493ec9bbd9302f58b1cce36c2a0c3dab2548
(HTM) Author: Willy Goiffon <dev@z3bra.org>
Date: Tue, 19 Oct 2021 08:57:32 +0200
Add option to chroot into a directory on startup
Diffstat:
M partage.go | 7 +++++++
1 file changed, 7 insertions(+), 0 deletions(-)
---
(DIR) diff --git a/partage.go b/partage.go
t@@ -9,6 +9,7 @@ import (
"os"
"time"
"path"
+ "syscall"
"path/filepath"
"html/template"
"encoding/json"
t@@ -35,6 +36,7 @@ var conf struct {
filepath string
metapath string
rootdir string
+ chroot string
templatedir string
filectx string
metactx string
t@@ -222,12 +224,17 @@ func main() {
flag.StringVar(&conf.filectx, "filectx", "/f/", "Context to serve files from (default: /f/)")
flag.StringVar(&conf.metactx, "metactx", "/m/", "Context to serve metadata from (default: /m/)")
flag.StringVar(&conf.rootdir, "rootdir", "./static", "Root directory (default: ./static)")
+ flag.StringVar(&conf.chroot, "chroot", "", "Directory to chroot into upon starting (default: no chroot)")
flag.StringVar(&conf.templatedir, "templatedir", "./templates", "Templates directory (default: ./templates)")
flag.Int64Var(&conf.maxsize, "maxsize", 30064771072, "Maximum file size (default: 28Gib)")
flag.Int64Var(&conf.expiry, "expiry", 86400, "Link expiration time (default: 24h)")
iniflags.Parse()
+ if (conf.chroot != "") {
+ syscall.Chroot(conf.chroot)
+ }
+
http.HandleFunc("/", uploader)
http.Handle(conf.filectx, http.StripPrefix(conf.filectx, http.FileServer(http.Dir(conf.filepath))))
http.ListenAndServe(conf.bind, nil)