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
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