in filesystem/unix_permission.go [78:95]
func CheckFileRights(filePath string) error {
var stat unix.Stat_t
if err := unix.Stat(filePath, &stat); err != nil {
return fmt.Errorf("cannot get file's stat %s: %v", filePath, err)
}
// Check the owner of binary has read, write, exec.
if !(stat.Mode&(unix.S_IXUSR) == 0 || stat.Mode&(unix.S_IRUSR) == 0 || stat.Mode&(unix.S_IWUSR) == 0) {
return nil
}
// Check the owner of file has read, write
if !(stat.Mode&(unix.S_IRUSR) == 0 || stat.Mode&(unix.S_IWUSR) == 0) {
return nil
}
return fmt.Errorf("file's owner does not have enough permission at path %s", filePath)
}