文件系统与Linux相关知识点
作者:xybaby 发布时间:[ 2017/4/13 10:40:27 ] 推荐标签:操作系统 Linux
访问权限控制
我们都知道对于一个文件,用户有三种权限:r(可读)、w(可写)、x(可执行),对于普通文件来说很好理解,但是对于目录来说是是你们意思呢,特别是目录的写操作和执行?
r: 具有读取目录结构列表的权限,比如使用ls(list)
w:具有更改目录结构列表的权限,不如新建文件、目录;删除文件、目录;重命名等
x:用户能否进入该目录成为工作目录, 比如使用cd
以前出现过cd失败的原因,原来是因此这个权限问题。
另外也能在用户权限位看到s、t等情况,这个具体意义可以参考 《Linux特殊权限:SUID、SGID、SBIT》 。下面制作简单总结
· 文件具有SUID的权,代表用户执行此二进制程序的时候,执行过程中用户文件所有者的权限
· 目录具有SGID的权,代表用户在这个目录下新建的文件用户组都会与该目录的用户组相同
· 目录具有SBIT的权,代表用户在这个目录下新建的文件只有自己和root能够删除
atime & noatime
上面提到 atime是文件的后访问时间,我自己测试了一下,用cat访问文件,但是访问前后的时间戳并没有发生变化,是说,访问文件并没有改变atime。于是网上查了一下,原因如下:
相信对性能、优化这些关键字有兴趣的朋友都知道在 Linux 下面挂载文件系统的时候设置 noatime 可以显著提高文件系统的性能。默认情况下,Linux ext2/ext3 文件系统在文件被访问、创建、修改等的时候记录下了文件的一些时间戳,比如:文件创建时间、近一次修改时间和近一次访问时间。因为系统运行的时候要访 问大量文件,如果能减少一些动作(比如减少时间戳的记录次数等)将会显著提高磁盘 IO 的效率、提升文件系统的性能。Linux 提供了 noatime 这个参数来禁止记录近一次访问时间戳。
在 wiki stat 上面也有对着问题的描述,称之为“Criticism_of_atime”,提到关于atime的更新有以下几种选项:
· strictatime (formerly atime, and formerly the default; strictatime as of 2.6.30) – always update atime, which conforms to the behavior defined by POSIX
· relatime ("relative atime", introduced in 2.6.20 and the default as of 2.6.30) – only update atime under certain circumstances: if the previous atime is older than the mtime or ctime, or the previous atime is over 24 hours in the past
· nodiratime – never update atime of directories, but do update atime of other files
· noatime – never update atime of any file or directory; implies nodiratime; highest performance, but least compatible
· lazytime – update atime according to specific circumstances laid out below
其中noatime表示永远不更新任何文件和目录的atime属性。配置在/etc/fstab。for example:
硬链接与符号链接:
硬链接:多个文件项指同一个文件(同一个inode)
符号链接:链接文件与被链接文件的描述信息(元数据,meta data)各自独立,只是说链接文件里面存储另一个文件的完整路径,以此实现文件别名,类似windows中的“快捷方式”。
linux下面使用指令 ln src target 即可创建硬链接,target指向的是和src同样的文件,拥有同样的inode(即meta data)信息。也可以理解为,只是多了一个逻辑名指向某个文件。执行指令:ln Server.log Server_hardlink.log
结合上面介绍meta data时候的截图,可以看到,创建硬链接之后变化的是 Links 的数值变成了2,因为现在Server_hardlink.log也指向了这个文件。硬链接的好处在于更改的安全性,当我们用rm删除一个文件的时候,其实只是将文件的links数目减少1,只有当links数目减少到0之后才会真正的删除文件。
linux下面使用指令 ln -s src target 即可创建符号链接,如下图所示,src和target指向的是不同的inode
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11