文档详情

linux文件系统的权限王国(二).pdf

发布:2018-01-20约2.56千字共4页下载文档
文本预览下载声明
Linux ⽂件系统的权限⺩国(⼆) 作者:池建强 对世界的认知,很多⼈通过各种⽅式和模式进⾏探求,⽐如科学、宗 教、神学,当然还包括⼀些实践、⼊世、旅⾏、禅修等等,这些都是 认知世界的⽅式。作为⼀个写了很多年程序的码农,我更愿意探求计 算机世界的奥秘,虽然和年轻⼈相⽐,学习能⼒、速度和效率都⼤不 如前了,但是只要我们⼀直在往前⾛就好,世界本⽆尽头,⾛不动 了,才是终点! inode 元信息 上⼀篇⽂章中我们讲到了索引节点 inode ,每个⽂件都有⼀个唯⼀的 inode对象,描述了⽂件的元信息。inode与⽂件是⽣死相依、⼀损俱 损的关系,⽣命周期⼀致。很多痛恨⾝份证的⼈都说,「⽼纸⼀⽣下 来就特么有⾝份了,干嘛还有给个⾝份证?」Mac 君对这种态度是赞 同的、肯定的、欣赏的,但 inode 不⼀样,它就像你的指纹,属于⽂ 件的⼀部分并定义⽂件,这就像⼈⽣元编程⼀样,有了「元」的意 味。inode 由⼀个数据结构组成的,主要包含这样⼀些字段: i_hash i_list i_sb_list i_dentry i_ino i_count i_mode i_nlinki_uid ... 这些字段记录了⽂件的⼏乎所有信息,⽐如链表指针、索引节点号、 引⽤计数器、⽂件权限、硬链接数、⽂件所有者标识等等,⼀共有⼏ ⼗个。但是这么去了解 inode 是令⼈发指和不⼈道的,谁能记住这么 多 i 字段?写到这估计很多⼩⽩和⽼⽩已经拍案⽽起义愤填膺了, 「Mac 君难道我们记住 iPad 和 iPhone还不够么?」是的,这么写⼈ 民是不会答应的! 我们⻢上来实际操作⼀下,⽤ stat 命令来查看真实⽂件的 inode 信 息。打开终端,找到⼀个⽂件输⼊: stat .zshrc 结果是: File: .zshrc Size: 2566 Blocks: 8 IO Block: 4096 普通 ⽂件 Device: fd02h/64770d Inode: 1048553 Links: 1 Access: (0644/-rw-r--r--) Uid: ( 500/ chjq) Gid: ( 500/ chjq) Access: 2013-09-12 11:37:39.396922508 +0800 Modify: 2013-07-20 03:56:17.645786812 +0800 Change: 2013-07-20 03:56:17.660906263 +0800 这就好办多了,只要认识英⽂,我们就能看到⽂件的 inode ⾥包含了 ⽂件的字节数、⽂件占⽤的块数、⽂件所属设备的设备号、索引节点 号、链接数(有多少⽂件名指向这个inode)、权限(后续篇章会细 说)、⽤户 ID 、组 ID 。 最后三⾏分别表⽰上次⽂件的访问时间、⽂件内容改变时间和⽂件属 性改变时间,这⼀点 Mac ⽤户应该深有体会,打开 Finder 时可以根 据⽂件属性对⽂件排序,那些属性中有类似这样的创建时间、打开时 间、添加时间等等,⼤家可以去感受下。 如果想我们单独查看⽂件的索引节点号,可以执⾏如下命令: ls -i .zshrc 系统会显⽰: 1048553 .zshrc inode的存储 ⽂件会占⽤硬盘空间这事⼤家都清楚(注意是空间不是重量,⽆论您 是拷⻉100G进来,还是清除100G 出去,硬盘都在哪⾥,份量既不增 ⼀分,也不减⼀克),那么 inode 存放在哪⾥呢?当然也是在硬盘 上,Linux 是很聪明的,在分区和格式化硬盘的时候,就把硬盘分为 了数据区和索引节点区,数据区存放普通⽂件,索引节点区存放 inode 对象。每个 inode 对象的⼤⼩⼀般是128字节或256字节,这个 数值可以在格式化的时候设定。 如何查看 inode 的使⽤情况呢?可以执⾏如下命令:df -iH Filesystem Inodes IUsed IFree IUse% Mounted on /dev/xvda 1.3M 83k 1.2M 7% / devtmpfs 127k 1.5k 125k 2% /dev none 127k 801
显示全部
相似文档