隐藏权限的设置和查看chattr的用户与我们之前讲的chmod,chow这些命令相似,都是直接对需要修改的文件进行操作就可以了
[root@localhost test]# chattr +AaiSd file1[root@localhost test]# lsattr file1 --S-iadA---------- file1[root@localhost test]# chattr = file1[root@localhost test]# lsattr file1 ------------------ file1
A 文件或目录的atime不可被修改
S 硬盘I/O同步选项,功能类似sync 。
a 只能向文件中添加数据,而不能删除,多用于服务器日志文件安全,只有root才能设定这个属性 。
d 文件不能成为dump程序的备份目标 。
i 设定文件不能被删除、改名、设定链接关系,同时不能写入或新增内容 。
通过上面的例子可以看到查看的时候使用的是lsattr,chattr还有很多参数,各位可以在man手册中获取到帮助,另外有些参数的使用是有局限性的 。
四、acl权限acl权限的介绍linux的权限非常重要,我们之前所说的几种权限中,但是并不能只针对一个用户或者一个组进行单独设置,而ACL权限可以帮助我们实现这个功能,比如说有一个文件的所有者和所有者组都是a,这个文件的权限是660,我可以让b这个用户可以对文件进行读写的操作,而b这个用户并不属于a组的成员 。那我们来看下如何使用
acl权限的设置和查看如果要使用acl权限,首先要确定你的文件系统支持acl权限,如果在Default mount options字段出现acl字样就意味着你的文件系统支持acl,不过在centos8中默认是都支持的 。
[root@localhost test]# tune2fs -l /dev/sda1tune2fs 1.44.3 (10-July-2018)Filesystem volume name: <none>Last mounted on: /bootFilesystem UUID: be03eaec-6474-42ea-8f79-06e7198f5155Filesystem magic number: 0xEF53Filesystem revision #: 1 (dynamic)Filesystem features: has_journal ext_attr resize_inode dir_index filetype needs_recovery extent 64bit flex_bg sparse_super large_file huge_file dir_nlink extra_isize metadata_csumFilesystem flags: signed_directory_hash Default mount options: user_xattr aclFilesystem state: clean...
配置acl权限我们需要使用两个命令一个是setfacl用来设置acl权限,另一个是getfacl用来查看acl权限
setfacl
-m :设置acl-x :删除指定的acl-b :删除所有的acl
getfacl用来查看文件的acl权限,现在我们来看下如何设置
[root@localhost test]# lsfile file1[root@localhost test]# ll file1-rw-r--r-- 1 root root 0 10月 18 02:48 file1[root@localhost test]# setfacl -m u:oracle:rw file1 为指定的用户配置一个rw的权限[root@localhost test]# setfacl -m u::rwx file1 如果没有指定用户则默认是为该文件的所有者设置[root@localhost test]# ll file1-rwxrw-r--+ 1 root root 0 10月 18 02:48 file1 所有者权限变成的rwx而且后面多了一个+号
你会发现使用ll(等同于ls -l)命令查看时会发现多了一个+号,这只是提醒我们此文件被设置了acl权限,但是具体是什么样的,我们还需要使用getfacl来查看
[root@localhost test]# getfacl file1# file: file1 文件名# owner: root 所有者# group: root 所有者组user::rwx user:后面是空的,代表的是所有者的权限user:oracle:rw- 我们之前给额外用户设置的权限group::r-- 所有者组的权限mask::rw- 默认的有效权限other::r-- 其他人的权限
以上是我们针对一个额外的用户设置的权限,同理可以设置针对组和其他人的acl权限
[root@localhost test]# setfacl -m g:oracle:rw file1[root@localhost test]# setfacl -m o:rw file1[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rwxuser:oracle:rw-group::r--group:oracle:rw-mask::rw-other::rw-
删除指定的acl
[root@localhost test]# setfacl -x u:oracle file1 删除用户acl[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rwxgroup::r--group:oracle:rw-mask::rw-other::rw-[root@localhost test]# setfacl -x g:oracle file1 删除组acl[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rwxgroup::r--mask::r--other::rw-[root@localhost test]# chmod o=r file1 删除其他人直接使用chmod就可以[root@localhost test]# ll file1-rw-r--r-- 1 root root 0 10月 18 04:21 file1[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rw-group::r--other::r--
删除所有acl
[root@localhost test]# setfacl -m u:oracle:rw,g:oracle:rw,o:rwx file1[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rw-user:oracle:rw-group::r--group:oracle:rw-mask::rw-other::rwx[root@localhost test]# setfacl -b file1[root@localhost test]# getfacl file1# file: file1# owner: root# group: rootuser::rw-group::r--other::rwx
你没看错,权限在指定的时候是可以指定多个的,我们之前提到的chmod也可以这样使用,好了权限管理我们就说这么多,现在我们来总结一下
推荐阅读
- 编写Linux下的UDP Client/Server程序
- 如何查看Linux的IP地址
- 地下车库设计与管理规范
- 如何做好住宅物业的绿化管理
- Cumulus Linux 开源交换系统
- 金盏菊种植方法和管理,百日草和金盏菊怎么区别
- Linux下应用开发基础知识大总结
- Linux 部署时间同步服务Chrony
- 观赏菊花种植与管理,甘菊花与菊花的区别是什么
- 从 Linux 源码看 Socket 的阻塞和非阻塞