可以使用 os 包中的 StatLstat 函数来获取文件的权限信息,然后通过文件信息中的 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 函数获取当前用户信息,最后通过位运算判断当前用户是否有读、写、执行权限。

Golang 获取系统用户文件权限 - 代码示例

原文地址: https://www.cveoy.top/t/topic/fYN8 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录