(5)——目录

最后更新于:2022-04-01 14:44:18

## 一、目录 目录在文件类型上用d来表示,用 / 分割目录层 Linux操作系统 都有且仅有一个起始目录,我们用一个单独的 /来表示,称其为根目录。 对每一个Shell和操作环境,都有一个当前的工作目录。 ## 二、 . 文件与 ..文件 在每一个目录下都有一个.文件与 .. 文件。  . 文件是对当前目录的一个硬链接  .. 文件是对上级目录的一个硬链接 ## 三、目录的权限 目录也是一种文件 目录上的读写执行权限与普通文件有所不同: 读:用户可以读取目录内的文件 写:单独使用没有作用。与执行权限连用可以在目录内添加与删除文件。 执行:用户可以进入目录,调用目录内的资料 ## 四、强制位于冒险位 除了读写执行权限以外,ext2文件系统还支持强制位(setuid和setgid)与冒险位(sticky)的特别权限。 针对u, g, o, 分别有set uid, set gid, 及 sticky 强制位与冒险位添加在执行权限的位置上。如果该位置上原已有执行权限。则强制位与冒险位以小写字母的方式表示,否则,以大写字母表示。 set uid与set gid在u和g的x位置上各采用一个s,sticky使用一个t (1)set gid对目录的作用 默认情况下用户建立的文件属于用户当前所在的组。 目录上设置了setgid,表示此目录中,任何人建立的文件,都会属于目录所属的组。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8baf353f6.jpg) 如何查看默认用户及组呢? id 用户名 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8baf47f5b.jpg) 添加强制位权限 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8baf5ea33.jpg) 添加强制位权限后再来在该目录下建立文件 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8baf7297e.jpg) (2)冒险位对目录的作用 默认情况下,如果一个目录上有w和x权限,则任何人可以在此目录中建立与删除文件。 一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8baf843b6.jpg) (3)强制位对 文件 的作用 在可执行文件上,用户可以添加set uid 和set gid 默认情况下,用户执行一个指令,会以该用户的身份来运行程序。 指令文件上的强制位,可以让用户执行指令,以指令文件的拥有者或所属组的身份运行进程 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8baf95d47.jpg) (4)设置强制位与冒险位 用户可以用chmod指令来为文件设置强制位与冒险位 set uid :   chmod u + s  文件名 set gid :   chmod g + s  文件名 sticky  :    chmod o + t  文件名 强制位与冒险位也可以通过一个数字加和,放在读写执行的三位数字前来指定 4(set uid) 2(set gid) 1(sticky) ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8bafa981d.jpg) 注意:set uid 只能在文件上面设定、set gid能在目录和文件上面设定、sticky只能在目录上面设定 ## 五、umask 每个用户建立文件时,此文件都会有默认权限 默认权限的值由环境中的umask值来确定 用户可以自主改动umask值,并在改动后建立的文件上得到体现 一般用户的默认uask值为002,系统用户的默认umask值为022. ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8bafbadf7.jpg) 如果没有umask时文件默认权限是rw-rw-rw-、目录默认权限是rwxrwxrwx 上面的新建文件的权限计算方法,没有umask时默认权限减去umask值 rw-rw-rw- 6   6   6 0   2   2  (去掉组写权限、和普通用户写权限) 6   4   4 rw-r--r-- 由此可见,如果要去掉某个权限,则umask该位就是该权限码 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8bafcd0ce.jpg) ## 六、根目录下的目录 Linux目录遵循FHS标准:[http://www.pathname.com/fhs/](http://www.pathname.com/fhs/) FHS标准规范了每个目录下应该放什么数据,如下表: ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-14_575f8bafde6cc.jpg) / :根目录,一般建议在根目录下只有目录,不要直接有文件。根目录是启动时系统第一个载入的分区,所以,所有启动过程会用到的文件都应该放在这个分区。如:/etc    /bin   /dev   /lib   /sbin  这5个子目录都应该与根目录连在一起,不可独立成为某个分区。 /bin :存储常用用户指令 /boot :这个目录主要目的是存放Linux系统启动时用到的文件。启动会用到的Linux的核心文件。这个目录下面的文件vmlinuz就是linux的核心。如果引导程序选择grub,这个目录内还有 /boot/grub子目录 /dev :在Linux系统上,任何设备都以文件类型存放在这个目录中。访问这个目录下面的某个文件,就等于访问某台设备。设备又分为字符设备,例如键盘、鼠标等,块设备,例如硬盘、光盘等。在此目录下的文件会多出两个属性,分别是主设备号和辅助设备号。 /etc :存储系统、服务的配置目录与文件,一般这个目录下的文件是可以让一般用户看的,但只有root用户可以修改。 /home :存放个人主目录 /ib :存放库文件,诸如核心模块、驱动 /lost+found :存储fsck用的孤儿文件,系统出现异常,产生错误时,会将一些遗失的片段放于此目录下,通常这个目录会自动出现在某个分区最顶层的目录下。 /mnt :系统加载文件系统时用的常用挂载点 /opt :第三方工具使用的安装目录 /proc :虚拟文件系统,包含系统讯息等资料 /root :root用户的主目录 /sbin :存储系统管理用指令,这个目录是给root用户管理用的 /tmp :临时文件的暂存点 /usr :存放与用户直接相关的文件与目录 /var :存储在系统运行中可能会更改的数据
';