diff --git a/sshpiperd/config.go b/sshpiperd/config.go index 628f4ac6..6840f037 100644 --- a/sshpiperd/config.go +++ b/sshpiperd/config.go @@ -32,6 +32,7 @@ var ( Logfile string ShowVersion bool AllowBadUsername bool + NoCheckPerm bool }{} out = os.Stdout @@ -86,6 +87,7 @@ func initConfig() { pflag.StringVarP(&config.Challenger, "challenger", "c", "", "Additional challenger name, e.g. pam, emtpy for no additional challenge") pflag.StringVar(&config.Logfile, "log", "", "Logfile path. Leave emtpy or any error occurs will fall back to stdout") pflag.BoolVar(&config.AllowBadUsername, "allow_bad_username", false, "disable username check while search the working dir") + mflag.BoolVar(&config.NoCheckPerm, -no_check_perm, false, "Disable 0400 checking when using files in the working dir") pflag.BoolVarP(&config.ShowHelp, "help", "h", false, "Print help and exit") pflag.BoolVar(&config.ShowVersion, "version", false, "Print version and exit") diff --git a/sshpiperd/workingdir.go b/sshpiperd/workingdir.go index 259491b2..0d3ccd13 100644 --- a/sshpiperd/workingdir.go +++ b/sshpiperd/workingdir.go @@ -60,6 +60,10 @@ func (file userFile) checkPerm(user string) error { return err } + if config.NoCheckPerm { + return nil + } + if fi.Mode().Perm()&0077 != 0 { return fmt.Errorf("%v's perm is too open", filename) }