Linux没有建文件权限,Linux之下的文件权限

文件的属性

d27055643da6b64d028a3db05d5c8705.png

Linux下的文件类型

-:普通文件

d: 目录文件

b: 块设备

c: 字符设备

l: 符号链接文件

p: 管道文件pipe

s: 套接字文件socket

……

26a8f1a1c19135f714afe9aafa99cc26.png

1b53d76f4d59b24da89aebe26b55b895.png

在文件权限中,一共有十字符,第一个字符为文件的类型。接下来的字符分为三组,分别是文件所有者、所属组、其他人。

每一组分别由rwx 三个参数组合。其中,r代表可读(read)、w代表可写(write)、x代表可执行(execute)

这三个权限的位置不会改变,如果没有权限,就会出现减号-而已

> 文件所有者:由于Linux是个多人多任务的系统,每个人的都有自己的隐私,总不希望被别人看到吧!文件所有者的角色显得非常重要了

> 所属组:是多个用户的集合**

> 其他人:不是所有者,又没有加入这个 组里的成员。

Linux下的权限管理

文件的权限

对于二进制文件来说,r和w没有任何意义,但x是非常危险的

对于普通文件来说:文件对应的是文件的内容。

r只能读取文件内容。也能复制文件的内容,复制到的目标目录必须有wx的权限。

w:能编辑文件内容。删文件,移动、改名、新建文件是由它所在的目录决定的。是由目录的wx权限来决定的(因为目录存的是文件的列表结构和inode号)

x:是对文件的执行。x对文件来说是非常危险的,特别是对于可执行程序的文件,对文本文件毫无意义。

目录的权限

对目录来说:对应的是文件名的列表

r:能读取目录内的文件列表,但无法读取文件属性。

w:可以mv,cp,rm,mkdir,touch与该目录下的文件名异动有关,前提要有x权限。

x:能否进入该目录成为工作目录,cd

有w无x:是无法删除、移动、改文件

X:只给目录x权限,不给文件x权限,如果文件本身有x权限 ,那同样会给。

权限获取的顺序

获取权限的顺序:先看你是不是所有者,再看你是不是所属组,最后看你是不是其他人。如果是其中的一类人,那后面的不会去看。

对普通用户来说,没有权限是不能访问资源的

读写权限对root用户不受限制。但x权限受控制。

需要注意的是:对root用户来说,如果自己没有x权限。只要权限后面的几类人带有x权限,root就能执行。而普通用户不行

文件的所有者的所属组

修改文件的属主:chown

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

用法:

OWNER

OWNER:GROUP

命令中的冒号可用.替换

-R: 递归

修改文件的属组:chgrp

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

-R 递归

普通用户是可能修改自己的改自己的改组的,前提是自己必须在这个组里。

修改文件的权限:chmod

chmod [OPTION]... OCTAL-MODE FILE...

-R: 递归修改权限

chmod [OPTION]... MODE[,MODE]... FILE...

MODE:

修改一类用户的所有权限:

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

修改一类用户某位或某些位权限

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

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

参考RFILE文件的权限,将FILE的修改为同RFILE。只改变文件的权限。

上面所提的权限在Linux通用的传统系统EXT系列和Centos 7上的xfs文件系统才支持,权限的支不支持不是Linux说了算,而是由文件系统说了算。

新建文件和目录的默认权限与umask

>root用户的默认umask 为022

>普通用户的默认umask为002

umask 可以拿掉一些权限,因此,适当的定义 umask 有助于系统的安全, 因为他可以用来建立默认的目录或文件的权限。

对目录来说:

default=777-umask

对文件来说:

default =666-umask 再观察结果。

如是有基数们,基数加1。是偶数数不变

非特权用户umask是 002

root的umask 是 022

umask: 查看

umask #: 设定

umask 002

umask –S 模式方式显示

umask –p 输出可被调用

全局设置: /etc/bashrc 用户设置:~/.bashrc

Linux系统上文件的特殊权限

SUID, SGID, Sticky

三种常用权限:r, w, x user, group, other

安全上下文

前提:进程有属主和属组;文件有属主和属组

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

(2) 启动为进程之后,其进程的属主为发起者,进程的属组为发起者所属的组

(3) 进程访问文件时的权限,取决于进程的发起者

(a) 进程的发起者,同文件的属主:则应用文件属主权限

(b) 进程的发起者,属于文件属组;则应用文件属组权限

(c) 应用文件“其它”权限

SUID: user,占据属主的执行权限位

s: 属主拥有x权限

S:属主没有x权限

SUID:用数字4表示。

只适合于二进制程序上,继承于所有者的权限。

SGID: group,占据属组的执行权限位

s: group拥有x权限

S:group没有x权限

SGID:用数字2表示。

1)继承二进制程序所属组的权限

2)作用于目录,此目录新建的文件继承目录的所属组.

Sticky: other,占据other的执行权限位

t: other拥有x权限

T:other没有x权限

Sticky:用数字1表示

sticky:作用于目录,此目录的文件只能被所有者和root删除

针对普通用户来说,在此目录下,不能覆盖别人的文件。要想覆盖必须在这个文件所属的组或者有别人的文件w权限才行。

ACL 访问灵活的权限管理

设置ACL权限:setfacl

查看ACL权限:getfacl

语法:setfacl [-bkRd] [-m|-x acl 参数] 目标文件名

选项与参数:

-m:设置后续的acl权限,不可与-x一起使用

-M:用文件批量设置acl权限

-x: 删除后续的acl权限,不可与-m一起使用

-X:用文件批量删除acl权限

-b:删除所有的acl权限

-k:删除默认的acl权限

-R:递归设置acl权限

-d:设置默认acl权限,只对目录有效

ACL:Access Control List,实现灵活的权限管理

除了文件的所有者,所属组和其它人,可以对更多的用户设置权限

CentOS7 默认创建的xfs和ext4文件系统具有ACL功能

CentOS7 之前版本,默认手工创建的ext4文件系统无ACL功能,需手动增加

tune2fs –o acl /dev/sdb1

mount –o acl /dev/sdb1 /mnt/test

ACL生效顺序:所有者,自定义用户,自定义组,其他人

mask

mask值:文件或目录一旦定义了acl,ACL文件上的group权限是mask的值,用chmod改组的权限,是改的mask的值

mask只影响除所有者和other的之外的人和组的最大权限

mask需要与用户的权限进行逻辑与运算后,才能变成有限的权限(Effective Permission)

用户或组的设置必须存在于mask权限设定范围内才会生效 setfacl -m mask::rx file

--set选项会把原有的ACL项都删除,用新的替代,需要注意的是一定要包含UGO的设置,不能象-m一样只是添加ACL就可以

示例:

setfacl --set u::rw,u:wang:rw,g::r,o::- file1

getfacl file1 | setfacl --set-file=- file2 复制file1的acl权限给file2

备份和恢复ACL

主要的文件操作命令cp和mv都支持ACL,只是cp命令需要加上-p 参数。但是tar等常见的备份工具是不会保留目录和文件的ACL信息

getfacl -R /tmp/dir1 > acl.txt

setfacl -R -b /tmp/dir1

setfacl -R --set-file=acl.txt /tmp/dir1

setfacl --restore acl.txt

getfacl -R /tmp/dir1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值