Linux 文件基本属性

《Linux 文件基本属性》

📁 学习目标

  1. 理解 Linux 文件的基本属性,包括权限、所有者、时间戳等。
  2. 掌握 ls -l 命令的输出含义,能快速识别文件类型和权限信息。
  3. 能使用 chmodchownchgrp 修改文件属性。
  4. 在阿里云 Ubuntu ECS 上进行实际操作与排错练习。

🧠 核心重点(表格提炼)

属性 内容说明
文件类型 普通文件 -、目录 d、链接文件 l、设备文件 b/c
权限 所有者 rwx、组 rwx、其他 rwx
所有者 文件所属用户(owner)
所属组 文件所属用户组(group)
文件大小 字节数或人类可读格式(如 5K, 10M
时间戳 最后修改时间(mtime)、访问时间(atime)、状态改变时间(ctime)

🔍 详细讲解

image

1. 使用 ls -l 查看文件属性 👀

-rw-r--r-- 1 ubuntu ubuntu  123 Apr  5 10:00 file.txt
drwxr-xr-x 2 ubuntu ubuntu 4096 Apr  5 10:00 mydir/
lrwxrwxrwx 1 ubuntu ubuntu    7 Apr  5 10:00 link -> file.txt

📌 解释每一列:

列数 含义
1 文件类型 + 权限字符串
2 链接数(硬链接数量)
3 文件所有者
4 文件所属组
5 文件大小(字节)
6-8 最后一次修改时间(月 日 时)
9 文件名

2. 文件类型详解 🧱

类型字符 文件类型 示例
- 普通文件 file.txt
d 目录 mydir/
l 符号链接(软连接) link -> file.txt
b 块设备文件 /dev/sda
c 字符设备文件 /dev/tty
p 管道文件 FIFO
s 套接字文件 socket

📄 查看文件类型命令:

file /path/to/file

3. 文件权限解析 🔐

✅ 权限结构:

rw-r--r--

可以拆分为三部分:

  • rw-:所有者(User)
  • r--:所属组(Group)
  • r--:其他人(Others)

每个权限位表示:

  • r:读(Read)——允许查看内容
  • w:写(Write)——允许修改内容
  • x:执行(eXecute)——允许作为程序运行

✅ 数字权限对照表:

权限符号 数值
--- 0
--x 1
-w- 2
-wx 3
r-- 4
r-x 5
rw- 6
rwx 7

📌 示例:

chmod 644 file.txt   # rw-r--r--
chmod 755 script.sh  # rwxr-xr-x

4. 修改文件权限:chmod 🔧

✅ 使用符号方式修改权限:

chmod u+x script.sh      # 给所有者增加执行权限
chmod go-w file.txt      # 去除组和其他人的写权限
chmod a=r file.txt       # 所有人只能读

✅ 使用数字方式修改权限:

chmod 755 dir_name       # 设置为 rwxr-xr-x
chmod 600 secret.txt     # 设置为 rw-------

📌 注意事项:

  • 不要随意给文件设置 777,这会带来安全风险。
  • 对于脚本文件(如 .sh),记得添加执行权限才能运行。

5. 修改文件所有者和组:chown & chgrp 👤

✅ 修改所有者:

sudo chown john file.txt

✅ 修改所有者和组:

sudo chown john:developers file.txt

✅ 只修改组:

sudo chgrp developers file.txt

📌 注意事项:

  • 普通用户不能随意更改文件的所有者,需用 sudo 提权。
  • 修改目录及其子目录的权限和所有者时加上 -R 参数:
sudo chown -R john:developers mydir/
sudo chmod -R 755 mydir/

6. 文件时间戳管理 🕒

Linux 文件包含三种时间戳:

时间戳 含义 命令
atime Access time(最后访问时间) cat file.txt
mtime Modify time(最后修改内容时间) echo "hello" >> file.txt
ctime Change time(最后修改元数据时间) chmod, chown

📌 查看时间戳:

stat file.txt

📌 手动修改时间戳(用于测试):

touch -t 202504051200 file.txt   # 设置时间为 2025年4月5日 12:00

7. 文件链接:硬链接 vs 软链接 🔄

  • 实际指向同一个 inode
  • 删除原文件不影响链接文件(只要还有一个硬链接存在)
  • 不能跨文件系统,不能对目录创建
ln file.txt hard_link
  • 类似 Windows 的快捷方式
  • 删除原文件后链接失效
  • 可以跨文件系统,也可以链接目录
ln -s file.txt soft_link

📌 注意:

  • 使用 ls -l 查看时,软链接显示箭头指向原始文件。
  • 删除软链接不会影响原始文件。

🧩 实战案例:ECS 环境下的常见场景 🛠️

场景一:部署网站提示“Permission denied”🚫

你上传了一个 PHP 网站到 /var/www/html,但浏览器访问时报错:

“Permission denied”

📌 排查思路:

  1. 检查文件权限:
ls -l /var/www/html/index.php
  1. 如果是 600 或无读权限,修改为 644
sudo chmod 644 /var/www/html/index.php
  1. 检查文件所有者是否为 www-data(Apache/Nginx 用户):
sudo chown www-data:www-data /var/www/html/index.php

场景二:脚本无法执行 ❌

你编写了一个 Shell 脚本 deploy.sh,但在运行时报错:

“Permission denied”

📌 排查思路:

  1. 检查是否有执行权限:
ls -l deploy.sh
  1. 添加执行权限:
chmod +x deploy.sh
  1. 运行脚本:
./deploy.sh

场景三:误删软链接的目标文件 🧨

你创建了一个软链接:

ln -s /home/ubuntu/data.txt link.txt

后来删除了 data.txt,再访问 link.txt 会提示:

“No such file or directory”

📌 解决方法:

  • 重新创建目标文件,或删除无效软链接:
rm link.txt

🧰 小贴士(建议收藏)🔖

技巧 说明
ls -F 自动在目录后面加 /,便于区分
ls -a 显示隐藏文件(以 . 开头)
ls -h 人性化显示文件大小(如 1K, 2M
ls -t 按修改时间排序
ls -S 按文件大小排序
find / -name "*.log" 查找所有 .log 文件
du -sh * 快速查看当前目录下各文件/目录大小

🎯 总结一句话:

“掌握 Linux 文件属性,就像拥有了一把万能钥匙🔑 —— 它不仅能帮你保护文件安全,还能让你轻松搞定服务器上的各种权限问题!”

是否继续下一章?我将继续输出:

  • 《Linux 用户与组管理实战》🔐
  • 《Shell 命令入门与自动化脚本》🖥️
  • 《Linux 文件查找与文本处理技巧》🔍

请告诉我你想深入的方向吧!🚀

posted @ 2023-03-28 20:29  红尘过客2022  阅读(64)  评论(1)    收藏  举报