目录
Linux权限管理
1.linux如何知道对应文件的权限
判断权限的依据:
1.明确当前登录的用户是谁
2.当前用户和文件的关系
3.根据对应的关系找到权限位
# eg:
第一步: (环境准备)root用户在/tmp目录创建test.txt
[root@oldboyedu ~]#ll /tmp/
total 0
[root@oldboyedu ~]#touch /tmp/test.txt
查看文件属性
[root@oldboyedu ~]#ll /tmp/
total 0
-rw-r--r-- 1 root root 0 Jul 19 08:46 test.txt # test.txt对其他用户的权限为r--
第二步: 切换到oldboy用户登录操作系统
[root@oldboyedu ~]# su - oldboy
Last login: Wed Jul 19 08:39:41 CST 2023 on pts/1
第三步: 确定oldboy用户对test.txt的权限
[oldboy@oldboyedu ~]$ cd /tmp/
[oldboy@oldboyedu tmp]$ ll
total 0
-rw-r--r-- 1 root root 0 Jul 19 08:46 test.txt # oldboy用户为其他用户--->权限为r--
2.使用数字表示权限
r --- 4
w --- 2
x --- 1
3.chmod-修改文件权限
法一:chmod 用户符号符+/-/=权限 文件名
chmod | u g o a | +(加入) -(除去) =(设定) | r w x | 文件或目录 |
权限表示法一:
- r --- 可读
- w --- 可写
- x --- 可执行
修改符号:
- +:向权限范围增加权限代号所表示的权限
- -:向权限范围取消权限代号所表示的权限
- =:向权限范围赋予权限代号所表示的权限
用户符号:
- u:拥有者
- g:拥有者同组用
- o:其它用户
- a:所有用户
# 情况1:修改单个用户的权限
案例1.授权1.txt属主x权限
[root@oldboyedu ~]#touch 1.txt
[root@oldboyedu ~]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 19 08:55 1.txt
[root@oldboyedu ~]#chmod u+x 1.txt
[root@oldboyedu ~]#ll 1.txt
-rwxr--r-- 1 root root 0 Jul 19 08:55 1.txt
案例2.1.txt属主去掉x权限
[root@oldboyedu ~]#chmod u-x 1.txt
[root@oldboyedu ~]#ll 1.txt
-rw-r--r-- 1 root root 0 Jul 19 08:55 1.txt
案例3.给1.txt其他位置陌生用户授权w权限
[root@oldboyedu ~]#chmod o+w 1.txt
[root@oldboyedu ~]#ll 1.txt
-rw-r--rw- 1 root root 0 Jul 19 08:55 1.txt
案例4.给每个位置增加x权限
[root@oldboyedu ~]#chmod ugo+x 1.txt
[root@oldboyedu ~]#ll
total 0
-rwxr-xrwx 1 root root 0 Jul 19 08:55 1.txt
# 情况2:修改多个用户的权限(组合)
其他表示所有写法:
ugo 表示所有
+x 默认表示所有
a+x 表示所有
[root@oldboyedu ~]#chmod -x 1.txt
[root@oldboyedu ~]#ll 1.txt
-rw-r--rw- 1 root root 0 Jul 19 08:55 1.txt
[root@oldboyedu ~]#chmod a+x 1.txt
[root@oldboyedu ~]#ll
total 0
-rwxr-xrwx 1 root root 0 Jul 19 08:55 1.txt
去掉属组和陌生人的x权限
[root@oldboyedu ~]#chmod go-x 1.txt
[root@oldboyedu ~]#ll
total 0
-rwxr--rw- 1 root root 0 Jul 19 08:55 1.txt
等号= 为覆盖
[root@oldboyedu ~]#ll
total 0
-rw---x--- 1 root root 0 Jul 19 08:55 1.txt
drw------- 2 root root 19 Jul 19 09:03 oldboy
[root@oldboyedu ~]#chmod g=rwx 1.txt
[root@oldboyedu ~]#ll
total 0
-rw-rwx--- 1 root root 0 Jul 19 08:55 1.txt
drw------- 2 root root 19 Jul 19 09:03 oldboy
法二:chmod 数字 file
使用数字表示权限:
- r --- 4
- w --- 2
- x --- 1
重点掌握!!!
第二种修改权限的方式: 使用数字表达式修改 常用 必须掌握核心
[root@oldboyedu ~]## 授权为rw-r--r--
[root@oldboyedu ~]#chmod 644 1.txt
[root@oldboyedu ~]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 19 08:55 1.txt
案例2: 授权1.txt rw-------
[root@oldboyedu ~]#chmod 600 1.txt
[root@oldboyedu ~]#ll
total 0
-rw------- 1 root root 0 Jul 19 08:55 1.txt
案例3: 授权1.txt rwxr-xr-x
[root@oldboyedu ~]#chmod 755 1.txt
[root@oldboyedu ~]#ll
total 0
-rwxr-xr-x 1 root root 0 Jul 19 08:55 1.txt
案例4: 递归授权目录及目录以下所有文件为600
[root@oldboyedu ~]#chmod -R 600 ./*
[root@oldboyedu ~]#ll
total 0
-rw------- 1 root root 0 Jul 19 08:55 1.txt
drw------- 2 root root 19 Jul 19 09:03 oldboy
[root@oldboyedu ~]#ll oldboy/
total 0
-rw------- 1 root root 0 Jul 19 09:03 2.txt
4.chown-修改文件属主、属组
通过修改文件的属主、属组为特定的用户,就可以修改特定用户对该文件的权限!!!
---经常用于统一权限
1.语法结构
chown [–R] 属主名 文件名 chown [-R] 属主名:属组名 文件名2.参数
-R 递归更改文件属组,就是在更改某个目录文件的属组时,如果加上-R的参数,那么该目录下的所有文件的属组都会更改
5.rwx对于文件的作用
文件是实际含有数据的地方
- r 对于文件就是可读,相当于cat 查看文件内容
- w 对于文件就是可写,相当于echo >>
【注意】但是不代表可以删除该文件,删除一个文件的前提条件是对该文件所在的目录有写权限,才能删除该文件.
- x 对于文件就是可执行
【注意】如果只有x权限没有r权限,则无法执行文件(eg:一个脚本,无法查看,怎么知道执行的内容是什么)。
小结:
- r单独可以表示文件的可读 w和x单独是没有任何意义
- rw- 表示文件的最高权限 可读可写
- r-x 表示文件可以执行
- rwx 表示可读可写可执行(脚本文件需要rwx 普通文件只需要rw-)
- 系统默认创建的文件权限: rw-r--r-- 644
6.rwx对于目录的作用
目录主要的内容是记录文件名列表和子目录列表,而不是实际存放数据的地方。
- r 可读:相当于ls查看目录内容
【注意】当只有r没有x权限时,我们可以只能查看到文件名,但是无法详细查看文件属性
- w 可写:可以修改(内容),目录内使用touch、mkdir、rm等命令删除+创建+改名文件/子目录
- x 可执行:可以cd进入该目录
总结:
- r、w、x对于目录任意单个没有任何作用!!!
- r-x 对于目录含义 可以进去目录 可以正常查看所有文件 不能创建 不能删除 不能改名 (除了看啥都不能干)
- rwx 拥有最高权限 增删改查
- 系统默认的目录权限: rwxr-xr-x 755
7.系统控制权限umask
1.
- 系统默认创建的目录: 755
- 系统默认创建的文件: 644
都是由umask默认的值控制的文件权限
2.
- 最大目录权限: 777
- 文件文件权限: 666
3.
- 默认的目录权限: 由目录的最大权限减去umask值获得默认的属性
- 默认的文件权限: 由文件的最大权限减去umask值获得默认的权限
# eg1:
查看umask:
[root@oldboyedu ~]#umask
0022
目录:
777
-022
=755 rwxr-xr-x
文件:
666
-022
644 rw-r--r--
# eg2
修改umask值
[root@oldboyedu ~]#umask 044
目录:
777
-044
=733 rwx-wx-wx
文件:
666
-044
=622 rw--w--w-
[root@oldboyedu ~]#mkdir oldboy
[root@oldboyedu ~]#touch 1.txt
[root@oldboyedu ~]#ll
total 0
-rw--w--w- 1 root root 0 Jul 19 10:47 1.txt
drwx-wx-wx 2 root root 6 Jul 19 10:47 oldboy
注意: 如果umask值为奇数,文件权限则需要相减后在奇数位加1 目录不变
案例: umask 032
目录:
777
-032
=745 rwxr--r-x
文件:
666
-032
634
+010
=644 rw-r--r--
[root@oldboyedu ~]##目录 rwxr--r-x 文件 rw-r--r--
[root@oldboyedu ~]#umask 032
[root@oldboyedu ~]#mkdir 1
[root@oldboyedu ~]#touch 2
[root@oldboyedu ~]#ll
total 0
drwxr--r-x 2 root root 6 Jul 19 10:51 1
-rw--w--w- 1 root root 0 Jul 19 10:47 1.txt
-rw-r--r-- 1 root root 0 Jul 19 10:51 2
笔试题: 创建的目录权限为111 文件权限为000 请问umask值多少
666
8.隐藏权限位
- a (append 只能追加) 如果设置了这个权限 只能追加 不能删除 不能修改
- i(immutable 无敌) 无法修改 无法删除
查看隐藏权限: lsattr
[root@oldboyedu ~]#lsattr 1.txt
---------------- 1.txt
增加a隐藏权限
[root@oldboyedu ~]#chattr +a 1.txt
[root@oldboyedu ~]#ll 1.txt
-rw-r--r-- 1 root root 0 Jul 19 11:14 1.txt
[root@oldboyedu ~]#lsattr 1.txt
-----a---------- 1.txt
当操作文件没有权限会生成临时文件:
[root@oldboyedu ~]#ll
total 0
-rw-r--r-- 1 root root 0 Jul 19 11:14 1.txt
-rw-r--r-- 1 root root 0 Jul 19 11:15 1.txt~
-rw-r--r-- 1 root root 0 Jul 19 11:16 1.txz~
取消a权限
[root@oldboyedu ~]#chattr -a 1.txt
[root@oldboyedu ~]#lsattr 1.txt
---------------- 1.txt
增加i权限
[root@oldboyedu ~]#chattr +i 1.txt
[root@oldboyedu ~]#lsattr 1.txt
----i----------- 1.txt
注意: 在企业中操作文件没有权限 看文件和目录权限外一定要注意查看隐藏权限和第三方安全软件
注意: 在企业中操作文件没有权限 看文件和目录权限外一定要注意查看隐藏权限和第三方安全软件
9.特殊权限位置
s 4 setuid 作用:运行某一个命令的时候相当于这个命令的所有者(root)
g 2 作用:运行某一个命令的时候相当于这个命令的属组的权限(root)
t 1 粘滞位
案例:
使用root用户在/etc下创建test.txt
然后使用oldboy用户登录系统 删除test.txt
[root@oldboyedu ~]#chmod u+s /usr/bin/rm
[root@oldboyedu ~]#ll /usr/bin/rm
-rwsr-xr-x. 1 root root 62872 Aug 20 2019 /usr/bin/rm
在任意用户下执行rm命令都相当于是root执行
粘滞位:
[root@oldboyedu ~]#ll -d /oldboyedu/
drwxrwxrwx 2 root root 61 Jul 19 11:33 /oldboyedu/
[root@oldboyedu ~]#chmod 1777 /oldboyedu/
[root@oldboyedu ~]#stat /oldboyedu/
任意用户可以创建管理自己的文件,粘滞位控制不能删除其他用户的文件
知识点小结
重点:
1.掌握当前用户对应文件的权限
2.rwx对应的数字 r4 w2 x1
3.授权 掌握数字授权
chmod 644 file
chmod 600 file
chmod -R 600 /dir
ugo+ ugo- ugo= a+ a- +x -x
4.能够独立解决权限拒绝问题
rwx文件作用 rwx目录作用
5.隐藏权限位 a i 做好笔记
chattr +i 1.txt
lsattr 1.txt
6.特殊权限位 了解