【笔记】权限 & 修改文件权限详解 & 修改目录文件详解 & umask

权限体系

RWX Linux操作系统如何知道当前系统用户(我)对某个文件或者目录有什么权限?
R 可读
W 可写
X 可执行

  1. 查看当前文件的属性(通过属性可以看到权限)
[root@ahui ~]#ll
-rw-r--r-- 1 root   root    0 May 20 10:57 2.txt
  1. 你是谁(当前登陆系统的用户是谁)
[root@ahui ~]#whoami 
root
  1. 通过对应关系 找到2.txt对应的权限
  2. 找对对应关系 找到匹配的对应关系位置
    属主 rw- 前三位
    属组 r-- 中间三位
    其他 r-- 后三位

当前root用户对于2.txt文件的权限为 前三位 rw-

root管理员对于所有的普通文件拥有最高权限

[root@ahui ~]#ll 2.txt 
-rw-r--r-- 1 b13k b13k 0 May 20 10:57 2.txt

b13k用户对应3.txt权限

[b13k@ahui ~]$ll /tmp/3.txt 
-rw-r--r-- 1 root root 0 May 23 08:51 /tmp/3.txt
  1. 登陆用户为b13k
  2. 找对对应的权限位置 3.txt b13k用户不属于属主 也不属于属组 所以为其他用户
  3. 其他用户对应的权限位置后三位 r–(只读 cat less more)

修改权限

所有位置表示方式:
- 第一种: ugo
- 第二种: a 表示all
- 第三种: 直接写权限表示所有 chmod +x b13k.txt

第一种修改权限方式: ugo方式 通过ugo对文件进行授权
授权什么样的权限: r 可读 w 可写 x 可执行

ugo授权
- u 表示 user 属主
- g 表示 group 属组
- o 表示 other 其他用户

语法格式:
chmod u+x 文件 # 给文件属主授权x 执行权限
chmod u-x 文件 # 文件文件属主减去x执行权限

x权限的意义: 追加一个命令到b13k.txt

[root@ahui ~]#echo pwd > b13k.txt 

执行b13k.txt

[root@ahui ~]#cat b13k.txt 
pwd
\# ./ 脚本的执行方式之一 通过当前路径或者绝对路径执行
绝对路径执行:
/root/b13k.txt
相对路径执行:
./b13k.txt

执行默认都是权限拒绝

[root@ahui ~]#/root/b13k.txt
-bash: /root/b13k.txt: Permission denied
[root@ahui ~]#./b13k.txt
-bash: ./b13k.txt: Permission denied
注意: 如果文件的属主为root 文件的权限中属主没有 x  则root用户也无法通过路径方式执行脚本

案例1: 给b13k.txt属主授权x执行权限

x权限: 执行的命令使用 文件中有命令 x权限才有意义
[root@ahui ~]#touch b13k.txt
[root@ahui ~]#ll
total 0
-rw-r--r-- 1 root root 0 May 23 09:15 b13k.txt
[root@ahui ~]#chmod u+x b13k.txt 
[root@ahui ~]#ll
total 0
-rwxr--r-- 1 root root 0 May 23 09:15 b13k.txt

授权x执行权限 在执行脚本

[root@ahui ~]#ll 
total 4
-rwxr--r-- 1 root root 4 May 23 09:17 b13k.txt
[root@ahui ~]#/root/b13k.txt 
/root
[root@ahui ~]#./b13k.txt 
/root

案例2: 给b13k.txt 属主减去x执行权限

[root@ahui ~]#chmod u-x b13k.txt 
[root@ahui ~]#ll
total 0
-rw-r--r-- 1 root root 0 May 23 09:15 b13k.txt

案例3: 属组添加 w权限

[root@ahui ~]#chmod g+w b13k.txt 
[root@ahui ~]#ll
total 4
-rwxrw-r-- 1 root root 4 May 23 09:17 b13k.txt

案例4: 同时去掉属主属组的w权限

[root@ahui ~]#chmod ug-w b13k.txt 
[root@ahui ~]#ll
total 4
-r-xr--r-- 1 root root 4 May 23 09:17 b13k.txt

案例5: 同时给ugo+x执行权限

[root@ahui ~]#chmod ugo+x b13k.txt 
[root@ahui ~]#ll
total 4
-r-xr-xr-x 1 root root 4 May 23 09:17 b13k.txt

案例6: 所有位取消x权限

[root@ahui ~]#chmod ugo-x b13k.txt 
[root@ahui ~]#ll
total 4
-r--r--r-- 1 root root 4 May 23 09:17 b13k.txt

案例7: 通过a授权

[root@ahui ~]#ll
total 4
-r--r--r-- 1 root root 4 May 23 09:17 b13k.txt
[root@ahui ~]#chmod a+w b13k.txt 
[root@ahui ~]#ll
total 4
-rw-rw-rw- 1 root root 4 May 23 09:17 b13k.txt

取消a权限

[root@ahui ~]#chmod a-w b13k.txt 
[root@ahui ~]#ll
total 4
-r--r--r-- 1 root root 4 May 23 09:17 b13k.txt

案例8: 直接授权

[root@ahui ~]#ll
total 4
-r--r--r-- 1 root root 4 May 23 09:17 b13k.txt
[root@ahui ~]#chmod +x b13k.txt 
[root@ahui ~]#ll
total 4
-r-xr-xr-x 1 root root 4 May 23 09:17 b13k.txt

授权rc.local 属主拥有执行权限 开机自动运行里面的命令
[root@ahui ~]#chmod u+x /etc/rc.d/rc.local

案例9: = 授权

先清除原来的权限 在授权新的权限(覆盖)

[root@ahui ~]#ll
total 4
-r-xr-xr-x 1 root root 4 May 23 09:17 b13k.txt
[root@ahui ~]#chmod a=r-- b13k.txt 
[root@ahui ~]#ll
total 4
-r--r--r-- 1 root root 4 May 23 09:17 b13k.txt

通过数字的方式进行授权(权限位对应数字)

r=4可读、w=2可写、x=1可执行

rwx  = 4+2+1 =   7  可读可写可执行
rw-  =  4+2  =   6	可读可写
r-x  =  4+1  =   5	可读可执行
r--  =   4   =   4	可读
-wx  =  2+1  =   3	可写可执行
-w-  =   2   =   2	可写
--x  =   1   =   1	可执行
---  =   0   =   0	无任何权限

案例1: 授权b13k.txt 权限为 rw-r-xr-x 权限

[root@ahui ~]#chmod 655 b13k.txt 
[root@ahui ~]#ll
total 4
-rw-r-xr-x 1 root root 4 May 23 09:17 b13k.txt

案例2: 授权b13k.txt 权限为 rwxr–r-- 权限(744)

[root@ahui ~]#chmod 744 b13k.txt 
[root@ahui ~]#ll
total 4
-rwxr--r-- 1 root root 4 May 23 09:17 b13k.txt

企业中常用的授权方式:

注意: 在企业中很少修改默认权限 
      在企业中修改的最多的属主属组
	  遇到脚本的时候进行增加x执行权限
[root@ahui ~]#chmod +x b13k.txt 
[root@ahui ~]#ll
total 4
-rwxr-xr-x 1 root root 4 May 23 09:17 b13k.txt
[root@ahui ~]#chmod 644 b13k.txt 
[root@ahui ~]#ll
total 4
-rw-r--r-- 1 root root 4 May 23 09:17 b13k.txt
[root@ahui ~]#chmod u+x b13k.txt 
[root@ahui ~]#ll
total 4
-rwxr--r-- 1 root root 4 May 23 09:17 b13k.txt

案例: 授权b13k.txt文件为 rw------- 权限 600

[root@ahui ~]#chmod 600 b13k.txt 
[root@ahui ~]#ll
total 4
-rw------- 1 root root 4 May 23 09:17 b13k.txt

案例: 递归修改权限

[root@ahui ~]#mkdir test
[root@ahui ~]#touch test/{1..3}.txt
[root@ahui ~]#chmod -R 777 test/
   注意: chmod 修改权限的     chmod 644            file 
	  	chown 修改属主属组   chown b13k.b13k  file 

对于文件RWX的具体作用:

环境准备:
[root@ahui ~ ]# mkdir /b13k
[root@ahui ~ ]# cd /b13k
[root@ahui ~ ]# echo pwd > b13k.txt

授权b13k.txt 属主属组 为b13k用户

[root@ahui /b13k]#chown b13k.b13k b13k.txt 
[root@ahui /b13k]#ll
total 4
-rw-r--r-- 1 b13k b13k 4 May 23 09:59 b13k.txt

打开两个窗口:
第一个窗口为root用户 用来做授权使用
第二个窗口为b13k用户 用来验证权限使用

第二个窗口切换到b13k用户

[root@ahui ~]#su - b13k
Last login: Mon May 23 09:56:43 CST 2022 on pts/0

验证: r对于文件的作用

授权b13k.txt的属主 拥有r权限

[root@ahui /b13k]#chmod u=r b13k.txt 
[root@ahui /b13k]#ll
total 4
-r--r--r-- 1 b13k b13k 4 May 23 09:59 b13k.txt

r对于文件的作用:

  1. 可读 拥有查看的权限
  2. 默认对文件没有写入权限vim提示文件只读 但是我是文件的所有者 可以强制写入 wq!
  3. 不能执行
  4. 无法echo写入

vim和echo有区别
vim打开文件看到里面的内容写入
echo不打开文件 不需要看到内容 直接追加

总结: r权限对于文件 可以查看

验证: w对于文件的作用

授权

[root@ahui /b13k]#ll
total 4
-r--r--r-- 1 b13k b13k 10 May 23 10:09 b13k.txt
[root@ahui /b13k]#chmod u=w b13k.txt 
[root@ahui /b13k]#ll
total 4
--w-r--r-- 1 b13k b13k 10 May 23 10:09 b13k.txt

验证

[b13k@ahui /b13k]$ll
total 4
--w-r--r-- 1 b13k b13k 10 May 23 10:09 b13k.txt
[b13k@ahui /b13k]$cat b13k.txt 
cat: b13k.txt: Permission denied
[b13k@ahui /b13k]$vim b13k.txt 
[b13k@ahui /b13k]$echo ls >> b13k.txt 

[b13k@ahui /b13k]$./b13k.txt#执行文件
-bash: ./b13k.txt: Permission denied
  1. 无法查看
  2. 无法通过vim写入内容
  3. 通过echo追加内容
  4. 不能执行

小结: w对于文件作用 只能echo追加
如果我想对文件有正常修改和写入的功能必须: rw配合

验证x权限对于文件的作用:

授权

[root@ahui /b13k]#chmod u=x b13k.txt 
[root@ahui /b13k]#ll
total 4
---xr--r-- 1 b13k b13k 13 May 23 10:16 b13k.txt

验证

[b13k@ahui /b13k]$ll
total 4
---xr--r-- 1 b13k b13k 13 May 23 10:16 b13k.txt
[b13k@ahui /b13k]$cat b13k.txt 
cat: b13k.txt: Permission denied
[b13k@ahui /b13k]$vim b13k.txt 
[b13k@ahui /b13k]$echo pwd >> b13k.txt 
-bash: b13k.txt: Permission denied
[b13k@ahui /b13k]$./b13k.txt
bash: ./b13k.txt: Permission denied

小结: 只有x权限对于文件没有任何作用

拥有执行权限必须 r和x配合 不需要w权限

[root@ahui /b13k]#chmod u=rx b13k.txt 
[root@ahui /b13k]#ll
total 4
-r-xr--r-- 1 b13k b13k 13 May 23 10:16 b13k.txt

[b13k@ahui /b13k]$ll
total 4
-r-xr--r-- 1 b13k b13k 13 May 23 10:16 b13k.txt
[b13k@ahui /b13k]$cat b13k.txt 
pwd
aaaaa
ls
[b13k@ahui /b13k]$./b13k.txt
/b13k
./b13k.txt: line 2: aaaaa: command not found
b13k.txt

对于目录RWX的具体作用:

对于我们是否能够删除文件 看的不是文件权限 而是目录权限!!!

准备:修改目录属主属组为b13k

[root@ahui /b13k]#ll -d /b13k
drwxr-xr-x 2 root root 24 May 23 09:59 /b13k
[root@ahui /b13k]#chown -R b13k.b13k /b13k/
[root@ahui /b13k]#ll -d /b13k/
drwxr-xr-x 2 b13k b13k 24 May 23 09:59 /b13k/
[root@ahui /b13k]#touch {1..3}.txt
[root@ahui /b13k]#chown b13k.b13k *.txt
[root@ahui /b13k]#ll
total 4
-rw-r--r-- 1 b13k b13k  0 May 23 10:38 1.txt
-rw-r--r-- 1 b13k b13k  0 May 23 10:38 2.txt
-rw-r--r-- 1 b13k b13k  0 May 23 10:38 3.txt
-rw-r--r-- 1 b13k b13k 13 May 23 10:16 b13k.txt

r权限对于目录的作用:

修改目录的属组为r权限

[root@ahui /b13k]#chmod u=r ../b13k/
[root@ahui /b13k]#ll -d /b13k
dr--r-xr-x 2 b13k b13k 24 May 23 09:59 /b13k

验证:
对于b13k用户权限位对应前三位 r–

[b13k@ahui ~]$ll -d /b13k
dr--r-xr-x 2 b13k b13k 63 May 23 10:38 /b13k

[b13k@ahui ~]$cd b13k/
-bash: cd: b13k/: Permission denied

[b13k@ahui ~]$ll b13k
ls: cannot access b13k/1.txt: Permission denied
ls: cannot access b13k/2.txt: Permission denied
ls: cannot access b13k/3.txt: Permission denied
total 0
-????????? ? ? ? ?            ? 1.txt
-????????? ? ? ? ?            ? 2.txt
-????????? ? ? ? ?            ? 3.txt

[b13k@ahui ~]$touch b13k/4.txt
touch: cannot touch ‘b13k/4.txt’: Permission denied

[[b13k@ahui ~]$rm -f b13k/1.txt 
rm: cannot remove ‘b13k/1.txt’: Permission denied

小结:
r 权限对于目录作用: 只能看文件名称 其他啥都干不了

  1. 无法进入目录
  2. 可以显示文件名称 但是无法显示属性信息
    a. 文件名称存储在上级目录中
    b. 文件属性信息存储到inode中
  3. 无法创建文件
  4. 无法查看文件内容
  5. 无法查看

w对于目录的作用:

修改权限

[root@ahui /]#chmod u=w b13k
[root@ahui /]#ll -d b13k/
d-w-r-xr-x 2 b13k b13k 63 May 23 10:44 b13k/

验证:

[b13k@ahui ~]$cd /b13k/
-bash: cd: /b13k/: Permission denied

[b13k@ahui ~]$ll /b13k/
ls: cannot open directory /b13k/: Permission denied

[b13k@ahui ~]$touch /b13k/test.txt
touch: cannot touch ‘/b13k/test.txt’: Permission denied

[b13k@ahui ~]$rm -rf /b13k/2.txt
rm: cannot remove ‘/b13k/2.txt’: Permission denied

w权限对于目录的作用: 啥都不能干

  1. 无法cd到目录
  2. 无法查看目录下的文件信息
  3. 无法创建文件
  4. 无法删除文件

x权限对于目录的作用

修改权限:

[root@ahui /]#chmod u=x b13k/
[root@ahui /]#ll -d b13k/
d--xr-xr-x 2 b13k b13k 63 May 23 10:44 b13k/

验证x权限:

[b13k@ahui ~]$cd /b13k/
[b13k@ahui /b13k]$

[b13k@ahui ~]$ll b13k
ls: cannot open directory b13k: Permission denied

[b13k@ahui ~]$touch b13k/4.txt
touch: cannot touch ‘b13k/4.txt’: Permission denied

[b13k@ahui ~]$rm -f b13k/1.txt 
rm: cannot remove ‘b13k/1.txt’: Permission denied

x权限对于目录的作用: 可以进入目录

  1. 可以进入到目录
  2. 无法查看里面的文件信息
  3. 无法创建文件
  4. 无法删除文件

umask:

控制默认创建文件和目录的权限(在企业中禁止修改!!!)

  1. 默认创建文件的权限644
[root@ahui ~]#touch test.txt
[root@ahui ~]#ll
total 0
-rw-r--r-- 1 root root 0 May 23 11:45 test.txt
  1. 默认创建目录的权限755
[root@ahui ~]#mkdir b13k
[root@ahui ~]#ll
total 0
drwxr-xr-x 2 root root 6 May 23 11:45 b13k

注意: 在企业中一定把目录权限和文件权限控制成755和644

默认的UMASK值: 022

[root@ahui ~]#umask
0022

文件的默认权限: 由文件的最高权限减去默认的umask值
文件的最高权限: 666
umask: 022

666 - 022 = 644

目录的默认权限: 由目录的最高权限减去默认的umask值
目录的最高权限: rwx 777
777 - 022 = 755

修改umask值:

[root@ahui ~]#umask 044
[root@ahui ~]#umask
0044

创建文件默认的权限: 666-044=622 rw–w–w-
创建目录默认的权限: 777-044=733 rwx-wx-wx

[root@ahui ~]#touch test.txt 
[root@ahui ~]#mkdir b13k
[root@ahui ~]#ll
total 0
drwx-wx-wx 2 root root 6 May 23 11:52 b13k
-rw--w--w- 1 root root 0 May 23 11:52 test.txt

案例:修改umask值为032:

[root@ahui ~]#umask 032
[root@ahui ~]#umask
0032

创建文件默认的权限: 666-032=634 rw–wxr–
创建目录默认的权限: 777-032=745 rwxr–r-x

[root@ahui ~]#rm -rf *
[root@ahui ~]#touch test.txt
[root@ahui ~]#mkdir b13k
[root@ahui ~]#ll
total 0
drwxr--r-x 2 root root 6 May 23 11:56 b13k
-rw-r--r-- 1 root root 0 May 23 11:56 test.txt

注意事项: 如果umask值有奇数位 文件则相减后在奇数上加1 (目录不需要加)
666 - 032 = 634 + 010 = 644

案例: 默认的创建文件权限是000 目录权限为111 请问umask值是多少

[root@ahui ~]#umask 666
[root@ahui ~]#touch test.txt
[root@ahui ~]#mkdir b13k
[root@ahui ~]#ll
total 0
d--x--x--x 2 root root 6 May 23 12:02 b13k
---------- 1 root root 0 May 23 12:02 test.txt

案例:umask值为555权限(文件与目录全部只有可写权限)

[root@ahui ~]#umask 555
[root@ahui ~]#touch test.txt
[root@ahui ~]#ll
total 0
--w--w--w- 1 root root 0 May 23 12:03 test.txt
[root@ahui ~]#mkdir b13k
[root@ahui ~]#ll
total 0
d-w--w--w- 2 root root 6 May 23 12:03 b13k
--w--w--w- 1 root root 0 May 23 12:03 test.txt
系统是如何识别是字符串文件还是脚本的啊,还是说只要是文件他默认最高权限就是666?
系统没有办法区分脚本还是普通文件 linux一切皆文件
我们自己区分的 如果文件中是命令 则是脚本文件
如果文件中是普通字符串 则是普通文本文档

小结:

  1. 权限体系

    • r 可读
    • w 可写
    • x 可执行
  2. 修改权限
    所有位置表示方式:
    - 第一种: ugo (user 属主、 group 属组、other 其他用户)
    - 第二种: a 表示all
    - 第三种: 直接写权限表示所有 chmod +x b13k.txt

  3. 权限位对应数字
    r=4可读、w=2可写、x=1可执行

  4. rwx对于文件的作用:
    只有r权限 文件可以查看
    只有w权限 文件只能echo追加
    只有x权限 什么都不可以操作

    正常写入和修改文件需要 rw 权限
    正常执行文件 rx 权限
    写入修改可执行 rwx权限

    对于普通文本文档 rw 就是最高权限 读写修改(不需要执行权限 因为文件中都是普通字符串 而不是命令)
    对于脚本文件 rwx 为最高权限 读写修改 还可以执行里面的命令

  5. rwx对于目录的作用
    只有r 只能看文件名称
    只有w 啥都不能干
    只有x 啥都不能干

    rw 组合对于目录 没有任何意义
    r-x组合对于目录 能进入目录能正常查看文件信息和文件内容
    r-x组合表示用户能进入到目录下 可以正常查看文件的属性信息(但是不决定用户是否能对文件用户读写权限)
    rwx组合表示属主拥有 增删改查功能

    目录拥有r-x权限 用户可读
    1) 表示下面的所有文件任意用户可读(默认正确的)
    2) 普通用户需要文件权限的对应关系
    linux系统默认的普通文件 rw-r–r-- 644权限 其他用户可读

  6. umask
    文件的默认权限: 由文件的最高权限减去默认的umask值

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值