linux敏感文件权限600,Linux文件权限与访问控制(示例代码)

Linux文件权限与访问控制

访问文件用户3类:

文件所有者

同组成员

其他人

权限

--- --- --- (rwx) 依次对应3类用户

file:6rw 4r 0 x1

dir: 7rwx 5r-x 0

默认权限

umask内部命令 用来生成数字 umask+default =file666/dir777

umask +数字 修改umask值

umask 本质含义取消对应权限

原理计算:

666 666

125 125

110110110 541

001010101 542 对于文件偶数不动奇数全加一

对于目录不必要这么做,目录

110100010 执行权限没有担心

642

配置文件

个人用户配置 .bashrc 在文件末尾追加 umask 251 source .bashrc

/etc/bashrc 下配置了root和普通用户的umask默认值

root 022 普通 002

umask

-p >> .bashrc 追加umask值到个人配置文件中

-S 模式法 写了默认权限

命令:

chmod

法一:

chmod who opt per file

who:u g o(a可以代表ugo)

opt:+ - =

per: r w x (X s .特殊权限)

ps: chmod u+x,g-w,o= file

参考一个文件权限修改另一个文件

chmod --reference=filename1 filename2 filename3

法二:数字法

r:4

w:2

x:1

chmod 764 filename

chmod -R a+x dirname 递归加执行权限

chmod -R +X dirname X仅仅对目录加执行,文件不加执行

当文件原有执行权限则会加执行权限

chown

-c或——changes:效果类似“-v”参数,但仅回报更改的部分;

-f或--quite或——silent:不显示错误信息;

-h或--no-dereference:只对符号连接的文件作修改,而不更改其他任何相关文件;

-R或——recursive:递归处理,将指定目录下的所有文件及子目录一并处理;

-v或——version:显示指令执行过程;

--dereference:效果和“-h”参数相同;

--help:在线帮助;

--reference=:把指定文件或目录的拥有者与所属群组全部设成和参考文件或目录的拥有者与所属群组相同;

--version:显示版本信息。

chown root:root

chown .root file 只改属组

chown root. file 属主属组全改

chgrp

特殊权限:

SUID:作用在继承二进制程序所有者的x位上,当一个用户运行该程序,由于存在s权限

则它会继承该程序的属主的权限。只适合在二进制可执行程序上。

chmod u+s(-s)

4--- 都表示加s权限。

SGID: 作用在所有者的x位上,当一个用户运行该程序,由于存在s权限

则它会继承该程序的属组的权限

chmod g+s

4---

sticky1:粘滞位。无法删除别人的文件,即使2人都拥有其目录的w权限,作用

在文件夹上。

chmod o+t

1---

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

s: 属主拥有x权限

S:属主没有x权限 ?

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

s: group拥有x权限

S:group没有x权限

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

t: other拥有x权限

T:other没有x权限

############################################

chattr

chattr +i(-i) 不能删除,改名,更改

chattr +a(-a) 只能追加内容

chattr +A(-A)?锁定atime时间 vi修改文件之后锁失效

lsattr 显示特定属性

############################################

访问控制列表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生效顺序:所有者,自定义用户,自定义组,其他人

若属于多个组的话,若没有用户权限匹配则多个组权限可以累积

#############################################

启用acl之后组权限已经改变为mask权限

#############################################

为多用户或者组的文件和目录赋予访问权限rwx

mount -o acl /directory

getfacl file |directory 查看文件或者目录的acl权限

setfacl -m u:wang:rwx file|directory

setfacl -Rm g:sales:rwX directory 递归

setfacl -M file.acl file|directory 通过文件调用批量添加

setfacl -m g:salesgroup:rw file| directory

setfacl -m d:u:wang:rx directory 在目录下新建文件的权限设置

setfacl -x u:wang file |directory

setfacl -X file.acl directory 通过文件批量删除权限

ACL文件上的group权限是mask 值(自定义用户,自定义组,拥有组的最大权 限),而非传统的组权限

setfacl -m mask::r file 对文件file设置mask权限

getfacl 可看到特殊权限:flags

通过ACL赋予目录默认x权限,目录内文件也不会继承x权限

base ACL 不能删除

setfacl -k dir 删除默认ACL权限

setfacl –b file1清除所有ACL权限

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

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

备份和恢复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(不一定要全恢复可以选择其中一个文件或者目录恢复) 递归按照acl.txt文件恢复acl权限,也可以实现单个文件或者目录的恢复

setfacl --restore acl.txt 恢复acl权限

getfacl -R /tmp/dir1

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值