通过命令 ls -al,可列出文件的属性,分为 文件类型和权限、链接数、owner、group、大小(单位为bytes)、最后修改时间、文件名( .表示当前目录,. .表示上一层目录)
上图红框为文件类型和权限,由10位组成
使用命令 chgrp groupname filename 修改文件的group,加上参数 -R 可递归修改目录下的文件,如下将1.txt的group改为root
使用命令 chown ownername filename 修改文件的owner,加上参数 -R 可递归修改目录下的文件,如下将1.txt的owner改为root
chown命令可同时修改owner和group,如下将1.txt的owner和group改回song
使用命令 chmod,可修改文件权限
文件时间共有3种:
通过命令ls -l 及 参数 --time 可查看上述时间,如下/etc/hdparm.conf文件上一次内容更新是2018.2.22(该文件第一次创建),状态更新为2022.2.26(安装虚拟机时间),上一次访问为2022.3.2
使用命令 touch 修改文件时间,-a 修改atime,-c修改ctime,-m修改mtime,-d 修改日期,-t修改时间
如上可看到 -d -t 修改了 mtime和atime
字母 | 对于文件 | 对于目录 |
---|---|---|
r | 读取文件内容 | 读取文件列表(ls) |
w | 编辑(添删改)文件内容 | 增、删文件,修改文件名及移动文件 |
x | 执行文件 | 进入目录(cd) |
可看到rwx 对于文件来说是对其内容的操作,对于目录是来说是对其组织结构的操作(x表示是否可进入目录)
命令 umask 查看权限预设值,0002对应为--------w-,说明需要去掉other的w权限
预设权限 = 最大权限 - 预设值
隐藏属性只在Ext2/Ext3/Ext4文件系统上存在,通过命令 chattr 设置隐藏属性,±= 表示添加删除设置参数
如下为1.txt添加 i 属性后无法删除
查看隐藏属性使用命令 lsattr ,-a 表示将隐藏文件的属性也显示出来,-d 表示只显示目录属性,-R表示递归显示
当s在owner的x位置时是SUID,这个权限只用于文件(不可用于脚本),使用者执行该文件时可临时获得该文件owner的权限
当t在other的x位置时是SBIT,只对目录生效,当使用者在该目录下建立文件时,仅root和自己才有权力删除该文件
/tmp 存放临时文件,只有自身才能删除自己创建的临时文件
方式一:SUID/SGID/SBIT分别对应4/2/1,在设置rwx前再加一个数字,即可完成特殊权限的设置,大写S表示当前无x权限
方式二:通过符号设置,SUID为u+s,SGID为g+s,SBIT为o+t
或直接赋值设置
现有群组 group 权限为 rwxrwx—,现需要让用户 user 对群组可读
ACL(Access Control List)就是为了解决上述问题,通过ACL可针对单一用户或文件设置权限
命令 setfacl / getfacl 设置 / 获取文件的ACL权限,-m 表示设置后续的acl参数给文件,-x 表示删除后续的acl参数,-b 移除所有的acl参数,-k 移除预设的acl参数,-R 递归设置,-d 预设acl参数(只对目录有效,目录下的所有新建文件都遵循预设值)
如上对用户 song 设置针对文件 test 的 rx 权限,如下未指定用户代表当前owner
如下红框部分即为上面所设置的权限
如下设置文件的有效权限,虽然用户 song 有 rx 权限,但实际只有 r 权限