用户与用户组
用户指某个具体账号, 用户组是一组身份的集合.
Linux文件具有用户, 用户组, 其它人三种身份的权限.
Linux文件权限概念
Linux文件属性
[root@kuaicdn usr]# ls -al /总用量 20dr-xr-xr-x. 19 root root 270 7月 2 17:03 .dr-xr-xr-x. 19 root root 270 7月 2 17:03 ..-rw-r--r-- 1 root root 0 6月 30 16:26 .autorelabellrwxrwxrwx. 1 root root 7 3月 7 2021 bin -> usr/bindr-xr-xr-x. 5 root root 4096 3月 7 2021 bootdrwx--x--x. 4 root root 44 10月 19 16:46 datadrwxr-xr-x 19 root root 3100 10月 16 11:49 devdrwxr-xr-x. 90 root root 8192 10月 27 14:26 etcdrwxr-xr-x. 2 root root 6 4月 11 2018 homelrwxrwxrwx. 1 root root 7 3月 7 2021 lib -> usr/liblrwxrwxrwx. 1 root root 9 3月 7 2021 lib64 -> usr/lib64drwxr-xr-x. 2 root root 6 4月 11 2018 mediadrwxr-xr-x. 2 root root 6 4月 11 2018 mntdrwxr-xr-x 3 root root 18 7月 2 17:03 mydatadrwxr-xr-x. 3 root root 41 3月 7 2021 optdr-xr-xr-x 177 root root 0 10月 16 11:49 procdr-xr-x---. 8 root root 246 10月 25 15:34 rootdrwxr-xr-x 29 root root 920 10月 27 14:27 runlrwxrwxrwx. 1 root root 8 3月 7 2021 sbin -> usr/sbindrwxr-xr-x. 2 root root 6 4月 11 2018 srvdr-xr-xr-x 13 root root 0 10月 16 11:49 sysdrwxrwxrwt. 20 root root 4096 10月 27 14:27 tmpdrwxr-xr-x. 13 root root 155 3月 7 2021 usrdrwxr-xr-x. 20 root root 278 7月 1 15:07 var
使用ls命令查看文件属性时发现有以下几项:
lrwxrwxrwx. 1 root root 8 3月 7 2021 sbin -> usr/sbin [类型权限] [链接] [拥有者] [用户组] [文件容量] [修改日期] [文件名]
[ 类型权限 ]
第一列 :
- l 表示该文件为链接文件
- d 目录
- 文件
- b 设备文件可按块随机读写的设备
- c 设备文件的串行端口设备(键盘, 鼠标)
rwxrwxrwx : 三个字符为一组, 均为[ rwx ], 一组权限集合, 没有权限则显示[ - ]
- r 可读
- w 可写
- x 可执行
- 第一组 所属用户权限
- 第二组 所属用户组权限
- 第三组 其他人权限
[ 链接 ]
表示有多少文件名链接到此节点(inode)
[ 文件容量 ]
默认单位为Byte
修改文件属性与权限
chgrp : 修改文件用户组
chown : 修改文件拥有者
chmod : 修改文件的权限, SUID, SGID与SBIT等
[ chgrp ]
用户组在/etc/group文件中
[ chown ]
用户在/etc/passwd文件中
[ chmod ]
修改文件权限
目录与文件的权限意义
文件权限:
- r 可读取文件
- w 可修改文件, 不能删除文件
- x 文件可执行
目录权限:
- r 读取目录列表, 可以ls
- w 可新增文件或删除文件, 可移动
- x 用户可进入该目录, 文件读取时也需要目录的x权限
Linux文件种类与扩展名
文件种类
- 常规文件, 表示为[ - ]
- 纯文本文件(ASCII)
- 二进制文件
- 数据文件
- 目录, 表示为[ d ]
- 链接文件, 表示为[ l ]
- 设备与设备文件
- 区块设备文件, 随机存取, 表示为[ b ]
- 字符设备文件, 串行端口, 表示为[ c ]
- 数据接口文件, 表示为 [ s ]
- 数据输送文件(FIFO), 解决多个程序同时读写一个文件的错误, 表示为[ p ]
Linux目录配置
目录作用的标准.
Linux目录配置的根据-FHS
Filesystem Hierarchy Standard(FHS), 该标准的目的是让用户了解已安装软件通常放置于哪个目录下.
FHS区分目录标准:
| 可分享(shareable) | 不可分享(unshareable) | |
|---|---|---|
| 不变(static) | /usr(软件存放处) | /etc(配置文件) |
| /opt(第三方辅助软件) | /boot(启动与内核文件) | |
| 可变动(variable) | /var/mail(用户邮箱) | /var/run(程序相关) |
| /var/spool/news(新闻组) | /var/lock(程序相关) |
FHS指定的目录树架构:
- / : 与启动系统相关
- /usr : 与软件执行/安装有关
- /var : 与系统运行过程有关
根目录的意义和内容
FHS建议 : 根目录应该越小越好, 且应用程序所安装的软件最好不要与根目录放在同一个分区.
| 目录 | 文件内容 |
|---|---|
| 第一部分: FHS要求必须存在的目录 | |
| /bin | 可执行文件, 单人维护模式下能够使用, 可以被root与一般账户使用 |
| /boot | 系统启动后会使用的文件, 包括内核文件与启动选项对应文件. 内核文件常用文件名: vmlinuz; 存在grub2启动程序会存在/boot/grub2目录 |
| /dev | 设备与接口文件, 读写该文件等同于读写设备. |
| /etc | 系统配置文件, 一般用户尽可查看. 应该还存在以下目录: /etc/opt(必要) : 第三方辅助软件/opt的配置文件 /etc/X11(建议) : X Window的配置文件 /etc/sgml(建议) : 与SGML格式相关的配置文件 /etc/xml(建议) : 与XML格式相关的配置文件 |
| /lib | 启动时会用到的函数库, 以及在/bin或/sbin下会使用的函数库. /lib/modules/: 可抽换式的内核相关模块(驱动程序) |
| /media | 可删除的设备 |
| /mnt | 暂时挂载某些额外的设备建议放在该目录下 |
| /opt | 第三方辅助软件放置的目录 |
| /run | 系统启动后的各项信息放在该目录下, 该目录可使用内存模拟 |
| /sbin | 启动过程中需要的命令 |
| /srv | 网络服务启动后的数据目录 |
| /tmp | 临时目录 |
| /usr | |
| /var | |
| 第二部分: FHS建议可以存在的目录 | |
| /home | |
| /lib |
不同格式的函数库 |
| /root |
非FHS定义的重要目录
| /lost+found | 使用ext2, ext3, ext4文件系统格式才会产生的目录, 文件系统出错时放置遗失的片段. |
|---|---|
| /proc | 虚拟文件系统, 数据在内存当中, 本身不占硬盘空间. |
| /sys | 虚拟文件系统, 记录内核与系统硬件信息相关的内容. |
/usr的意义与内容
NIX Software Resource, UNIX操作系统软件资源放置的目录.
| 目录 | 文件内容 |
|---|---|
| 第一部分: FHS要求必须存在的目录 | |
| /usr/bin | 一般用户可使用的命令, /bin目录链接该目录 |
| /usr/lib | /lib链接该目录 |
| /usr/local | 系统管理员在本机安装自己下载的软件 |
| /usr/sbin | /sbin目录链接该目录 |
| /usr/share | 只读的数据文件. |
| 第二部分: FHS建议可存在的目录 | |
| /usr/games | 游戏相关的数据放置 |
| /usr/include/ | c/c++等程序语言的头文件以及包含文件 |
| /usr/libexec/ | 不被一般用户常用的执行文件或脚本 |
| /usr/lib |
|
| /usr/src/ | 源代码 |
/var的意义与内容
系统运行后慢慢占用硬盘的目录, 主要包括缓存, 日志, 软件生成的文件.
| 目录 | 文件内容 |
|---|---|
| 第一部分: FHS要求必须存在的目录 | |
| /var/cache | 应用程序产生的缓存 |
| /var/lib/ | 程序执行需要使用到的数据文件目录 |
| /var/lock/ | 某些设备或文件一次只能被一个程序占用, 上锁的目录 |
| /var/log/ | 日志 |
| /var/mail | 邮箱 |
| /var/run/ | 某些程序启动将PID放置在该目录下 |
| /var/spool/ | 放置队列数据 |
针对FHS, 发行版与CentOS7的区别
目录树
绝对路径与相对路径
CentOS的观察
除了FHS外, 还有Linux Standard Base(LSB)标准
参考: https://wiki.linuxfoundation.org/lsb/start
查看本机支持的LSB
yum install redhat-lsb
lsb_release -a
重点
- Linux的每个文件中, 可分别给予用户, 用户组与其他人三种身份的rwx权限
- 用户组最重要的功能之一是团队合作.
- 要开发目录给任何人浏览时,至少要有rx权限.
- 能否读取到某个文件, 目录权限也要x.
