Linux文件访问控制ACL及设置隐藏文件

2018年4月22日16:54:46 发表评论 已收录浏览:12

1.chattr用法

chattr命令用于设置文件的隐藏权限。

格式:chattr [参数] 文件或文件夹

a:让文件或目录仅供附加用途;
b:不更新文件或目录的最后存取时间;
c:将文件或目录压缩后存放;
d:将文件或目录排除在倾倒操作之外;
i:不得任意更动文件或目录;
s:保密性删除文件或目录;
S:即时更新文件或目录;
u:预防意外删除。

例如:

  1. [root@localhost ~]# touch test
  2. [root@localhost ~]# chattr +a test
  3. [root@localhost ~]# rm test
  4. rm: remove regular empty file ‘test’? y
  5. rm: cannot remove ‘test’: Operation not permitted

2. lsattr用法

lsattr用于显示文件隐藏权限。

格式:lsattr [参数] 文件或文件夹

-E:可显示设备属性的当前值,但这个当前值是从用户设备数据库中获得的,而不是从设备直接获得的。
-D:显示属性的名称,属性的默认值,描述和用户是否可以修改属性值的标志。
-R:递归的操作方式;
-V:显示指令的版本信息;
-a:列出目录中的所有文件,包括隐藏文件。

例如:

  1. [root@localhost ~]# lsattr test
  2. -----a---------- test
  3. [root@localhost ~]# chattr -a test
  4. [root@localhost ~]# lsattr test
  5. ---------------- test
  6. [root@localhost ~]# rm test
  7. rm: remove regular empty file ‘test’? y

3.setfacl用法

setfacl用于管理文件的ACL规则,

格式:setfacl [参数] 文件名称和目录名称

-b,--remove-all:删除所有扩展的acl规则,基本的acl规则(所有者,群组,其他)将被保留。
-k,--remove-default:删除缺省的acl规则。如果没有缺省规则,将不提示。
-n,--no-mask:不要重新计算有效权限。setfacl默认会重新计算ACL mask,除非mask被明确的制定。
--mask:重新计算有效权限,即使ACL mask被明确指定。
-d,--default:设定默认的acl规则。
--restore=file:从文件恢复备份的acl规则(这些文件可由getfacl -R产生)。通过这种机制可以恢复整个目录树的acl规则。此参数不能和除--test以外的任何参数一同执行。
--test:测试模式,不会改变任何文件的acl规则,操作后的acl规格将被列出。
-R,--recursive:递归的对所有文件及目录进行操作。
-L,--logical:跟踪符号链接,默认情况下只跟踪符号链接文件,跳过符号链接目录。
-P,--physical:跳过所有符号链接,包括符号链接文件。
--version:输出setfacl的版本号并退出。
--help:输出帮助信息。
--:标识命令行参数结束,其后的所有参数都将被认为是文件名
-:如果文件名是-,则setfacl将从标准输入读取文件名。

例如:

  1. root@localhost ~]# setfacl -Rm u:hacksb:rwx /root  (PS参数 -R参数代表递归 -m参数代表设置ACL规则 -u参数代表User 即用户)  
  2. [root@localhost ~]# su - hacksb
  3. Last login: Sun Apr 22 13:00:49 CST 2018 on pts/0
  4. [hacksb@localhost ~]$ cd /root
  5. [hacksb@localhost root]$ ls
  6. anaconda-ks.cfg  Documents  initial-setup-ks.cfg  Pictures  Templates
  7. Desktop          Downloads  Music                 Public    Videos
  8. [hacksb@localhost root]$ cat initial-setup-ks.cfg
  9. #version=DEVEL
  10. # X Window System configuration information
  11. xconfig  --startxonboot
  12. # License agreement
  13. eula --agreed
  14. # System authorization information
  15. auth --enableshadow --passalgo=sha512
  16. # Use CDROM installation media
  17. cdrom
  18. # Use graphical install
  19. graphical
  20. # Run the Setup Agent on first boot
  21. firstboot --enable
  22. # System services
  23. services --enabled="chronyd"
  24. # Keyboard layouts
  25. keyboard --vckeymap=us --xlayouts='us'
  26. # System language
  27. lang en_US.UTF-8
  28. ignoredisk --only-use=sda
  29. # Network information
  30. network  --bootproto=dhcp --device=ens33 --ipv6=auto --no-activate
  31. network  --bootproto=dhcp --hostname=localhost.localdomain
  32. # Root password
  33. rootpw --iscrypted $6$484.Xuj9Cp1.iKPu$mhf5JvAO3B41sgBmV.63vITO1Dr/Dxz549phT1b1CX8ib06bL/CpwZ2DCc9mxP24JVahxBzrLkyLjO2lOVnHr0
  34. # System timezone
  35. timezone America/New_York --isUtc
  36. # System bootloader configuration
  37. bootloader --append=" crashkernel=auto" --location=mbr --boot-drive=sda
  38. autopart --type=lvm
  39. # Partition clearing information
  40. clearpart --all --initlabel --drives=sda
  41. %packages
  42. @^graphical-server-environment
  43. @base
  44. @core
  45. @desktop-debugging
  46. @dial-up
  47. @fonts
  48. @gnome-desktop
  49. @guest-agents
  50. @guest-desktop-agents
  51. @hardware-monitoring
  52. @input-methods
  53. @internet-browser
  54. @multimedia
  55. @print-client
  56. @x11
  57. chrony
  58. kexec-tools
  59. %end
  60. %addon com_redhat_kdump --enable --reserve-mb=auto
  61. %end
  62. %anaconda
  63. pwpolicy root --minlen=6 --minquality=1 --notstrict --nochanges --notempty
  64. pwpolicy user --minlen=6 --minquality=1 --notstrict --nochanges --emptyok
  65. pwpolicy luks --minlen=6 --minquality=1 --notstrict --nochanges --notempty
  66. %end
  67. [hacksb@localhost root]$ exit
  68. logout
  1. [root@localhost ~]# ls -ld /root
  2. dr-xrwx---+ 14 root root 4096 Apr 22 16:29 /root  (PS: .代表seclinux +代表设置了ACL规则 由原来的.变成了+ 已经设置了ACL)

4. getfacl用法

getfacl用于显示文件上设置的ACL信息

格式:getfacl [参数] 文件名称或目录名称

  1. -a,  --access           仅显示文件访问控制列表
  2. -d, --default           仅显示默认的访问控制列表
  3. -c, --omit-header       不显示注释表头
  4. -e, --all-effective     显示所有的有效权限
  5. -E, --no-effective      显示无效权限
  6. -s, --skip-base         跳过只有基条目(base entries)的文件
  7. -R, --recursive         递归显示子目录
  8. -L, --logical           逻辑遍历(跟随符号链接)
  9. -P, --physical          物理遍历(不跟随符号链接)
  10. -t, --tabular           使用制表符分隔的输出格式
  11. -n, --numeric           显示数字的用户/组标识
  12. -p, --absolute-names    不去除路径前的 '/' 符号
  13. -v, --version           显示版本并退出
  14. -h, --help              显示本帮助信息

例如:

  1. [root@localhost ~]# getfacl /root
  2. getfacl: Removing leading '/' from absolute path names
  3. # file: root
  4. # owner: root
  5. # group: root
  6. user::r-x
  7. user:hacksb:rwx
  8. group::r-x
  9. mask::rwx
  10. other::---

 

  • 我的QQ
  • 我的QQ扫一扫
  • weinxin
  • 我的微信
  • 我的微信扫一扫
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: