目录:
思维导图
注:修改文件权限等操作需要一定系统权限,本文的命令默认是在root用户下进行的,如有必要,请在命令前加入sudo 来提升权限。
1.ubuntu中的文件权限介绍
1.1 用户组
对于一个文件或者文件夹来说,与其相关的用户组分为三类:
- user:该文件或文件夹的拥有者
- group:与user在同一个用户组的用户
- other:除了user和group的其他所有用户
1.2 文件权限等级
文件权限等级有三种,分别为读、写、执行。有两种表示方法:
-
用字母表示:
- 读:r(read)
- 写:w(write)
- 执行:x(execute) ——假如这个文件可执行的话
- 无权限:-(可以理解为占位符)
这个很好理解,表示形式就是对应英文单词的首字母。假设有文件test.txt,user有这个文件的读、写、执行权限,group有读、写权限,other有执行权限,那么它的文件权限就可以用这种方式表示为:rwxrw- - -x。这串字符分为三部分,分别表示了user、group、other这三类用户的权限情况:
-
用十进制数字表示:
- 读:4
- 写:2
- 执行:1
- 无权限:0
那么问题来了,表示每个权限的数字为什么是”4“、 ”2“、 ”1“,而不是其他数字呢?其实用二进制来解释就很好理解了。在二进制中只有“0”和“1”两种取值,相对应到文件权限上,有权限是“1”,无权限是“0”。假设用户同时具备读、写、执行三种权限,那么按照读、写、执行的顺序排列,可得到一个二进制数“111”,将这个二进制数转换成十进制数就变成了“421”,所以就可以得到每种文件权限对应的十进制数字了,即:读(4)、写(2)、执行(1)。
以上是数字表示单个权限的情况,当数字来表示组合权限时稍显麻烦,但也并不算复杂。举个栗子说明权限表示的规则:还是文件test.txt,三类用户的权限不同,user有这个文件的读(4)、写(2)、执行(1)权限,group有读(4)、执行(1)权限,other只有这个文件的执行(1)权限,用数字来表示就是:“751”。即每位数字是该用户所拥有权限的和,看下图:
综上所述,这两种方法用一个表格总结下来就是这样:
读(read) | 写(write) | 执行(execute) | |
---|---|---|---|
字母 | r | w | x |
十进制数字 | 4 | 2 | 1 |
2.查看文件权限
# 查看文件权限,
ls -l [文件名]
# 查看文件夹权限
ls -ld [文件夹名]
比如查看当前目录下的test.txt这个文本文件的权限信息:
ls -l test.txt
结果如下,图中红框部分就是文件权限信息:
查看当前目录下的test文件夹的权限信息:
ls -ld test
执行结果:
最前面的“d”表示文档类型,即文件夹,其他的还有:
-
-:普通文档
-
l:链接文件(link file);
-
b:装置文件里面的可供储存的接口设备(可随机存取装置);
-
c:装置文件里面的串行端口设备,例如键盘、鼠标(一次性读取装置)。
后面对应的每一位上,有权限就用权限对应字母表示,若没有权限则用”-“来占位。
查看文件权限时,若省略后面的文件名参数,命令结果就会显示当前目录下的所有文件及文件夹的权限等信息。
查看文件夹权限时,省略文件名参数,命令的执行结果会变成显示当前所在的文件夹的权限信息。
基本介绍完了,接下来就是如何修改文件权限。
3.修改文件权限
修改文件的权限用chmod命令,对于一个文件来说,文件权限的表示方法有字母和数字两种,所以修改权限时就可以有两种方法。
3.1 用字母表示权限等级
举几个例子来说明,假设有一个文件“test”:
# 增加group用户的可执行权限
chmod g+x test
“+”表示在原来的基础上增加权限
# 删除other用户的可写权限
chmod o-w test
“-”表示在原来的基础上删除权限
# 给user用户给test文件的可写、可读、可执行权限
chmod u=rwx test
“=”可以给用户直接赋予多个权限
# 假设有文件test,给全部用户增加这个文件的可写权限
chmod a+w test
a在这里表示全部用户(user+group+other)
综上来说,这种方式下命令可以简单概括为:
chmod [用户]+/-/=[权限] [文件/文件名]
[用户]有u(user)、g(group)、o(other)和a(user+group+other)
[权限]有r(read)、w(write)、x(execute)
3.2 用数字表示权限等级
继续举例子说明:
# 修改文件“test1”的权限为user读、写、执行,group可读,other可执行
chmod 741 test1
# 修改文件夹“test2”的权限为user、group、other均可读写可执行
chmod -R 777 test2
“-R”参数表示对该文件夹下所有的文件及文件夹都执行修改权限操作,即递归执行,一般适用于文件夹操作。
所以这个方式简单概括就是这样的命令形式:
chmod [参数选项] [权限] [文件/文件夹]
这里要强调的是,在正式使用的服务器上,请不要给任何一个文件赋予777权限,即任何用户均可读写可执行的权限,会存在较大的安全隐患。
哈哈,感谢指正!!错误处已修改!!
博客框架是typecho,主题是Joe,链接见站点页脚 ^_^
‘综上所述,这两种方法用一个表格来表示就是这样:’
这句下面的表格中 e 应该是 x
这站真好看!