授课语音

Linux 操作系统的文件与权限管理

1. 课程概述

1.1 什么是文件与权限管理?

在 Linux 系统中,文件与权限管理是系统管理员的核心任务之一。通过合理的文件权限设置,可以确保数据的安全性与系统的稳定性。Linux 系统中的文件和目录有不同的权限设置,这些权限决定了哪些用户可以访问文件或目录以及他们能执行哪些操作。

1.2 本课程目标

  • 理解 Linux 文件系统的结构与文件管理。
  • 掌握文件与目录权限的设置和管理。
  • 学会使用命令行工具进行文件与权限的管理。

2. Linux 文件系统基础

2.1 文件系统结构

Linux 文件系统是层次化的,根目录(/)是文件系统的起始点,所有其他文件和目录都是根目录下的子目录。常见的目录结构如下:

/               根目录
/bin            存放系统启动和修复需要的基础命令
/etc            系统配置文件
/home           用户的家目录
/var            可变数据文件,通常用于存放日志文件、缓存文件等
/tmp            临时文件
/usr            应用程序和系统资源

2.2 文件类型

在 Linux 中,文件有不同的类型:

  • 普通文件(-
  • 目录(d
  • 符号链接(l
  • 套接字(s
  • 字符设备文件(c
  • 块设备文件(b

可以使用 ls -l 命令查看文件的类型和权限。


3. 文件与目录权限

3.1 查看文件权限

在 Linux 中,文件的权限是通过 ls -l 命令查看的,示例如下:

-rwxr-xr-- 1 user group 4096 Jan 01 10:00 file.txt
  • 第一列:文件类型和权限。
    • - 表示普通文件,d 表示目录。
    • 接下来的 9 个字符表示文件权限。
      • 第一组(rwx):文件拥有者的权限。
      • 第二组(r-x):文件所属组的权限。
      • 第三组(r--):其他用户的权限。
  • 第二列:硬链接数量。
  • 第三列:文件拥有者。
  • 第四列:文件所属组。
  • 第五列:文件大小。
  • 第六列:文件的最后修改时间。

3.2 文件权限的表示方法

文件权限有三种主要的表示方式:

  1. 符号表示法(r, w, x)

    • r:读权限(Read),表示可以查看文件内容。
    • w:写权限(Write),表示可以修改文件内容。
    • x:执行权限(Execute),表示可以执行文件(如果是可执行文件)。
  2. 数字表示法(0-7): 权限由三个数字表示,每个数字代表一个权限组的权限:

    • 读(r)= 4
    • 写(w)= 2
    • 执行(x)= 1 权限数字的总和代表文件或目录的权限。例如,rwx 对应 7,rw- 对应 6,r-- 对应 4。

    例如,chmod 755 file.txt 中的 755 表示:

    • 拥有者(user)权限:rwx(读、写、执行)= 7
    • 所属组(group)权限:rx(读、执行)= 5
    • 其他用户(others)权限:r-x(读、执行)= 5

3.3 修改文件权限

使用 chmod 命令修改文件或目录的权限。

  • 使用符号表示法:
    chmod u+x file.txt   # 为文件拥有者添加执行权限
    chmod g-w file.txt   # 移除文件所属组的写权限
    chmod o=r file.txt   # 设置其他用户只有读权限
    
  • 使用数字表示法:
    chmod 755 file.txt   # 设置权限为 rwxr-xr-x
    chmod 644 file.txt   # 设置权限为 rw-r--r--
    

3.4 修改文件拥有者与用户组

  • 修改文件的拥有者: 使用 chown 命令修改文件的拥有者:
    sudo chown newuser file.txt  # 将 file.txt 的拥有者改为 newuser
    
  • 修改文件的所属组: 使用 chgrp 命令修改文件的所属组:
    sudo chgrp newgroup file.txt  # 将 file.txt 的所属组改为 newgroup
    
  • 同时修改拥有者和所属组: 使用 chown 命令可以同时修改文件的拥有者和所属组:
    sudo chown newuser:newgroup file.txt  # 将拥有者改为 newuser,所属组改为 newgroup
    

4. 文件与目录的特殊权限

4.1 SUID(Set User ID)

SUID 是一种特殊权限,当执行某个文件时,程序会以文件拥有者的身份运行,而不是执行者的身份。用 s 表示。

  • 示例:rwsr-xr-x
  • 使用场景:需要临时提升权限的程序,如 passwd 命令。
  • 设置 SUID 权限:
    chmod u+s /path/to/program  # 设置 SUID 权限
    

4.2 SGID(Set Group ID)

SGID 是一种特殊权限,当执行某个文件时,程序会以文件所属组的身份运行,而不是执行者的身份。用 s 表示。

  • 示例:rwSr-xr-x
  • 设置 SGID 权限:
    chmod g+s /path/to/program  # 设置 SGID 权限
    

4.3 Sticky Bit

Sticky Bit 是一种特殊权限,用于目录。当该目录设置 Sticky Bit 时,只有文件的拥有者或 root 用户才能删除该目录中的文件,其他用户无法删除。

  • 示例:rwxrwxrwt
  • 设置 Sticky Bit 权限:
    chmod +t /path/to/directory  # 设置 Sticky Bit
    

5. 目录权限与管理

5.1 创建目录

使用 mkdir 命令创建目录:

mkdir /path/to/directory  # 创建一个目录

5.2 修改目录权限

使用 chmod 修改目录权限时,要注意:

  • 只有拥有执行权限的用户,才能进入该目录。
  • 如果不设置执行权限,即使有读权限,也无法进入目录。
chmod 755 /path/to/directory  # 设置目录权限为 rwx r-x r-x

5.3 删除目录

使用 rmdir 删除空目录:

rmdir /path/to/directory  # 删除空目录

使用 rm -r 删除非空目录:

rm -r /path/to/directory  # 删除非空目录

6. 小结

通过本课程的学习,我们了解了 Linux 文件系统的结构,掌握了文件与目录的权限管理方法,包括如何查看、修改文件权限,如何管理文件的拥有者和用户组,以及如何使用特殊权限(如 SUID、SGID 和 Sticky Bit)来提升安全性。掌握这些基本的文件与权限管理技巧,将有助于在日常的 Linux 系统管理中进行安全、高效的操作。

去1:1私密咨询

系列课程: