目录管理
-
Linux系统中目录组成结构
-
目录访问权限
- 目录是一种特殊的文件
- 目录上的读、写、执行与普通文件有所不同
- 读:用户可以读取目录内的文件
- 写:单独使用没有作用。它与读、执行权限连用可以在目录内添加与删除任何文件
- 执行:用户可以进入目录,调用目录内的资料
-
Linux常见的系统目录
- /bin: 存储常用用户指令
- /boot: 存储核心、模块映像等启动用文件
- /dev: 存储设备文件
- /etc: 存储系统、服务配置目录与文件
- /home: 存放个人主目录
- /lib: 存放库文件,储如核心模块、驱动
- /lost+found: 存储fsck用的孤儿文件
- /mnt: 系统加载外部文件系统常用挂载点
- /opt: 第三方工具使用的安装目录
- /proc: 虚拟文件系统,包含系统核心信息
- /root: root用户宿主目录
- /sbin: 存储管理指令
- /tmp: 临时文件暂存点
- /usr: 存放与用户直接相关的文件与目录
- /var: 存储在系统运行中可能会更改的数据
-
强制位与冒险位
- 在Linux系统中文件除了有读、写、执行权限外,文件系统还支持强制位(setuid、setgid)与冒险位(sticky)的特别权限。
- 针对文件创建者可以添加强制位(setuid),文件属组也可以添加强制位(setgid),针对其它用户可以添加冒险位(sticky)。
- 强制位与冒险位添加也执行权限(x)的位置上。如果该位置上已有执行权限,由强制位与冒险位位小写字母(s或t)的方式表示,否则,以大写字母(S或T)表示。
- 例:文件权限为”rwxr–r-x”,如果设置了强制位与冒险位,则新的权限为”rwsr-Sr-t”。
- 对所有者设置强制位setuid,一般是针对一个系统指令。
- 在默认情况下,用户执行一个指令,会以该用户身份来运行。
- 当对一个指令的可执行文件设置了(setuid),那么任何一个用户在执行这个文件的时候,都会以指令对应的可以执行文件的所有者身份来执行这个文件
- 命令:chmod u±s <文件名>
- 对组设置强位setgid,一般是针对一个目录。
- 在默认情况下,用户在目录中创建的文件或子目录的属组是属于该用户的主属组。
- 如果对一个目录设置了强制位,则任何用户在此目录中创建的文件或子目录都会继承此目录的属组(前提:有权限在此目录中创建文件或目录)。
- 命令:chmod g±s <目录名>
- 对其它用户设置冒险位,一般是针对一个目录。
- 在默认情况下,如果一个目录对用户有r、w、x权限,则此用户可以在此目录中建立与删除任何文件
- 一旦在此目录上设置了冒险位,则表示在此目录中,只有文件的所有者、目录所有者与系统管理员才可以在目录中删除此文件
- 命令:chmod ± t <目录名>
- 强制位与冒险位也可以通过一个数字的加和,放在读、写、执行的三位数字之前来指定。
- 4 (setuid)
- 2 (setgid)
- 1 (sticky)
- 例:要为某文件设置为”rwsr-xr-x”,则可以使用指令:chmod 4755 <文件名>
- 小实验:root建立了”/share/”目录,设置权限,使其它用户能够在其中建立自己的文件,用户lucy、jack可以更改所有人的文件,用户都不能删除他人的文件。
设置权限
测试
-
umask掩码
- Inode(Index Node 索引节点)
- Inodes table包含了ext2、ext3和ext4文件系统的所有属性;一个文件由两部分组成:节点和数据区。
- 节点表主要存放文件类型、权限、UID、GID、Link count、大小和时间戳,数据存放在磁盘的什么位置。
- 数据区里面存放真正的数据。
- 一个Inodes的大小大概为128B,一个文件至少占有1个Inodes,通过tune2fs -l /dev/sdax 可以查看这个分区的Inode size,Inode count,block count。
- 计算机识别一个用户通过UID,识别一个进程通过进程号,识别一个文件通过Inode number,文件名是给人来识别的。
- 通过ls -li命令可以查看节点号
- 节点号在创建时就已分配好了的
- 复制:同一个分区,节点号改变;不同分区,节点号改变。
- 移动:同一个分区,节点号不变;不同分区,节点号改变。
- 删除:只是删除了文件的节点表,数据没有被真正删除,只有当这个分区在写入数据时,才会覆盖原来的数据。
页码: 1 2