linux 文件隐藏权限,linux文件基本权限、默认权限、隐藏权限和ACL权限

基本权限

文件属性rwx

每个文件当用ls -l查看时,都会显示文件的详细属性信息,其中在排在首位的共有10位字符信息

例如 -rw-r–rw-. 1 root root ……..

共有10位,第一位代表的是文件的类型,后边9位表示的是文件的权限属性,没3个字符为一组,从左到右,依次表示owner,group,others的权限,其中每组3个字符中又对应三种状态,分别是rwx。后边的依次是连接数,所有者,所属组,

1、权限对文件意义

r  read,表示可读取文件的实际内容

w  write,可以编辑、新增或者修改文件的内容,但是不包括删除该文件

x  eXecute,表示该文件具有被系统执行的权限。在linux中,我们的文件能否被执行,是有x这个权限来决定的,而跟文件名没有绝对的关系

notice:当我们对一个文件有w权限是,我没只能对文件内容进行改动,而对文件本身是不具备删除权限的。对于文件的rwx来说,主要都是针对的文件内容,与文件名的存在有否没有关系。

2、权限对目录的意义

文件是存放实际数据的所在,目录的主要内容是记录文件名列表,文件名与目录有强烈的关联

r: read content in directory

表示具有读出目录结构列表的权限,所以当对一个目录具有r的权限的时候,表示我们可以查询该目录下的文件名的数据,所以可以使用ls命令将目录的内容列表显示出来

w:modify contents of directory 表示具有更改目录结构列表的权限

x:access directory

目录的x权限代表的是用户能否进入到该目录成为工作目录的用途。如果对一个目录不具备x权限,那么就无法切换到该目录下,也就无法执行该目录下的任何命令

要开放目录的权限给别人时,应该至少要给r和x的权限,但是w的权限不能随便给,因为给予w权限,就具备了对目录中文件和目录的一系列的删除、新建、重命名等操作。

文件普通权限与属性的修改

chown   change owner 改变所有者

chgrp   change group 改变所属组

chmod   change mode 改变文件的权限

chown [-R] [owner][:[group]] File

用法 owner  或者 owner:  相当于 owner:owner  或者:group

-R 表示递归,连同子目录下的所有文件和目录

chown [-R] –reference=file1 file2

将file2的权限修改成与file1的相同

chgrp [-R] [group] file

chgrp [-R] –reference=file1 file2

将file2的用户组改成与file1相同

chmod更改文件的权限

更改文件的权限有两种方法

1、数字类型改变文件权限

r对应数值4,w对应2,x对应1,-对应0,相应的权限位置有则计算,没有计为0,没三个相加,得到数字就是最后的权限数,例如某个文件的权限:-rwxrw-r–,对应的数字就是421420400,最后的数字就是764

chmod 764 file

2、符号类型修改文件权限

修改一类用户的所有权限:u=[rwx] g=[rwx] o=[rwx] ug=[rwx] a=[rwx] u=,g=

修改用户的某些权限或某一位权限:u+  u-g+  g-o+  o-a+  a- + –

chmod [-R] –reference=file1 file2   参考file1的文件权限,将file2修改为与file1相同

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

当我们新创建一个目录或者文件时都是有权限的,那他的默认权限是怎么来的?这就与umask有关了,umask是用户在新建文件或目录时的权限默认值。系统默认的umask=0022,其中,一般用户在创建时取用后三位022,系统用户在创建时取用前三位002,并且umask的值是可以查看和设定的,直接输入umask 即为查看,输入umask #即为设定,并且可以用 umask -S 来以模式的方式产看,umask -p 显示的umask值可以被调用

新建文件的权限=最高权限-umask,新建文件的最高权限为666,新建目录的最高权限为777。

由于umask的值可以在新建文件时重新设定,所以当得到的文件权限存在可执行(奇数)位时,就在对应的权限数值上+1,例如 umask=035,得到的文件权限为631,则最后的权限应该是642

umask值其实就是在新建文件或目录时从做大权限中拿掉的权限。

文件系统的特殊权限SUID、SGID、Stick

进程有属主和属组;文件有属主和属组

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

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

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

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

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

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

SUID

任何一个可执行程序文件能不能启动为进程:取决于发起者对程序文件是否拥有执行权限,启动为进进程之后,其进程的属主为源文件的属主。SUID就是让普通用户拥有可以执行“只有root权限才能执行”的特殊权限

SUID的限制与功能

1、SUID权限仅对二进制(binary program)程序有效,设置在目录上无意义

2、执行者需要对于该程序有x的可执行权限

3、本权限只在执行改程序的过程中有效

4、执行者将具有该程序所有者的权限

权限设定  chmod u+s file…   chmod u-s file…

SGID

可执行(具有x权限)文件上的SGID权限

任何一个可执行程序文件能不能启动为进程:取决发起者对程序文件是否拥有执行权限。启动为进程之后,其进程的属主为原程序文件的属组

权限设定:chmod g+s file…   chmod g-s file…

可执行目录上的SGID权限

默认情况下,用户创建文件时,其属组为此用户所属组的主组

一旦某目录被设定SGID,则对此目录有写权限的用户,在此目录中创建的文件,所属的组为此目录的属组

通常用于创建一个协作的目录

权限设定:chmod g+s dir…   chmod g-s dir…

Sticky位(粘滞位)

具有写权限的目录通常用户可以删除该目录中的任何文件,无论该文件的权限或拥有权

在目录设置Sticky 位,只有文件的所有者或root可以删除该文件

sticky设置在文件上没有意义

权限设定:chmod o+t dir…  chmod o-t dir…

当设定对应的SUID SGID和Sticky时,如果对应的属主、属组和other没有相应的x权限,那么特殊权限会由s s t变成,S S T

特殊权限的数字发设定

SUID=4,SGID=2,Sticky=1,将含有对应权限累加,得到数值后,放到普通权限三个数值的前面,即可用chmod命令设定

文件的隐藏属性chattr lsattr

文件除了上边介绍的属性之外还具有隐藏的属性,用命令chattr来修改,用lsattr来查看

chattr [+-=][ASacdistu] 文件或目录名称

选项   -R  递归,将目录中的内容依次改变

参数

+  增加某一个特殊参数,其他参数不改变

–  删除某一个特殊参数,其他参数不改变

=  设定为后边的参数

A  当设置了A后,当访问这个文件时,文件的atime不会改变,对于I/O较慢的机器可以避免过度访问磁盘

a  当设置a属性之后,这个文件将只能增加数据,不能修改和删除数据,只有root能设置这个属性

c  文件设置c属性之后,将会自动将此文件压缩,读取时自动解压缩;进行存储的时候,会先进行压缩在存储

i  设置i属性之后,这个文件将不能被删除、改名,设置连接也无法写入或添加数据,只有root能够设置

s  当设置s属性后,文件被删除之后,将会完全从磁盘被删除,包括文件的具体数据

u  与s属性相对应的,当文件设置u属性之后,如果文件被删除,将只会删除文件的文件名,内部的具体数据依旧会存在磁盘上,可以恢复

lsattr  查看文件的隐藏属性

lsattr [-adR] 文件或目录

选项与参数:

-a :将隐藏文件的属性也秀出来;

-d :如果接的是目录,仅列出目录本身的属性而非目录内的文件名;

-R :连同子目录的数据也一并列出来!

主机的具体权限规划:ACL

ACl是access control list的缩写,主要目的是提供传统的owner、group、others的r、w、x权限之外的具体权限设置。ACl可针对单一用户、单一文件或目录来进行rwx的权限设置,对于需要特殊权限的使用状况非常有帮助

CentOS7.0默认创建的xfs和ext4文件系统有ACL功能。CentOS7.X之前版本,默认手工创建的ext4文件系统无ACL功能。需手动增加:

tune2fs –o acl/dev/sdb1

mount –o acl/dev/sdb1 /mnt

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

设置文件的ACL权限  使用setfacl命令

选项:

–m 设置文件的acl参数,不能与-x混用

-x 删除文件的acl参数,不能与-m混用

-b 清空文件所有的acl参数

-k 移除『预设的』 ACL 参数,关于所谓的『预设』参数于后续范例中介绍;

-R 递归设定 acl ,亦即包括次目录都会被设定起来;

-d 设定『预设 acl 参数』的意思!只对目录有效,在该目录新建的数据会引用此默认值

-M 调用设置好的ACL权限设置文件  setfacl -M file.acl file|directory

设置方式   setfacl -m[R] u[g]:username[groupname]:[rwx权限] file[dir]

取消方式  setfacl -x[-R] u[g]:username[groupname] file[dir]

这种取消方式可能不彻底,可以使用-b选项全部取消

setfacl -m d:u:wang:rx dir   d 是default,意思是将来目录下新建的文件自动有次权限,只对新文件有效,对于旧文件无效

setfacl -X file.acl directory  删除文件中的权限

用命令getfacl可以查看文件的ACL权限   getfacl file

在看到的选项中有一项是mask值,是自定义用户,自定义组的最大权限,既ACL文件上的group权限是mask值(自定义用户,自定义组,拥有组的最大权限),而非传统的组权限。mask只影响所有者和other的之外的人和组的最大权限。mask需要与用户的权限进行逻辑运算后,才能变成有限的权限(effective permission),用户和组的设置必须存在与mask权限设定范围内才会生效。

mask值的设置 setfacl -m mask::[权限] file

原创文章,作者:black_fish,如若转载,请注明出处:http://www.178linux.com/27526

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值