Linux基础笔记7 | 文件权限操作

权限是操作系统用来限制对资源访问的机制,权限一般分为读、写、执行。系统中的每个文件都拥有特定的权限、所属用户及所属组,通过这样的机制来限制哪些用户、哪些组可以对特定文件进行什么样操作。

Linux 文件目录权限

文件权限位说明

Linux 文件和目录的基础权限位由9个字符来控制,每三个字符位一组:

在这里插入图片描述

基础权限知识说明表:

“用户权限位+用户组权限位+其他用户权限位+…+属主+属组”

前三位是用户权限位中三位是用户组权限位后三位是其他用户权限位
rw-r–r–
user(用户)(属主)group(用户组)(属组)others(其他用户)
代表字符:u代表字符:g代表字符:o
read/r/4/可读权限write/w/2/可写权限Execute:/x/1/可执行权限

普通文件对应权限说明

  • 可读 r :表示具有读取、预览文件内容的权限

  • 可写 w:表示具有新增、修改、删除文件内容的权限

    文件本身的可写权限,与文件是否能被删除和改名无关

  • 可执行 x:表示具有执行文件的权限

    普通用户而言,还需具备可读权限才能执行文件

目录对应权限说明

  • 可读 r:具有预览目录下面文件及子目录的权限

  • 可写 w:具有增加、删除或修改目录内文件的权限

    如果没有可执行的权限配合,即使有w权限,也无法删除和创建文件

  • 可执行 x:具有进入目录的权限

实践

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

修改文件及目录权限

chmod 命令用法:chmod [选项] [模式] [文件或目录]

  • -R:递归处理指定目录以及子目录下所有的文件

数字方式修改权限

chmod [选项] 755 文件名

权限二进制八进制权限二进制八进制
0000r–1004
–x0011r-x1015
-w-0102rw-1106
-wx0113rwx1117

字符修改权限

chmod [用户类型] [+|-|=] 字符 文件

用户类型操作字符字符
u+ - =r w x -
g+ - =r w x -
o+ - =r w x -
a+ - =r w x -

举例说明:

[root@vm10 home]# ll
总用量 0
drwxr-x--x 2 root root 71 94 21:10 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chmod u-x,g+r,o+rw ceshi
[root@vm10 home]# ll
总用量 0
drw-r-xrwx 2 root root 71 94 21:10 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]#

默认权限掩码

umask :通过八进制的数值来定义用户创建文件或目录的默认权限

查看当前权限掩码设置

[root@vm10 home]# umask
0022
[root@vm10 home]#

如何计算默认权限

  • 对于文件

    创建文件默认最大权限为666,由最大权限减去 umask(各个位数字不能大于6),得到每一位数都是偶数,就是最终权限结果,如果得到的结果有奇数,这个奇数必须加1变成偶数

    举例:

    ## 666-022=644
    [root@vm10 home]# umask
    0022
    [root@vm10 home]# touch ceshi.txt
    [root@vm10 home]# ll ceshi.txt
    -rw-r--r-- 1 root root 0 94 21:40 ceshi.txt
    [root@vm10 home]#
    
    ## 改变一下 umask的值为 025
    ## 666-025=641  奇数位加1  最终权限结果:642
    [root@vm10 home]# umask
    0025
    [root@vm10 home]# touch 1.txt
    [root@vm10 home]# ll 1.txt
    -rw-r---w- 1 root root 0 94 21:41 1.txt
    [root@vm10 home]#
    
  • 对于目录

    创建目录默认最大权限为777,这个计算方法没有奇偶之分

    举例:

    ## 777-025=752
    [root@vm10 home]# umask
    0025
    [root@vm10 home]# mkdir ceshi
    [root@vm10 home]# ll
    总用量 0
    drwxr-x-w- 2 root root  6 94 21:44 ceshi
    drwx------ 2 test test 83 94 21:09 test
    [root@vm10 home]#
    

特殊权限位说明

suid

  • 作用:让普通用户可以在执行某个位置了 suid 位的命令或程序时,拥有与 root 管理员一样的身份和权限(默认情况),比如说 passwd 命令具有 suid 权限:当普通用户通过 passwd 修改自己密码时候,就可以取得 root 权限,从而修改 shadow 文件,达到修改密码的目的
[root@vm10 home]# ll /usr/bin/passwd
-rwsr-xr-x. 1 root root 27856 41 2020 /usr/bin/passwd
[root@vm10 home]#
  • 通过小写 s 字符标识,位置:用户权限位的 x 权限对应的位置,如果 x 权限上有权限,则显示小写的 s,如果没有 x 权限,则显示大写的 s
[root@vm10 home]# ll
总用量 0
drw-r-x-w- 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chmod u+s ceshi
[root@vm10 home]# ll
总用量 0
drwSr-x-w- 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chmod u+x ceshi
[root@vm10 home]# ll
总用量 0
drwsr-x-w- 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]#

sgid

  • 用来获得命令所属用户组的身份和权限,类似于 suid:locate 命令就是一个案例
[root@vm10 /]# which locate
/usr/bin/locate
[root@vm10 /]# ll /usr/bin/locate
-rwx--s--x 1 root slocate 40520 411 2018 /usr/bin/locate
[root@vm10 /]#
  • 通过小写的 s 字符标识,位置:用户组权限位的 x 权限对应的位置,如果 x 权限上有权限,则显示小写的 s,如果没有 x 权限,则显示大写的 s
[root@vm10 home]# ll
总用量 0
drwxr-x-w- 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chmod g+s ceshi
[root@vm10 home]# ll
总用量 0
drwxr-s-w- 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chmod g-x ceshi
[root@vm10 home]# ll
总用量 0
drwxr-S-w- 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]#

sticky(粘滞位)

  • 开放所有权限,设置粘滞位,除非目录的属主和 root 用户有权限删除它,其他用户都不能删除:比如 /tmp
[root@vm10 /]# ll | grep tmp
drwxrwxrwt.  14 root root 4096 94 22:19 tmp
[root@vm10 /]#
  • 通过小写的 t 标识,位置:其他用户位对应的 x 权限对应的位置,如果 x 权限上有权限,则显示小写的 t,如果没有 x 权限,则显示大写的 t
[root@vm10 home]# ll
总用量 0
drwxr---w- 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chmod o+t ceshi
[root@vm10 home]# ll
总用量 0
drwxr---wT 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chmod o+x ceshi
[root@vm10 home]# ll
总用量 0
drwxr---wt 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]#

改变文件或目录的用户和用户组

chown:改变文件或目录的用户和用户组

chown [选项][用户:用户组] 文件或目录

  • -R:递归更改
## 仅改变用户
[root@vm10 home]# ll
总用量 0
drwxr---wt 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chown test ceshi
[root@vm10 home]# ll
总用量 0
drwxr---wt 2 test root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]#

## 仅改变用户组
[root@vm10 home]# ll
总用量 0
drwxr---wt 2 test root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chown :test ceshi
[root@vm10 home]# ll
总用量 0
drwxr---wt 2 test test  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]#

## 同时授权用户和用户组
[root@vm10 home]# ll
总用量 0
drwxr---wt 2 test test  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]# chown root:root ceshi
[root@vm10 home]# ll
总用量 0
drwxr---wt 2 root root  6 94 21:44 ceshi
drwx------ 2 test test 83 94 21:09 test
[root@vm10 home]#

改变文件的扩展属性

chattr:改变更底层的属性

chattr [选项] [模式] 文件或者目录

  • -R:递归
  • -V:显示命令的执行过程
  • 模式:
    • +:增加参数
    • -:移除参数
    • =:更新为指定参数
    • A:告诉系统不能修改这个文件的最后访问时间
    • a:只能向文件中添加数据,不能删除
    • i:不能删除、改名、写入和新增内容,相当于锁定了
## 对文件只追加内容,不能删除
[root@vm10 ceshi]# chattr +a ceshi
[root@vm10 ceshi]# rm ceshi
rm:是否删除普通空文件 "ceshi"?y
rm: 无法删除"ceshi": 不允许的操作
[root@vm10 ceshi]# echo 111 > ceshi
-bash: ceshi: 不允许的操作
[root@vm10 ceshi]# echo 111 >> ceshi
[root@vm10 ceshi]#

## 对文件加锁,只能读取
[root@vm10 ceshi]# chattr +i ceshi
[root@vm10 ceshi]# rm ceshi
rm:是否删除普通文件 "ceshi"?y
rm: 无法删除"ceshi": 不允许的操作
[root@vm10 ceshi]# echo 111 >> ceshi
-bash: ceshi: 权限不够
[root@vm10 ceshi]# cat ceshi
111

lsattr:查看文件的扩展属性

lsattr [选项] 文件或者目录

  • -R:递归查询
  • -a:显示所有文件的扩展属性
  • -d:显示目录的扩展属性
[root@vm10 home]# lsattr -d ceshi/
---------------- ceshi/
[root@vm10 home]# lsattr -R ceshi/
----ia---------- ceshi/ceshi

Linux 文件属性

在这里插入图片描述

  1. inode 号
  2. 文件类型
  3. 属主权限
  4. 属组权限
  5. 其他人权限
  6. 跟 selinux 有关
  7. 硬链接数目
  8. 属主
  9. 属组
  10. 文件/目录本身的大小
  11. 最后修改时间
  12. 文件/目录名称

Linux 文件种类

文件种类

  • 普通文件(-):纯文本、二进制文件、数据格式文件

  • 目录文件(d)

  • 字符设备(c)

  • 块设备文件(b)

  • 数据接口文件(s)

  • 符号链接文件(l)

  • 数据传送文件(p)

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值