学习鸟哥的Linux私房菜笔记(5)——目录


一、目录

目录在文件类型上用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,表示此目录中,任何人建立的文件,都会属于目录所属的组。

如何查看默认用户及组呢? id 用户名

添加强制位权限

添加强制位权限后再来在该目录下建立文件

(2)冒险位对目录的作用

默认情况下,如果一个目录上有w和x权限,则任何人可以在此目录中建立与删除文件。

一旦目录上设置了冒险位,则表示在此目录中,只有文件的拥有者、目录的拥有者与系统管理员可以删除文件。

(3)强制位对文件的作用

在可执行文件上,用户可以添加set uid 和set gid

默认情况下,用户执行一个指令,会以该用户的身份来运行程序。

指令文件上的强制位,可以让用户执行指令,以指令文件的拥有者或所属组的身份运行进程

(4)设置强制位与冒险位

用户可以用chmod指令来为文件设置强制位与冒险位

set uid : chmod u + s 文件名

set gid : chmod g + s 文件名

sticky : chmod o + t 文件名

强制位与冒险位也可以通过一个数字加和,放在读写执行的三位数字前来指定

4(set uid)

2(set gid)

1(sticky)

注意:set uid 只能在文件上面设定、set gid能在目录和文件上面设定、sticky只能在目录上面设定

五、umask

每个用户建立文件时,此文件都会有默认权限

默认权限的值由环境中的umask值来确定

用户可以自主改动umask值,并在改动后建立的文件上得到体现

一般用户的默认uask值为002,系统用户的默认umask值为022.

如果没有umask时文件默认权限是rw-rw-rw-、目录默认权限是rwxrwxrwx

上面的新建文件的权限计算方法,没有umask时默认权限减去umask值

rw-rw-rw-

6 6 6

0 2 2 (去掉组写权限、和普通用户写权限)

6 4 4

rw-r--r--

由此可见,如果要去掉某个权限,则umask该位就是该权限码

六、根目录下的目录

/bin :存储常用用户指令

/boot :存储核心、模块映像等启动用文件

/dev :存储设备文件

/etc :存储系统、服务的配置目录与文件

/home :存放个人主目录

/ib :存放库文件,诸如核心模块、驱动

/lost+found :存储fsck用的孤儿文件

/mnt :系统加载文件系统时用的常用挂载点

/opt :第三方工具使用的安装目录

/proc :虚拟文件系统,包含系统讯息等资料

/root :root用户的主目录

/sbin :存储系统管理用指令

/tmp :临时文件的暂存点

/usr :存放与用户直接相关的文件与目录

/var :存储在系统运行中可能会更改的数据

相关内容