Linux 文件和目录
Linux 文件和目录
文章目录
- Linux 文件和目录
-
- Linux 目录
-
- Linux 目录配置的依据 --FHS
- 目录树
- 文件属性
-
- 文件的分类
- 一般权限 UGO
- 特殊权限 suid\sgid\sticky
- 隐藏属性 ATTR
- 文件访问控制列表 ACL
- 文件相关的命令
-
- 权限的修改 chmod chown chgrp umask
-
- chmod
- chgrp
- umask
- 相关文档 /etc/profile ~/.bash_profile
- ATTR 权限命令 chattr lsattr
-
- chattr
- lsattr
- ACL 权限命令
-
- ACL 权限概念
- getfacl
- 文件存储结构
- 软硬方式链接
- 指令和文件的搜索
-
- 肉眼查找 : ls -R
- 文件名的搜寻 :whereis, locate, find
-
- whereis
- locate
- find
- Linux 文件和目录作业
-
- UGO 权限作业
- 特殊权限作业
- ATTR 权限作业
- ACL 权限作业
Linux 目录
Linux 目录配置的依据 --FHS
因为利用 Linux 来开发产品或 distributions 的社区 / 公司或个人实在太多了 , 如果每个人都用自己的想法来配置文件放置的目录 , 那将可能造成很多管理上的困扰。 你能想象 , 你进入一个企业之后 , 所 接触到的 Linux 目录配置方法竟然跟你以前学的完全不同吗 ? 很难想象吧 ~ 所以 , 后来就有所谓的Filesystem Hierarchy Standard (FHS) 标准的出炉了 !
根据 FHS(http://www.pathname.com/fhs/) 的官方文件指出 , 他们的主要目的是希望让使用者可以了解到已安装软件通常放置在哪个目录下 , 所以他们希望独立的软件开发商、操作系统制作者、以及想要维护系统的用户 , 都能够遵循 FHS 的标准。 也就是说 ,FHS 的重点在于规范每个特定的目录下应该存放什么样子的数据而已。
亊实上 ,FHS 是根据过去的经验一直再持续的改版的 ,FHS 依据文件系统使用的频繁与否允许使用者随意更动 , 而将目录定义成为四种交互作用的形态 , 用表格来说有点像底下这样 :
可分享的 (shareable) | 不可分享的 (unshareable) | |
---|---|---|
不变的 (static) | /usr ( 软件放置处 ) | /etc ( 配置文件 ) |
/opt ( 第三方协力软件 ) | /boot ( 开机不核心档 ) | |
可变动的 (variable) | /var/mail ( 使用者邮件信箱 ) | /var/run ( 程序相关 ) |
/var/spool/news ( 新闻组 ) | /var/lock ( 程序相关 ) |
目录树
在类 Unix 系统中并不存在 C/D/E/F 盘符,一切的文件都是从 “ 根 (/)” 目录开始的并按照文件系统目录标准 FHS 采用树形结构来存放文件并定义了每个区域的用途。
目录名称严格的区分大小写,例如 root 、 rOOt 、 Root 、 rooT 等等均代表是不同的独立目录,并且名称中不得包含反斜杠 (/) 。
主要常见的目录定义:
目录名称 | 应放置文件的内容 |
---|---|
/boot | 开机所需文件 —— 内核,开机菜单及所需配置文件等 |
/dev | 任何设备与接口都以文件形式存放在此目录 |
/etc | 配置文件 |
/home | 用户主目录 |
/bin | 单用户维护模式下还能够被操作的命令 |
/lib | 开机时用到的函数库及/bin 与/sbin 下面命令要调用的函数 |
/sbin | 开机过程中需要的 |
/media | 一般挂载或删除的设备 |
/opt | 放置第三方的软件 |
/root | 系统管理员的主文件夹 |
/srv | 一些网络服务的数据目录 |
/tmp | 任何人均可使用的 “ 共享 ” 临时目录 |
/proc | 虚拟文件系统,例如系统内核,进程,外部设备及网络状态等 |
/usr/local | 用户自行安装的软件 |
/usr/sbin | 非系统开机时需要的软件/命令/脚本 |
/usr/share | 帮助与说明文件,也可放置共享文件。 |
/var | 主要存放经常变化的文件,如日志。 |
/lost+found | 当文件系统发生错误时,将一些丢失的文件片段存放在这里1.3 路径 |
另外一个重要的概念 “ 路径 ” ,这个路径指的是如何找到某个文件,分为 “ 绝对路径 ” 与 “ 相对路径 ” :
- 绝对路径 (absolute): 由根目录 (/) 开始写起的目录或文件名
- 相对路径 (relative): 相对于当前路径的写法
举例来说一个客人想找下厕所,你有两种回答的方法。
- 绝对路径:首先坐车来到你家,到了你家后,右手边第一个房间就是厕所。
- 相对路径:前面右拐第一个房间。
如果你说的是绝对路径,那么任何客人都可以按照这个提示找到你家的厕所,但缺点是过于繁琐,如果说的是相对路径,那么这个人并不是在每个路口右转都能找到厕所,缺点是不具备普遍性。
[root@rhel7 ~]# cd /etc/sysconfig/network-scripts/
[root@rhel7 network-scripts]# pwd
/etc/sysconfig/network-scripts
[root@rhel7 network-scripts]# cd ../modules
[root@rhel7 modules]# pwd
/etc/sysconfig/modules
文件属性
类 Unix 系统的设计初衷就是为让多用户同时工作,所以也迫使 Linux 系统有了极强的安全性。接下来我们一起来看看 linux 系统示如何实现安全性的。
[root@rhel7 tmp]# ll /
total 4148
lrwxrwxrwx. 1 root root 7 May 5 17:28 bin -> usr/bin
dr-xr-xr-x. 4 root root 4096 May 5 17:40 boot
drwxr-xr-x. 15 root root 4096 Aug 19 13:19 content
-rw------- 1 root root 2166784 Aug 8 05:24 core.2052
-rw------- 1 root root 19017728 Aug 8 05:27 core.2488
drwxr-xr-x 19 root root 3380 Oct 26 12:22 dev
drwxr-xr-x. 138 root root 12288 Oct 26 12:22 etc
drwxr-xr-x. 4 root root 31 Aug 23 17:32 home
lrwxrwxrwx. 1 root root 7 May 5 17:28 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 May 5 17:28 lib64 -> usr/lib64
drwxr-xr-x. 2 root root 6 May 25 2015 media
drwxr-xr-x. 2 root root 6 May 25 2015 mnt
drwxr-xr-x. 4 root root 36 May 6 13:19 opt
dr-xr-xr-x 229 root root 0 Oct 26 2016 proc
dr-xr-x---. 26 root root 4096 Oct 12 14:11 root
drwxr-xr-x 39 root root 1200 Oct 26 12:24 run
lrwxrwxrwx. 1 root root 8 May 5 17:28 sbin -> usr/sbin
drwxr-xr-x. 2 root root 6 May 25 2015 srv
dr-xr-xr-x 13 root root 0 Oct 26 2016 sys
drwxrwxrwt. 31 root root 4096 Oct 26 12:42 tmp
drwxr-xr-x. 13 root root 4096 May 5 17:28 usr
drwxr-xr-x. 23 root root 4096 Oct 26 2016 var
第二字段,文件硬链接数或目录子目录数
文件的分类
文件 | 操作 | |
---|---|---|
普通文件 | 纯文本档 (ASCII) | touch file |
二进制文件 (binary) | ||
数据格式文件 (data) | ||
目录 | (directory) | mkdir dire |
连结档 | (link) | ln file hfile |
ln -s file sfile | ||
ln -s ‘pwd’/file ssfile 绝对路径的软链接文件 | ||
设备与装置文件 | (device) | mknod bfile b 252 0 块设备 |
mknod cfile c 4 2 字符设备 | ||
数据输送文件 | (FIFO, pipe) | mkfifo pfile 管道文件 |