文件系统权限的管理(包括特殊权限)

一、文件的权限

r读权限

w写权限

x执行权限,此文件必须可执行,属于目录可访问的最小权限

rwx/所有者? ? ? rwx/所属组? ? ? ? ?rwx? /? other

注意:用户的最终权限,是从左向右进行顺序匹配,即,所有者,所属组,其他人,一旦匹配权限立即

生效,不再向右查看其权限

chmod用法:

模式法:

MODE:who opt permission

who:u,g,o,a

opt:+,-,=

permission:r,w,x

修改指定一类用户的所有权限

u= g= o= ug= a= u=,g=

修改指定一类用户某个或某个权限

u+ u- g+ g- o+ o- a+ a- + -

-R: 递归修改权限

数字法:

r? | w|? ? x

100 |? 010? | 001?

4? |? 2? ?| 1?

?

?

?

二、设置文件的所有者chown

chown 命令可以修改文件的属主,也可以修改文件属组

chown [OPTION]... [OWNER][:[GROUP]] FILE...

chown [OPTION]... --reference=RFILE FILE...

用法说明:

OWNER ? #只修改所有者

OWNER:GROUP #同时修改所有者和属组

:GROUP ? #只修改属组,冒号也可用 . 替换

--reference=RFILE ?#参考指定的的属性,来修改 ?

-R #递归,此选项慎用,非常危险!

?

三、新建文件权限的默认属性

umask 的值可以用来保留在创建文件权限

实现方式:

新建文件的默认权限: 666-umask,如果所得结果某位存在执行(奇数)权限,则将其权限+1,偶

数不变

新建目录的默认权限: 777-umask

非特权用户umask默认是 002

root的umask 默认是 022

如果永久生效:加入bashrc

?

四、文件的特殊权限

任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限

启动为进程之后,其进程的属主为原程序文件的属主

SUID只对二进制可执行程序有效

SUID设置在目录上无意义

文件上:

[wang@centos7 //]$cat /etc/shadow
cat: /etc/shadow: Permission denied
[wang@centos7 //]$su?
Password:?
[root@centos7 //]#which cat
/usr/bin/cat
[root@centos7 //]#chmod u+s /usr/bin/cat
[root@centos7 //]#
[root@centos7 //]#
[root@centos7 //]#
[root@centos7 //]#exit
exit
[wang@centos7 //]$cat /etc/shadow? ? //成功查看

?

数字法;

u是4

g是2

t是1

?

文件系统权限的管理(包括特殊权限)

?

目录上:

[root@centos7 date]#ll ?-d shiyan2
drwxr-xr-x. 2 root root 6 Jul 28 23:06 shiyan2
[root@centos7 date]#touch shiyan2/1.w
[root@centos7 date]#ll ?shiyan2/1.w?
-rw-r--r--. 1 root root 0 Jul 28 23:07 shiyan2/1.w
[root@centos7 date]#chmod g+s shiyan2
[root@centos7 date]#chown ?:wang shiyan2
[root@centos7 date]#ll -d shiyan2
drwxr-sr-x. 2 root wang 17 Jul 28 23:07 shiyan2
[root@centos7 date]#touch shiyan2/w.2
[root@centos7 date]#ll shiyan2/
total 0
-rw-r--r--. 1 root root 0 Jul 28 23:07 1.w
-rw-r--r--. 1 root wang 0 Jul 28 23:08 w.2

other上:文件中的t权限

文件系统权限的管理(包括特殊权限)

只能删除或者修改自己属主的文件?

chmod o+t DIR...

?

?

总结:

suid file? ?#当file是程序并且运行时,自动继承所有者的权限

sgid file? #当file是程序并且运行时,自动继承所诉组的权限

sticky dir? #只能删除或者修改自己属主的文件?

sgid dir? ?#创建文件时,所属组是目录的所属组

?

?

五、设置文件的特殊权限(包括root)

设置文件的特殊属性,可以访问 root 用户误操作删除或修改文件

?

chattr +i? ?#不能删除,改名,更改

?

chattr +a? # 只能追加内容,不能删除,改名

lsattr? ?# 查看特定属性

[root@centos8 data]#chattr +i dir

[root@centos8 data]#lsattr dir

------------------ dir/fstab

------------------ dir/f1.txt

[root@centos8 data]#lsattr *

------------------ dir/fstab

------------------ dir/f1.txt

------------------ f11.txt

------------------ f22.txt

[root@centos8 data]#ll

drwxr-xr-x 2 root root ?33 Dec 18 14:32 dir

-rw-r--r-- 1 root root 719 Dec 18 14:30 f11.txt

-rw-r--r-- 1 root root ? 6 Dec 18 14:30 f22.txt

[root@centos8 data]#rm -rf dir

rm: cannot remove ‘dir/fstab‘: Operation not permitted

rm: cannot remove ‘dir/f1.txt‘: Operation not permitted

[root@centos8 data]#lsattr

------------------ ./f11.txt

------------------ ./f22.txt

----i------------- ./dir

[root@centos8 data]#chattr -i dir

?

六、文件的访问控制列表acl

?

getfacl? ? ? ?file? ?#查看文件的acl权限

setfacl? ? ? ? ? ? ? ? ? #可以设置ACL权限

]#setfacl -m u:wang:- f1.txt? ?#给wang这个账号设置权限

? ? ? ? ? ? ? ? -x? ? ? ? ? ? ? ? ? ? ? #删除

? ? ? ? ? ? ? ? ?-b? ? ? ? ? ? ? ? ? ? #全部删除

? ? ? ? ? ? ? ? ? -R? ? ? ? ? ? ? ? ? #递归增加

?

? ? ? ? ? ? ?

?

?

?

?

?

上一篇:库函数工程模板的建立


下一篇:容器大小的改变以及容器操作可能使迭代器失效、vector对象的容量变化