更方便的在微信公众号阅读文章可以关注公众号:海生的go花园
image.png

一、文件权限简介

1、我们使用 ls -lih 得到本目录详细的文件详情

➜  file git:(master) ✗ ls -lih 
57935473 -rw-r--r--  1 zhanghaisheng  staff    12B Aug 16 15:23 a.txt
57963493 -rw-r--r--  1 zhanghaisheng  staff   309B Aug 17 09:43 dir_test.go

整理如下:

inode权限硬链接个数属主所归属的组文件的大小最后访问或修改时间文件名
57935473-rw-r--r--1zhanghaishengstaff12BAug 16 15:23a.txt
57963493-rw-r--r--1zhanghaishengstaff309BAug 17 09:43dir_test.go

2、文件的权限

linux 下有2种文件权限表示方式,即“符号表示”和“八进制表示”。

1、所有者符号表示方式:

 -      ---         ---        ---
type   owner       group      others

任何文件都有使用者,群组,other的概念。
文件的使用者:
1 拥有者
2 所在群组的用户
3 其他组的用户

2、文件权限符号表示方式:
这里简单的说一下 r w x 分别代表的是什么意思
r表示可读
w表示可写
x表示可执行
如果没有那一个权限,用 - 代替
例如:-rw-r--r--
权限所代表的是r = 4, w = 2, x = 1

二、go读取权限

func TestStat(t *testing.T) {
    f, err := os.Stat("a.txt")
    if errors.Is(err, os.ErrNotExist) {
        t.Log("文件不存在")
    } else {
        t.Log(f.Mode())
    }
}

输出:

-rw-r--r--

谢谢您的观看,欢迎关注我的公众号。

image.png


海生
104 声望32 粉丝

与黑夜里,追求那一抹萤火。