跳转到内容

Linux 基础/文件系统、权限

来自维基教科书,开放的书籍,为开放的世界

文件系统

[编辑 | 编辑源代码]
  • Linux 系统基础
    • 系统分区
    • 交换分区,在内存不足时使用,未使用的程序文件会被转移到该分区。
  • 我们可以随时将交换空间添加为系统上的文件。这些文件的大小不会改变,因此不会出现碎片化。
  • 我们可以将 Linux 安装到独立的文件系统中,如果我们将其作为服务器安装。这样做是为了提高安全性,例如,如果日志文件填满了系统,而它们在单独的分区上,系统就不会停止。
  • 我们通常将以下目录放在单独的分区上:/home /var /tmp /boot /usr
  • 分区
    • 我们将介质(HDD、SSD)划分为分区,并在其中创建文件系统。
    • 分区表指定了存储分区的方案。出于兼容性原因,Linux 默认使用“DOS”分区表。
    • DOS 分区表只允许 4 个主分区,其余分区可以位于扩展分区中。扩展分区可以进一步划分为多个部分,我们称这些部分为逻辑分区。
    • GPT 分区表允许无限个分区。这更为常见。
  • DAC(Discretionary Access Control,自主访问控制)允许已识别的用户根据其属性访问对象。访问权限只能设置为所有者和组。
  • 我们也称之为 UNIX 权限。
  • 还有一种称为 MAC(Mandatory Access Control,强制访问控制)。我们为对象创建访问规则,这些规则适用于所有用户(即使是 root)。
  • 第三种是基于角色的访问控制(RBAC)。超级用户创建多个角色。有了给定的权限,我们可以访问特定的对象。
  • 我们区分三种权限
    • 读取 (r)
    • 写入 (w)
    • 执行 (x)
  • 权限可以授予三种类型的用户
    • 所有者
    • 属于某个组的用户
    • 其他所有人
  • 我们可以使用 chmod 命令设置权限,有时我们会根据下表将权限与所有者、组和其他人相关联
用户 u
g
其他 o
所有 a
  • 示例:HOME 文件夹中 ls -l 的输出

-rw-r--r-- 1 joska joska 3184 dec 13 18.37 .bashrc

类型 所有者权限 组权限 其他
- rw- r-- r--

类型可以是

内容 意义
- 普通文件
d 目录
D Solaris 网关(进程间通信)
c 字符设备(tty 或打印机)
b 块设备(磁盘或 CD-ROM)
l 符号链接(软链接)
s 套接字
= 或 p FIFO(System V,Linux)

chown 命令

  • 我们可以使用该命令分配文件或目录的所有者和组。
chown joska.joska filename
chown joska:joska filename
chown joska. filename
chown joska: filename

chmod 命令

  • 它可以用于设置权限。
  • 我们可以使用两种方法添加/移除权限。第一种是使用数字,第二种是使用字母。
  • 我们使用字母指定要添加或移除权限的用户。然后是 +/-,取决于我们要修改的内容(+: 添加,-: 移除)。最后是我们想要更改的内容。用户类型是可叠加的,因此我们可以写成 ug 或 uo 或 ugo,最后一个等效于 "a"。权限也可以叠加。
  • 我们要授予用户对 forest.txt 文件的写入权限:chmod u+w forest.txt
  • 我们要授予组和所有者所有权限:chmod ug+rwx forest.txt
  • 我们也可以使用数字来设置:chmod 770 forest.txt
  • "770" 的解释
所有者 / 用户 (u) 组 (g) 其他 (o)
421 421 000

4 表示读取,2 表示写入,1 表示执行。

SUID、SGID、粘性位

  • SUID:我们可以设置程序以哪个用户的权限运行,但这存在安全风险,所以只有在无法用其他方法解决问题时才使用。
  • SGID:设置该位后,程序可以以文件所有者所在组的权限运行,并且我们可以在目录中设置它,因此所有文件都属于特定组的所有权。
  • 粘性位:打开粘性位表示操作系统应在执行后将文件保留在内存中,以便以后更快地启动。
    • 我们也可以在目录的情况下打开粘性位。任何人都可以将文件添加到具有粘性位的文件夹中(尽管其他权限必须符合),但每个人都可以删除自己的文件。
华夏公益教科书