ubuntu系统中的文件权限管理总结

知识分子没文化
2021-03-12 / 2 评论 / 2,177 阅读 / 1,112 字数 / 正在检测是否收录...
温馨提示:
本文最后更新于2021年10月16日,已超过1014天没有更新,如存在内容错误、图片加载失败、链接失效等问题,请留言反馈,博主将在第一时间进行修改。

目录:

思维导图

mind

注:修改文件权限等操作需要一定系统权限,本文的命令默认是在root用户下进行的,如有必要,请在命令前加入sudo 来提升权限。

1.ubuntu中的文件权限介绍

1.1 用户组

对于一个文件或者文件夹来说,与其相关的用户组分为三类:

  • user:该文件或文件夹的拥有者
  • group:与user在同一个用户组的用户
  • other:除了usergroup的其他所有用户

1.2 文件权限等级

文件权限等级有三种,分别为读、写、执行。有两种表示方法:

  • 用字母表示:

    • 读:r(read)
    • 写:w(write)
    • 执行:x(execute) ——假如这个文件可执行的话
    • 无权限:-(可以理解为占位符)

    这个很好理解,表示形式就是对应英文单词的首字母。假设有文件test.txtuser有这个文件的读、写、执行权限,group有读、写权限,other有执行权限,那么它的文件权限就可以用这种方式表示为:rwxrw- - -x。这串字符分为三部分,分别表示了usergroupother这三类用户的权限情况:

    01

  • 用十进制数字表示:

    • 读: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”。即每位数字是该用户所拥有权限的和,看下图:

    02

综上所述,这两种方法用一个表格总结下来就是这样:

读(read) 写(write) 执行(execute)
字母 r w x
十进制数字 4 2 1

2.查看文件权限

# 查看文件权限,
ls -l [文件名]

# 查看文件夹权限
ls -ld [文件夹名]

比如查看当前目录下的test.txt这个文本文件的权限信息:

ls -l test.txt

结果如下,图中红框部分就是文件权限信息:

03

查看当前目录下的test文件夹的权限信息:

ls -ld test

执行结果:

04

最前面的“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权限,即任何用户均可读写可执行的权限,会存在较大的安全隐患。

1

评论 (2)

取消
  1. 头像
    知识分子没文化 作者
    Windows 10 · Google Chrome
    @ 知识分子没文化

    哈哈,感谢指正!!错误处已修改!!
    博客框架是typecho,主题是Joe,链接见站点页脚 ^_^

    回复
  2. 头像
    123
    Windows 10 · Google Chrome

    ‘综上所述,这两种方法用一个表格来表示就是这样:’
    这句下面的表格中 e 应该是 x

    这站真好看!

    回复