From 7e9f9300d427b97ed74aa94c17b50fd95c741aa7 Mon Sep 17 00:00:00 2001 From: Boshi Lian Date: Wed, 2 Jan 2019 09:11:29 +0000 Subject: [PATCH] fix perm --- sshpiperd/snap/snapcraft.yaml | 4 +++- sshpiperd/upstream/workingdir/config.go | 2 +- sshpiperd/upstream/workingdir/plugin.go | 6 ++++-- 3 files changed, 8 insertions(+), 4 deletions(-) diff --git a/sshpiperd/snap/snapcraft.yaml b/sshpiperd/snap/snapcraft.yaml index bf5cc78f..6c680c40 100644 --- a/sshpiperd/snap/snapcraft.yaml +++ b/sshpiperd/snap/snapcraft.yaml @@ -13,10 +13,12 @@ parts: source: /build apps: - sshpiperd: + sshpiperd-daemon: command: sshpiperd --config $SNAP_DATA/sshpiperd.ini plugs: [network-bind] daemon: simple + sshpiperd: + command: sshpiperd --config $SNAP_DATA/sshpiperd.ini hooks: configure: diff --git a/sshpiperd/upstream/workingdir/config.go b/sshpiperd/upstream/workingdir/config.go index df15e0a3..bb217529 100644 --- a/sshpiperd/upstream/workingdir/config.go +++ b/sshpiperd/upstream/workingdir/config.go @@ -2,7 +2,7 @@ package workingdir var ( config = struct { - WorkingDir string `long:"upstream-workingdir" default:"/var/sshpiper" description:"Path to workingdir" env:"SSHPIPERD_UPSTREAM_WORKINGDIR" ini-name:"upstream-workingdir" required:"true"` + WorkingDir string `long:"upstream-workingdir" default:"/var/sshpiper" description:"Path to workingdir" env:"SSHPIPERD_UPSTREAM_WORKINGDIR" ini-name:"upstream-workingdir"` AllowBadUsername bool `long:"upstream-workingdir-allowbadusername" description:"Disable username check while search the working dir" env:"SSHPIPERD_UPSTREAM_WORKINGDIR_ALLOWBADUSERNAME" ini-name:"upstream-workingdir-allowbadusername"` NoCheckPerm bool `long:"upstream-workingdir-nocheckperm" description:"Disable 0400 checking when using files in the working dir" env:"SSHPIPERD_UPSTREAM_WORKINGDIR_NOCHECKPERM" ini-name:"upstream-workingdir-nocheckperm"` FallbackUsername string `long:"upstream-workingdir-fallbackusername" description:"Fallback to a user when user does not exists in directory" env:"SSHPIPERD_UPSTREAM_WORKINGDIR_FALLBACKUSERNAME" ini-name:"upstream-workingdir-fallbackusername"` diff --git a/sshpiperd/upstream/workingdir/plugin.go b/sshpiperd/upstream/workingdir/plugin.go index 0fffb029..deb86f0c 100644 --- a/sshpiperd/upstream/workingdir/plugin.go +++ b/sshpiperd/upstream/workingdir/plugin.go @@ -15,7 +15,7 @@ type plugin struct { } func (p *plugin) CreatePipe(opt upstream.CreatePipeOption) error { - err := os.MkdirAll(config.WorkingDir+"/"+opt.Username, os.ModePerm) + err := os.MkdirAll(config.WorkingDir+"/"+opt.Username, 0775) if err != nil { return err } @@ -30,7 +30,9 @@ func (p *plugin) CreatePipe(opt upstream.CreatePipeOption) error { } content := fmt.Sprintf("%v@%v:%v", upuser, opt.Host, opt.Port) - return ioutil.WriteFile(path, []byte(content), os.ModePerm) + return ioutil.WriteFile(path, []byte(content), 0600) + } else if err != nil { + return err } return fmt.Errorf("upstream file alreay exists")