目录
3.1Linu目录配置的依据--FHS(Filesystem Hierarchy Standard)
3.1.1根据文件系统使用的次数与是否与用户进行交互,FHS将目录定义为四种交互作用的形态
1、执行文件权限的对象
对于一个文件,可能对其执行操作的对象有用户、用户组或者其他。也就是own、group、other。相应的在系统中也有对他们进行管理的配置文件。账号和一般用户的信息记录在/etc/passwd中,而密码则记录在/etc/shadow中。Lin组所有组名都记录在/etc/group中。
2、文件的属性与权限的类型
2.1文件属性
[root@localhost /]# ll
total 56
lrwxrwxrwx. 1 root root 7 Mar 26 17:50 bin -> usr/bin
dr-xr-xr-x. 5 root root 4096 Apr 24 00:03 boot
drwxr-xr-x. 2 root root 6 Apr 22 17:08 cdrom
drwxr-xr-x. 20 root root 3520 Apr 26 17:35 dev
drwxr-xr-x. 131 root root 8192 Apr 26 17:35 etc
-rw-r--r--. 1 root root 516 Apr 1 19:23 fstab
drwxr-xr-x. 3 root root 19 Apr 24 23:02 github
-rw-r--r--. | 1 | root | root | 512 | Mar 26 18:09 | fstab |
文件类型权限 | 链接数 | 文件拥有者 | 文件所属用户组 | 文大小件 | 最后修时间 | 文件名 |
第一栏:d=目录、-=文件、l=链接文件、b=块设备、c=设备文件中的键盘 鼠标,后面为文件权限。其他栏如文所叙述。
TIP:想修改默认系统语可以更改配置文件【/etc/locale.conf】
文件权限重要性
- 系统保护功能
- 团队开发软件与数据共享的功能
- 设置不当直接危害系统本身
2.2如何修改文件的属性与权限
记住三个命令chgrp、chown、chmod。意思分别为修改属组、修改拥有者、修改权限。命令的通用选项
-R 递归。
数字类型修改:
r=4、w=2、x=1
符号修改:
chmod | u g o a |
+ - = |
r w x |
文件或目路 |
2.3目录、文件的权限与意义
2.3.1权限对文件的意义
1)r(read) 可读取文件内容,可复制粘贴
2)w(write) 可编辑与修改文件的内容
3)x(eXexute) 该文件具有被系统执行的权限,也可删除
2.3.2权限对目录的意义
1)r 可以读取目录内的文件名与目录列表
2)w 可以对目录内的文件与目录进行移动包括,删除
3)x 可以将该目录作为工作目录 那
2.4Linux文件种类与扩展名
- 常规文件:文本文件ASCII、二进制文件、数据文件
- 目录(directory)
- 链接文件(link)
- 设备与设备文件(block device)
- 数据接口文件(sockets)
- 数据传输文件(FIFO,piepe)
Linux拓展名:文件拓展名仅作方便理解作用,并不能使文件能够被执行。单一文件或目录名最大容许文件为255字节。
3、Linux目录配置
3.1Linu目录配置的依据--FHS(Filesystem Hierarchy Standard)
3.1.1根据文件系统使用的次数与是否与用户进行交互,FHS将目录定义为四种交互作用的形态
可分享(shareable) | 不可分享(unshareable) | |
不变(static) | /usr(软件存放处) | /etc(配置文件) |
/opt(第三方辅助软件) | /boot(启动与内核文件) | |
可变动(variable) | /var/mail(用户邮箱) | /var/run(程序相关) |
/var/spool/news(新闻组) | /var/lock(程序相关) |
实事上,FHS针对目录树仅定义了三层目录下应该放置什么数据
- / (root,根目录): 与启动系统有关;
- /usr (unix software resource):与软件安装/执行相关;
- /var(variabl):与系统运行过程有关
3.2三层(/、/usr、/var)目录的意义与内容
3.2.1 根目录的意义与内容
根目录是整个系统最重要的一个目录,其他目录都是由根目录衍生出去,根目录在与系统的启动、还原、修复等操作有关。
因此FSH建议:根目录所在分区应该越小越好,且应用程序所安装的软件最好不在和根目录在同一分区。
FHS要求根目录下必须存在的目录
- /bin:放置能够在单人模式下还能被使用的命令。/bin下的命令通常被root与用户使用
- /boot:放置开启启动会使用的文件。包括启动文件以及启动选项及选项配置文件。包括内核文件vmlinuz,以及启动引导目录/boot/grub2
- /dev:设备文件
- /etc:系统主要的配置文件,FHS建议不放可执行文件在此目录。此在还归定最好存在以下目录
- /etc/opt:放置第三方辅助软件/opt的相关配置文件
- /etc/X11:与Xwindow相关
- /etc/sgml:与SGML格式有关的配置文件
- /etc/xml:与XML格式有关的配置文件
- /lib:在启动时会被使用到的函数库,以及/bin或/sbin下命令会调用的函数库。FHS要求必须存在下面目录
- /lib/modules/ : 这个目录主要放置可抽换式的内核相关模块(驱动程序)
- /media:可删除设备,包括软盘、光盘、DVD挂载
- /mnt:临时挂载外设。
- /opt:提供给第三方复制软件放置的目录。
- /run:系统启动后的各项信息存放,/run目录可以使用内存来模拟。
- /sbin:放置启动、修复还原系统会使用到的命令。
- /srv: 服务器启动后,这些服务所需要使用的数据目录
- /tmp:临时文件夹
- /usr--
- /var--
FHS建议根目录下存在的目录
- /home:系统默认的家目录
- /lib<qual>:放置不同格式的二进制文件
- /root:管理员的家目录
- /lost+found:etx文件系统格式下才会产生的文件
- /porc:虚拟文件系统,放置的数据都在内存中,如系统内核、进程信息、外接设备的状态以及网络状态
- /sys:虚拟文件系统,记录内核与系统硬件信息相关的内容,包括已加载的内核模块与内核检测到的硬件设备信息
3.2.2 /var目录的意义与内容
根据FHS定义/usr中放置的数据属于可分享不可修改(shareble,static),所以可以用于网络分享中。usr为Unix Software Resource 的缩写,用来存放操作系统的软件资源,这个目录所占据的空间最多。一般来说FHS建议/usr下应该存有以下子目录。
- /usr/bin/:一般用户使用的系统命令,/bin就是链接此处的
- /usr/lib/:如上,/lib也是链接此处的
- /usr/local/:用于存放管理者安装的软件。
- /usr/sbin/:非系统正常运行使用到的命令,/sbin也是链接此处的
- /usr/share/:用于存储一些只读的文本文件,如/usr/share/man|doc(软件说明文档)|zoneinfo(与时区有关的)
建议存在的目录
- /usr/games/:游戏
- /usr/include/:c/c++程序语言的头文件与包含文件放置处,当我们以Tarball方式安装软件时,会使用到里面的许多文件
- /usr/libexec:某些不被用户常用的执行文件或脚本,列如大部分Xwindow下面的操作命令
- /usr/lib<qual>/:与/lib/<qual>功能相同,所以链接到此处
- /usr/src/:一般源代码建议放置在这里,至于内核源代码则建议放到/usr/src/Linux/目录中
3.2.3/var目录的含义与内容
如果说/usr是安装时会占用大空间的目录,那么/var则是在系统运行之后才会渐渐的占用硬盘空间目录。因为/var目录主要针对经常性变动的文件,包括缓存(cache)、日志文件(log file)以及某些软件运行所产的文件,包括(lock file、run file),或者MySql数据文件等。
常见的子目录有
- /var/cache/:应用程序本身运行产生的缓存
- /var/lib/:程序本身执行的过程中,需要使用的数据文件放置的目录。如MySql的数据库就放置在/var/lib/mysql,还有rpm数据库/var/lib/rpm/
- /var/lock/:程序锁,
- /var/log/:重要到不行,放置日志文件的目录,比如/var/log/messafes、/var/log/wtmp
- /var/mail/:邮件
- /var/run/:程序或者服务启动后,会将他们的PID放置到这个目录下。与/run
- /var/spool/:队列数据,就是排队等待其他程序使用的数据