Linux文件基本知识
linux
文件基本知识
磁针石
联系方式: Gmail
and gtalk: xurongzhong#gmail.com
文件路径:D:\blog\@Linux\linux
基础\文件系统
参考资料
* 《深入理解Linux内核(第三版)》之1.5. An Overview of the Unix
Filesystem
* 《LINUX与UNIX
SHELL编程指南》第一章
2008-10-10 根据参考资料1,2创建初稿。
文件类型
Unix 文件可以是下列类型之一 :
• 普通文件(regular file)
• 目录
• 符号链接
• 面向块的设备文件(block-oriented device file)
• 面向字符的设备文件(character-oriented device file)
• 管道(pipe)和命名管道(named pipe)(也叫FIFO)
• 套接字(socket)
前三种文件类型是所有Unix 文件系统的基本类型。设备文件与I/O
设备以及集成到内核中的设备驱动程序相关。例如,当程序访问设备文件时,它直接访问与那个文件相关的I/O 设备。管道和套接字是用于进程间通信的特殊文件。
文件描述符与索引节点
Unix对文件的内容和描述文件的信息给出了清楚的区分。除了设备文件和特殊文件系统文件外,每个文件都由字符序列组成。文件内容不包含任何控制信息,如文件长度或文件结束(end-of-file,EOF)符。
文件系统处理文件需要的所有信息包含在一个名为索引节点(inode)的数据结构中。每个文件都有自己的索引节点,文件系统用索引节点来标识文件。
虽然文件系统及内核函数对索引节点的处理可能随Unix系统的不同有很大的差异,但它们必须至少提供在POSIX 标准中指定的如下属性:
• 文件类型
• 与文件相关的硬链接个数
• 以字节为单位的文件长度
• 设备标识符(即包含文件的设备的标识符)
• 在文件系统中标识文件的索引节点号
• 文件拥有者的UID
• 文件的用户组ID
• 几个时间戳,表示索引节点状态改变的时间、最后访问时间及最后修改时间
• 访问权限和文件模式
另有文件的位置。
访问权限和文件模式
文件的潜在用户分为三种类型:
• 作为文件所有者的用户
• 同组用户,不包括所有者
• 所有剩下的用户(其他)
有三种类型的访问权限——读、写及执行每组用户都有这三种权限。因此,文件访问权限的组合就用九种不同的二进制来标记。还有三种附加的标记,即suid (Set User ID), sgid (Set Group ID),及sticky 用来定义文件的模式。当这些标记应用到可执行文件时有如下含义:
suid
进程执行一个文件时通常保持进程拥有者的UID。然而,如果设置了可执行文件
suid 的标志位,进程就获得了该文件拥有者的UID。
sgid
进程执行一个文件时保持进程组的用户组ID。然而,如果设置了可执行文件sgid
的标志位,进程就获得了该文件用户组的ID。
sticky
设置了sticky 标志位的可执行文件相当于向内核发出一个请求,当程序执行结
束以后,依然将它保留在内存(这个标志已经过时,现在使用基于代码页共享的其他方法)。
当文件由一个进程创建时,文件拥有者的ID 就是该进程的UID。而其用户组ID 可以是进程创建者的ID,也可以是父目录的ID,这取决于父目录sgid 标志位的值。
对于文件属主来说,在只有读权限位被置位的情况下,仍然可以通过文件重定向的方法向该文件写入。能否删除一个文件还依赖于该文件所在目录权限位的设置。
hmod [who]
Operator [permission] filename
who的含义是:
u 文件属主权限。
g 同组用户权限。
o 其他用户权限。
operator的含义:
+ 增加权限。
- 取消权限。
= 设定权限。
permission的含义:
r 读权限。
w 写权限。
x 执行权限。
s 文件属主和组set-ID。
t 粘性位*。
l 给文件加锁,使其他用户无法访问。
u,g,o 针对文件属主、同组用户及其他用户的操作。
*在列文件或目录时,有时会遇到“
t”位。“t”代表了粘性位。如果在一个目录上出现
“t”位,这就意味着该目录中的文件只有其属主才可以删除,即使某个同组用户具有和属主
同等的权限。不过有的系统在这一规则上并不十分严格。
如果在文件列表时看到“ t”,那么这就意味着该脚本或程序在执行时会被放在交换区(虚
存)。不过s于当今的内存价格如此之低,大可不必理会文件的“ t”的使用。
还可以通过使用- R选项连同子目录下的文件一起设置:
chmod -R 664 /usr/local/home/dave/*
这样就可以一次将/usr/local/home/dave目录下的所有文件连同各个子目录下的文件的权限全部设置为文件属主<
新文章:
- CentOS7下图形配置网络的方法
- CentOS 7如何添加删除用户
- 如何解决centos7双系统后丢失windows启动项
- CentOS单网卡如何批量添加不同IP段
- CentOS下iconv命令的介绍
- Centos7 SSH密钥登陆及密码密钥双重验证详解
- CentOS 7.1添加删除用户的方法
- CentOS查找/扫描局域网打印机IP讲解
- CentOS7使用hostapd实现无AP模式的详解
- su命令不能切换root的解决方法
- 解决VMware下CentOS7网络重启出错
- 解决Centos7双系统后丢失windows启动项
- CentOS下如何避免文件覆盖
- CentOS7和CentOS6系统有什么不同呢
- Centos 6.6默认iptable规则详解