RHCSA教程 第七章 控制对文件的访问

防火墙 semanage port ,
selinux semanage ...
软件app semanage boolean
文件系统权限 特殊权限 facl semanage fcontext

1.Linux文件权限简介

权限分类
r read
w write
x execute

2.Linux系统的权限表示

# ls -l test

 

-rw-r--r--. 1 stu1 class1 35 May 21 14:09 test
rw-r--r--   #中间9位是权限,逻辑分三组,所有者 所属组 其他人权限
stu1 所有者
class1 所属组

3.Linux系统的权限的作用

权限 对文件的影响 对目录的影响
r cat ls
w vim touch,rm,mkdir
x ./script cd

4.使用符号方式修改文件权限

对象
u(user) + (添加) r
g(group) - (减去) w
o(other) = (设置) x
a(all) s(SUID、SGID)
t(Sbit)

5.使用数字方式修改文件权限

rwx 8进制表示 数字表示
r-- 100 4
-w- 010 2
--x 001 1

6.文件权限设置实例chmod

语法:
chmod 权限 文件名
u g o a   + - =   r w x s t
例:
[root@node1 /]# cd /opt/
[root@node1 opt]# ls
[root@node1 opt]# touch test
[root@node1 opt]# ll test 
-rw-r--r--. 1 root root 0 Nov 24 04:55 test
[root@node1 opt]# chmod u+x test 
[root@node1 opt]# ll test 
-rwxr--r--. 1 root root 0 Nov 24 04:55 test

练习:文件权限修改

文件权限修改
[root@edug opt]# touch aa.txt
[root@edug opt]# ll aa.txt   #每次修改权限去自己检验查询

[root@edug opt]# chmod u+x aa.txt
[root@edug opt]# chmod u-rw aa.txt
[root@edug opt]# chmod u+r,g+w,o+x aa.txt
[root@edug opt]# chmod ug+rw aa.txt
[root@edug opt]# chmod ugo+rwx aa.txt   # chmod a+rwx , chmod a=rwx, ugo+rwx
[root@edug opt]# chmod a-rwx aa.txt
[root@edug opt]# chmod o=--- aa.txt     # o=-
[root@edug opt]# chmod u=r aa.txt
[root@edug opt]# chmod u=rw aa.txt
[root@edug opt]# chmod u=r,g=rw,o=x aa.txt
[root@edug opt]# chmod ugo=rwx aa.txt
[root@edug opt]# chmod a=r aa.txt

练习:数字修改方法

[root@edug opt]# mkdir dir1
[root@edug opt]# ll -d dir1
drwxr-xr-x. 2 root root 6 Nov 24 05:04 dir1
[root@edug opt]# chmod 775 dir1
[root@edug opt]# ll -d dir1
drwxrwxr-x. 2 root root 6 Nov 24 05:04 dir1

 

设置文件属主和属组 chown

chown

语法:
chown  所有者:所属组   文件名 
chown 该命令可以作用域文件、目录,修改时保证所有者的用户,及组都是存在的。
例:
chown user2:user2 newfile

练习:

[root@edug opt]# ll test
-rwxr--r--. 1 root root 0 Nov 24 04:55 test
[root@edug opt]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
​
[root@edug opt]# useradd harry
​
[root@edug opt]# chown student test;ll test
-rwxr--r--. 1 student root 0 Nov 24 04:55 test
​
[root@edugopt]# chown :harry test;ll test
-rwxr--r--. 1 student harry 0 Nov 24 04:55 test
​
[root@edug opt]# useradd sally
[root@edug opt]# chown sally:sally test ; ll test
-rwxr--r--. 1 sally sally 0 Nov 24 04:55 test

[root@edug opt]# ls
dir1  test
[root@edug opt]# touch dir1/test2
[root@edug opt]# ll -d dir1
drwxrwxr-x. 2 root root 19 Nov 24 05:15 dir1
[root@edug opt]# ll  dir1
total 0
-rw-r--r--. 1 root root 0 Nov 24 05:15 test2
[root@edug opt]# chown -R sally:sally dir1
[root@edug opt]# ll -d dir1
drwxrwxr-x. 2 sally sally 19 Nov 24 05:15 dir1
​
[root@edug opt]# ll dir1/test2 
-rw-r--r--. 1 sally sally 0 Nov 24 05:16 dir1/test2

 

 

7.文件默认权限 umask

系统默认定义权限对于文件666对于目录来说777

查看umask值方法
[root@servera /]# umask
0022

修改方法umask
[root@servera /]# umask 0002
修改完后,可以去文件和目录查看权限,看是否和之前不一样,看完改回来

永久生效
[root@servera /]# echo 'umask 0002' >> ~/.bash_profile
[root@servera /]# source ~/.bash_profile

练习:

文件默认权限666
umask后三位022
快捷方法:变成权限后相减
rw-rw-rw-  =  666  文件默认权限
---w--w-   =  022  umask值
------------------------------
rw-r--r--  =  644
​
文件默认权限是644
默认目录权限777
rwxrwxrwx  =  777  目录默认权限
----w--w-  =  022  umask值
------------------------------
rwxr-xr-x  =  755
​
​​
参考umask计算方法:https://www.cnblogs.com/wyllearning/p/16482006.html
​
要求文件权限结果 r--r--r--
rw-rw-rw- =   666  默认
xx            xxx  umask
-----------------------
r--r--r-- =    结果
​
​
rw-rw-rw- =   666  默认
r--r--r-- =    结果
______________________
-w--w--w-=     0222 
​

​
rwxrwxrwx =  777
r-xr-xr-x =  555
-----------------
-w--w--w- =  0222
​
​
umask 0222 

 

8.特殊权限

SUID  4 
通常设置在二进制可执行文件(命令)上,并具有执行权限的情况下。作用:设置了该权限的命令,被其他用户执行时,会临时获取文件所有者权限。
[student@clear ~]$ su - studnet
[student@clear ~]$ cat /etc/shadow   #普通用户无法查看/etc/shadow
[student@clear ~]$ su - root         #切换root身份
[root@clear ~]# chmod u+s /usr/bin/cat   #数字修改方式:chmod 4755 /usr/bin/cart
[root@clear ~]# ll /usr/bin/cat
-rwsr-xr-x. 1 root root 34512 Aug 13  2018 /usr/bin/cat
[student@clear ~]$ su - studnet
[student@clear ~]$ cat /etc/shadow #能够看见内容,临时获取拥有者权限

chmod 4755 /usr/bin/cat

SGID  2
该权限通常设置在`目录`上,设置了该权限的目录,在该目录中创建`子文件及目录`时会`继承`父目录所属组。
[root@clear ~]# cd /opt/
[root@clear opt]# ls
[root@clear opt]# mkdir dir1
[root@clear opt]# chown student:student dir1
[root@clear opt]# ll -d dir1
drwxr-xr-x. 2 student student 6 Nov 19 04:50 dir1
[root@clear opt]# touch dir1/root.txt
[root@clear opt]# ll dir1/root.txt
-rw-r--r--. 1 root root 0 Nov 19 04:51 dir1/root.txt
[root@clear opt]# 
[root@clear opt]# chmod g+s dir1
[root@clear opt]# ll -d dir1
drwxr-sr-x. 2 student student 22 Nov 19 04:51 dir1
[root@clear opt]# touch dir1/root1.txt
[root@clear opt]# ll dir1/root1.txt
-rw-r--r--. 1 root student 0 Nov 19 04:52 dir1/root1.txt

数字修改法: chmod 2755 dir1


SBIT(粘滞位) 1
该权限通常设置在目录上,设置了该权限的目录,其他用户在该目录中只能删除所有者是自己的文件。
[root@clear opt]# rm -rf *
[root@clear opt]# ls
[root@clear opt]# mkdir share
[root@clear opt]# chmod 777 share/
[root@clear opt]# id student
uid=1000(student) gid=1000(student) groups=1000(student),10(wheel)
[root@clear opt]# useradd tom
[root@clear opt]# id tom
uid=1005(tom) gid=1005(tom) groups=1005(tom)
[root@clear opt]# su - student
Last login: Sat Nov 19 04:46:47 EST 2022 on pts/0
[student@clear ~]$ touch /opt/share/student.txt
[student@clear ~]$ logout
[root@clear opt]# su - tom
[tom@clear ~]$ rm -f /opt/share/student.txt
[tom@clear ~]$ logout
[root@clear opt]# chmod 1777 /opt/share/
[root@clear opt]# ll -d /opt/share/
drwxrwxrwt. 2 root root 6 Nov 19 04:56 /opt/share/
[root@clear opt]# su - student
Last login: Sat Nov 19 04:55:24 EST 2022 on pts/0
[student@clear ~]$ touch /opt/share/student.txt.haha
[student@clear ~]$ logout
[root@clear opt]# su - tom
Last login: Sat Nov 19 04:55:38 EST 2022 on pts/0
[tom@clear ~]$ rm -f /opt/share/student.txt.haha
rm: cannot remove '/opt/share/student.txt.haha': Operation not permitted


check:
创建两个不同用户登录操作系统,进入dirt目录分别创建文件,尝试互相删除对方文件,结果应不能互相删除文件。

大S和小s区别,
执行权限位大S是,没有x
执行权限位小s是该位,有x

 

 

THE END