Golang 获取系统用户文件权限 - 代码示例
可以使用 os 包中的 Stat 和 Lstat 函数来获取文件的权限信息,然后通过文件信息中的 Mode 方法获取文件的权限模式。具体代码如下:
package main
import (
"fmt"
"os"
"os/user"
)
func main() {
// 指定文件路径
file := "/path/to/file"
// 获取文件信息
fileinfo, err := os.Stat(file)
if err != nil {
fmt.Println("获取文件信息失败:", err)
return
}
// 获取文件权限模式
mode := fileinfo.Mode()
// 获取当前用户
user, err := user.Current()
if err != nil {
fmt.Println("获取当前用户失败:", err)
return
}
// 判断当前用户是否有读权限
if mode.Perm()&0400 != 0 {
fmt.Printf("%s 有读权限\n", user.Username)
} else {
fmt.Printf("%s 没有读权限\n", user.Username)
}
// 判断当前用户是否有写权限
if mode.Perm()&0200 != 0 {
fmt.Printf("%s 有写权限\n", user.Username)
} else {
fmt.Printf("%s 没有写权限\n", user.Username)
}
// 判断当前用户是否有执行权限
if mode.Perm()&0100 != 0 {
fmt.Printf("%s 有执行权限\n", user.Username)
} else {
fmt.Printf("%s 没有执行权限\n", user.Username)
}
}
上述代码首先通过 os.Stat 函数获取文件的信息,然后通过文件信息中的 Mode 方法获取文件的权限模式。接着通过 user 包中的 Current 函数获取当前用户信息,最后通过位运算判断当前用户是否有读、写、执行权限。
原文地址: https://www.cveoy.top/t/topic/fYN8 著作权归作者所有。请勿转载和采集!