Linux系统下文件权限问题解析
我们都知道,在linux下一切都是文件,目录也是文件,本文主要讨论常规文件与目录文件的权限问题。
使用ll
(即ls
-l)我们可以查看当前文件夹下的文件的及其相关属性。
我们会发现每个文件都会有三种权限rwx
,且为其拥有者、所属用户组成员、其他用户分别进行了不同的设置。
在每行最前面一位,在这里我们会发现是符号
d
或-
,这代表的是文件类型,-
代表着常规文件,d
代表目录文件,当然还会有一些其他的特殊文件类型,可以查看书《鸟哥的linux私房菜第四版》163页。
文件所有者与所有群
Linux/Unix
是多用户多任务操作系统,所有的文件皆有其拥有者(Owner)。利用chown
命令
可以将文件的拥有者加以改变。一般来说,这个命令只能由系统管理者(root)使用,一般用户没有权限来改变别人的文件的拥有者,也没有权限可以将自己的文件的拥有者改设为别人。只有系统管理者(root)才有这样的权限。
chgrp
命令与chown
一样,但是chmod
不需要系统管理员权限,普通用户就可以使用。
常规文件的rwx
权限
- r(read): 用户可以读取此文件的内容,比如读取文本文件的文字内容等;
- w(write): 用户可以编辑、新增或是修改该文件的内容(但不含删除该文件);
- x(execute): 用户具有执行该文件的权限;
常规文件的基本权限是
r
权限,如果你想要修改一个文件或者执行一个文件,除了w
或x
权限,你还需要拥有该文件的r
权限。
目录文件的rwx
权限
- r(read): 用户具有读取目录结构列表的权限;
- w(write): 用户具有改动目录结构列表的权限,比如
- 建立新的文件与目录;
- 删除已经存在的文件与目录(不论该文件的权限是什么);
- 将已存在的文件或目录进行更名;
- 移动该目录内的文件、目录位置
- x(execute): 用户具有进入该目录,并将该目录作为工作目录(其实就是能对该目录下的文件或者在该目录下执行命令)的权限;
目录文件的基本权限是
x
权限,因为只有具备了它,你才能执行一切与该目录下有关的命令操作。(其实如果只有r权限的话,也是可以执行ls操作获得文件列表的,只是系统还是会提示权限不够,如下)
文件的隐藏属性
除了上述的三个常用的权限属性外,文件还会有一些隐藏属性,可以使用lsattr
查看,使用chattr
进行设置。
比如说,使用lsattr
查看当前文件夹下文件的隐藏属性
我们会发现隐藏属性里只开启了一个e
属性,这个属性是ext3与ext4文件系统自带的属性。
具体还有哪些隐藏属性,这两个命令更详细操作方式,可以查看《鸟哥的linux私房菜第四版》197页,此处只进行简单的讲解。
## 文件的特殊权限
有时我们会发现有些文件的权限并不是rwx
,而是rws
、rwt
等,这里的s与t都是特殊权限。
参考资料
- [1] 鸟哥的linux私房菜(第四版)
- [2] http://blog.51cto.com/1024079574/1746139
- [3] https://blog.csdn.net/wh8_2011/article/details/69815660