0%

Linux 权限管理详解:从基础权限到 ACL 与 sudo 授权

Linux 系统的安全性很大程度上依赖于严格的权限管理机制。通过控制文件和目录的访问权限,可确保用户仅能操作其被授权的资源。本文将系统讲解 Linux 权限的查看、修改、ACL 高级权限及 sudo 授权等核心内容。

权限的查看与含义

使用 ls -l 命令可查看文件或目录的权限信息,输出结果的第一个字段包含 10 个字符,分别代表文件类型和权限。

权限字段解析

ls -l 的输出为例:

1
2
-rw-------. 1 root root   946 Feb 14 16:13 anaconda-ks.cfg
drwxr-xr-x. 2 root root 4096 Feb 15 15:47 Desktop
  • 第 1 个字符:文件类型

    • -:普通文件
    • d:目录
    • l:软链接
    • c:字符设备(如键盘)
    • b:块设备(如硬盘)
    • p:管道文件
    • s:套接字文件
  • 第 2-10 个字符:权限位(9 位,每 3 位一组)
    分为三组,分别对应所有者(u)所属组(g)其他人(o) 的权限:

    • r(读权限,4):可查看文件内容或列出目录文件。
    • w(写权限,2):可修改文件内容或增删目录文件。
    • x(执行权限,1):可执行文件或进入目录。

    示例解析:

    • rw-------:所有者有读、写权限,所属组和其他人无权限。
    • rwxr-xr-x:所有者有读、写、执行权限,所属组和其他人有读、执行权限。

权限修改:chmod 命令

chmod 用于修改文件或目录的权限,支持符号模式数字模式两种方式。

符号模式(直观易懂)

基本语法
阅读全文 »

Linux 文件操作命令全解析:从创建到管理的完整指南

文件操作是 Linux 系统管理的核心内容,涉及创建、删除、查看、复制、移动等一系列操作。本文将详细介绍 Linux 中常用的文件操作命令,包括 touchrmcatcpmv 等,帮助你熟练掌握文件管理的各种技巧。

创建文件:touch 命令

touch 命令主要用于创建空文件,同时也能修改文件的时间戳(访问时间、修改时间)。

基本用法

1
touch [选项] 文件名

常用选项与示例

  • 创建空文件
1
2
3
4
5
6
7
8
# 创建单个文件
touch test.txt

# 创建多个文件
touch file1.txt file2.txt

# 批量创建文件(使用大括号扩展)
touch doc{1..5}.txt # 创建 doc1.txt 到 doc5.txt
  • 修改文件时间戳

    • -a:仅修改访问时间(文件被读取的时间)。
    • -m:仅修改修改时间(文件内容被修改的时间)。
    • -d "时间":指定时间(如 2023-10-01 12:00)。
    • -r 参考文件:将目标文件的时间同步为参考文件的时间。
    1
    2
    3
    4
    5
    6
    7
    8
    # 修改 test.txt 的访问时间为当前时间
    touch -a test.txt

    # 将 file2.txt 的时间同步为 file1.txt
    touch -r file1.txt file2.txt

    # 指定文件时间为 2023 年 1 月 1 日
    touch -d "2023-01-01" log.txt
  • 避免创建新文件

    1
    touch -c newfile.txt  # 若 newfile.txt 不存在,不创建;若存在,仅更新时间

删除文件:rm 命令

rm(remove)命令用于删除文件或目录,使用时需谨慎,删除后通常无法恢复。

基本用法

阅读全文 »

Linux 目录操作命令详解:从浏览到管理的核心工具

目录操作是 Linux 命令行的基础,掌握 lscdmkdirrmdirpwd 等命令能让你高效管理文件系统结构。本文将详细解析这些命令的用法、选项及实战技巧,帮助你熟练应对目录相关操作。

文件与目录列表:ls 命令

ls(list)命令用于列出目录中的文件和子目录,是最常用的 Linux 命令之一。通过不同选项,可灵活控制显示格式和内容。

基本用法

1
2
ls [选项] [目录/文件路径]
# 若不指定路径,默认列出当前目录内容

核心选项详解

选项 功能描述 示例
-l 长格式显示详细信息(权限、所有者、大小、修改时间等)。 ls -l /home 列出 /home 目录的详细内容
-a 显示所有文件(包括隐藏文件,以 . 开头的文件),包含 .(当前目录)和 ..(父目录)。 ls -a 显示当前目录所有文件
-A 显示所有文件(包括隐藏文件),但不包含 ... ls -A 更简洁地显示隐藏文件
-h 人性化单位显示文件大小(如 K、M、G),需配合 -l 使用。 ls -lh 显示文件大小(如 1.5K、2.3M)
-t 修改时间排序(最新修改的文件在前)。 ls -lt 按修改时间降序列出文件
-r 反向排序(与 -t 配合可实现按修改时间升序)。 ls -ltr 按修改时间升序列出文件
-S 文件大小排序(从大到小)。 ls -lS 按大小降序列出文件
-d 仅显示目录本身的信息,而非目录内的内容。 ls -ld /etc 显示 /etc 目录的详细信息
-i 显示文件的inode 编号(文件系统中唯一标识)。 ls -i 查看当前目录文件的 inode
-R 递归列出所有子目录中的内容(遍历整个目录树)。 ls -R /var 递归列出 /var 下所有文件
-F 在文件名后添加符号标识类型(目录加 /,可执行文件加 *,链接加 @)。 ls -F 直观区分文件类型
-1 强制单列输出(数字 1),适合管道处理(如 `ls -1 grep “txt”`)。 ls -1 单列显示文件

过滤器:模式匹配

ls 支持通过通配符快速筛选文件,常用通配符:

  • *:匹配任意数量的任意字符(包括零个)。
  • ?:匹配单个任意字符
示例
阅读全文 »

Linux 目录结构详解:深入理解文件系统的组织逻辑

Linux 系统采用单根目录结构(以 / 为根节点),所有文件和目录都从根目录衍生而来。这种标准化的目录布局确保了不同 Linux 发行版(如 CentOS、Ubuntu)的一致性,方便用户和程序定位资源。本文将详细解析 Linux 主要目录的功能和用途,帮助你快速掌握文件系统的组织逻辑。

目录结构概览

Linux 目录结构遵循 FHS(Filesystem Hierarchy Standard,文件系统层次结构标准),核心目录按功能可分为系统核心目录用户数据目录临时 / 可变数据目录三大类。以下是最常用的目录及其功能:

目录路径 功能分类 核心功能描述
/ 根目录 整个文件系统的起点,所有目录都是其子孙目录。
/bin/usr/bin 命令目录 存放普通用户和超级用户均可执行的基础命令(如 lscpmkdir)。
/sbin/usr/sbin 系统命令目录 存放仅超级用户(root)可执行的系统管理命令(如 rebootifconfig)。
/boot 启动目录 存放系统启动必需的文件(如内核 vmlinuz、引导程序 grub)。
/dev 设备文件目录 所有硬件设备的抽象文件(如硬盘 sda、终端 tty、鼠标 mouse0)。
/etc 配置文件目录 系统和应用程序的配置文件(如网络配置 network、用户配置 passwd)。
/home 用户主目录 普通用户的个人数据目录(如 /home/user1/home/zhang)。
/lib/lib64 函数库目录 系统和程序依赖的共享库文件lib64 为 64 位系统专用)。
/lost+found 恢复目录 系统崩溃后,fsck 工具修复的文件碎片存放处(通常为空)。
/mnt/media 挂载目录 临时挂载外部设备(如 U 盘、光盘)的挂载点(/media 更偏向自动挂载)。
/proc 进程信息目录 虚拟目录,存放内存中的进程和系统状态信息(如 /proc/cpuinfo 显示 CPU 信息)。
/opt 第三方软件目录 存放手动安装的第三方软件(如 /opt/google/opt/java)。
/usr 系统资源目录 存放应用程序、文档、库文件等(相当于 Windows 的 Program Files)。
/tmp 临时文件目录 存放系统和用户的临时文件(重启后可能被清空)。
/var 可变数据目录 存放动态变化的数据(如日志 /var/log、缓存 /var/cache、邮件 /var/mail)。

核心目录详解

命令与系统工具目录

/bin/usr/bin
  • 功能:存放所有用户可执行的基础命令,是系统运行的核心依赖。
  • 特点/bin/usr/bin 的软链接(部分发行版),确保命令路径的兼容性。
  • 常见命令ls(列目录)、cp(复制)、mv(移动)、sh(Shell 解释器)。
阅读全文 »

SSH 连接被拒问题排查与解决全指南

在使用 SSH 连接 Linux 虚拟机或服务器时,“连接被拒” 是常见问题。本文将以 “sshd 服务未启动” 为切入点,详细介绍排查思路、解决方法及预防措施,帮助你快速恢复 SSH 连接。

核心原因:sshd 服务状态异常

SSH 连接依赖 sshd 服务(SSH 服务器进程),若服务未启动或异常,会直接导致连接被拒。以下是针对性的排查与解决步骤:

检查 sshd 服务状态

登录 Linux 系统(如通过虚拟机控制台),执行以下命令查看 sshd 状态:

1
2
3
4
5
# 方法 1:通过 init.d 脚本查看
/etc/init.d/sshd status

# 方法 2:通过 service 命令查看(推荐)
service sshd status
状态解读:
  • active (running):服务正常运行,排除服务未启动的问题。
  • inactive (dead)stopped:服务未启动,需手动启动。

启动或重启 sshd 服务

若服务未启动,执行以下命令恢复:

1
2
3
4
5
6
7
8
# 启动服务
service sshd start

# 重启服务(适用于服务运行异常的情况)
service sshd restart

# 或使用 init.d 脚本
/etc/init.d/sshd start
阅读全文 »