文件安全策略
Linux系统中文件的权限
文件或目录的访问权限分为只读、只写、和可执行三种。
有三种类型的用户客队文件目录访问:文件所有者,同组用户、其他用户。
每一文件或目录的访问权限都有三组,每组用三位标识,分别为
文件属主 -- 读、写和执行权限;
与属主同组的用户 -- 读、写和执行权限;
系统中其他用户 -- 读、写和执行权限。
linux可以利用chmod命令来重新设定不同的访问权限。
利用chown命令来更改某个文件或目录的所有者。
利用chgrp命令来更改某个文件或目录的用户组。
chmod -R 777 test # -R 递归权限变更 # 777 分别给文件所有者/文件所属组/其他用户设置权限 chown -R admin test chown -R admin:users test # -R 递归更改所有者 chgrp -R users test # -R 递归更改所属组
Suid,Sgid和粘滞位
Suid介绍:
如果一个文件有suid位,则执行这个文件的时候,系统将忽视当前用户的权限,而直接以文件本身的owner身份来执行
Sgid介绍:
如果一个文件有Sgid位,则无论是那个用户在此文件夹下创建了文件,文件的所属组都跟文件夹的所属组一样。
粘滞位sticky bit
如果一个文件夹设置了粘滞位,则其中的文件只有文件的owner或root才能删除,粘滞位会自动屏蔽文件夹的写入权限。
chmod 7777 test # 4 为 SUID 2 为 SGID 1 为 SBIT
使用find -perm命令查找以上属性
# 查找suid程序 find / -perm -4000 -ls # 查找Sgid程序 find / -perm -2000 -ls
setfacl与getfacl
getfacl:取得某个文件/目录的ACL设定项目
setfacl:设定某个文件/目录的ACL规范
setfacl -m u::rwx acl_test1 setfacl -m g:mygroup1:rx acl_test1 getfacl acl_test1 # setfacl [-bkRd] [{-m|-x} acl 参数] 目标文件名 # 设定规范:『 u:[使用者账号列表]:[rwx] 』 选项与参数: -m :设定后续的 acl 参数给文件使用,不可与 -x 合用; -x :删除后续的 acl 参数,不可与 -m 合用; -b :移除『所有的』 ACL 设定参数; -k :移除『预设的』 ACL 参数,关于所谓的『预设』参数于后续范例中介绍; -R :递归设定 acl ,亦即包括次目录都会被设定起来; -d :设定『预设 acl 参数』的意思!只对目录有效,在该目录新建的数据会引用此默认值
文件扩展属性工具
chattr(change file attribute)和Lsattr(list file attribute)
# 用chattr命令防止系统中某个关键文件被修改 chattr +i test.txt # 让某个文件只能往里面追加内容,不能删除,一些日志文件使用这种操作。 chattr +a test.txt
浙公网安备 33010602011771号