Files
trivy/pkg/iac/scanners/terraform/parser/resolvers/writable.go

37 lines
514 B
Go

//go:build !windows
// +build !windows
package resolvers
import (
"os"
"syscall"
)
func isWritable(path string) bool {
info, err := os.Stat(path)
if err != nil {
return false
}
if !info.IsDir() {
return false
}
// Check if the user bit is enabled in file permission
if info.Mode().Perm()&(1<<(uint(7))) == 0 {
return false
}
var stat syscall.Stat_t
if err = syscall.Stat(path, &stat); err != nil {
return false
}
if uint32(os.Geteuid()) != stat.Uid {
return false
}
return true
}