用户与用户组


用户指某个具体账号, 用户组是一组身份的集合.

Linux文件具有用户, 用户组, 其它人三种身份的权限.

Linux文件权限概念


Linux文件属性


  1. [root@kuaicdn usr]# ls -al /
  2. 总用量 20
  3. dr-xr-xr-x. 19 root root 270 7 2 17:03 .
  4. dr-xr-xr-x. 19 root root 270 7 2 17:03 ..
  5. -rw-r--r-- 1 root root 0 6 30 16:26 .autorelabel
  6. lrwxrwxrwx. 1 root root 7 3 7 2021 bin -> usr/bin
  7. dr-xr-xr-x. 5 root root 4096 3 7 2021 boot
  8. drwx--x--x. 4 root root 44 10 19 16:46 data
  9. drwxr-xr-x 19 root root 3100 10 16 11:49 dev
  10. drwxr-xr-x. 90 root root 8192 10 27 14:26 etc
  11. drwxr-xr-x. 2 root root 6 4 11 2018 home
  12. lrwxrwxrwx. 1 root root 7 3 7 2021 lib -> usr/lib
  13. lrwxrwxrwx. 1 root root 9 3 7 2021 lib64 -> usr/lib64
  14. drwxr-xr-x. 2 root root 6 4 11 2018 media
  15. drwxr-xr-x. 2 root root 6 4 11 2018 mnt
  16. drwxr-xr-x 3 root root 18 7 2 17:03 mydata
  17. drwxr-xr-x. 3 root root 41 3 7 2021 opt
  18. dr-xr-xr-x 177 root root 0 10 16 11:49 proc
  19. dr-xr-x---. 8 root root 246 10 25 15:34 root
  20. drwxr-xr-x 29 root root 920 10 27 14:27 run
  21. lrwxrwxrwx. 1 root root 8 3 7 2021 sbin -> usr/sbin
  22. drwxr-xr-x. 2 root root 6 4 11 2018 srv
  23. dr-xr-xr-x 13 root root 0 10 16 11:49 sys
  24. drwxrwxrwt. 20 root root 4096 10 27 14:27 tmp
  25. drwxr-xr-x. 13 root root 155 3 7 2021 usr
  26. drwxr-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.