Linux 系统

Ubuntu 文件权限学习文档

ll 不是 Linux 原生基础命令,是 ls l 的系统别名。

作者:洋柿子·2026-09-01·共 7 篇 · 当前 5

Ubuntu 文件权限学习文档

一、ll 指令

ll 不是 Linux 原生基础命令,是 ls -l 的系统别名。

作用:一键查看文件 / 目录的完整权限、所属用户、所属组、文件大小、修改时间,是查看权限最常用的指令。

执行后能直观看到:所有者权限、同组用户权限、其他用户权限 三段权限标识。

二、chmod 指令基础

chmod 是 change mode 的缩写,专门用来修改文件或目录的访问权限。

  • 仅 文件所有者 和 root/sudo 管理员 有权限修改
  • 可以控制:谁能读、谁能写、谁能执行文件

三、Linux 权限三大身份

Linux 把访问文件的人分成三类,权限分开控制:

  1. u(user 所有者):文件创建者、拥有者
  2. g(group 同组用户):和所有者在同一个用户组的用户
  3. o(other 其他用户):系统里除上面两类以外的所有人
  4. a(all 所有用户):包含 u+g+o 全部

四、三种基础权限标识

表格

权限字符 含义 数字值
r 可读 4
w 可写 2
x 可执行 1

规则:权限数字可以累加**,组合出不同权限。

五、chmod 数字权限原理

权限按 所有者 → 同组 → 其他 三位一组排列,每一位用 4、2、1 相加:

  • 7 = 4+2+1 → rwx 读 + 写 + 执行
  • 6 = 4+2 → rw- 读 + 写
  • 5 = 4+1 → r-x 读 + 执行
  • 4 = 4 → r-- 只读

六、chmod 777 详解

拆解含义

chmod 777 文件名

  • 第 1 个 7:所有者 拥有读、写、执行全部权限
  • 第 2 个 7:同组用户 拥有读、写、执行全部权限
  • 第 3 个 7:其他所有用户 拥有读、写、执行全部权限

作用

给文件开放最高全权限,系统内任何用户都可以读写、修改、运行该文件。

安全提醒

⚠️ 不要随意给系统文件、重要文件设置 777,权限全开容易被恶意篡改,存在安全隐患。只应用于开发测试环境的临时共享场景。

七、常用实用权限搭配

  • chmod 755:所有者可读写执行,其他人只读执行(目录最常用)
  • chmod 644:所有者可读写,其他人只读(普通文件最常用)
  • chmod a+x 文件:给所有用户添加执行权限(AppImage 常用)
  • chmod 660 文件:所有者和同组用户可读写,其他人无权限(敏感文件)
  • chmod 700 文件夹:仅所有者可读写执行(加密文件夹常用)
  • chmod 444 文件:所有人只读不可写(共享只读资源)

快捷命令速查

# 一键设置所有 .pth 文件为只读(防止误删)
chmod 444 *.pth

# 递归设置目录下所有可写文件为只读
find /path -type f -w -exec chmod 444 {} \;

# 添加文件执行权限(常用,但谨慎使用)
chmod +x script.sh

# 撤销所有文件的执行权限(服务器安全配置)
find /app -type f ! -name "*.sh" -exec chmod -x {} \;

八、常用实用命令速查

文件/目录基础操作

# 强制删除文件(高危⚠️)
rm -rf /path/to/file      # 递归强制删除整个目录

# 移动/复制文件
mv old_name.txt new_name.txt    # 移动/重命名(目标位置相同)
mv src.txt dst/               # 移动文件到目录
cp src.txt dst/               # 复制文件(不移动)
cp -r src/ dst/               # 递归复制目录

# 解压缩 tar 包
tar -zxvf archive.tar.gz      # 解压到当前目录
tar -zxvf archive.tar.gz -C /path/to/dir  # 解压到指定目录
tar -czvf new.tar.gz *.txt    # 打包压缩当前目录下的 txt 文件

软件安装与管理

# 在线安装软件包
sudo apt update              # 更新软件包列表(每次安装前先执行)
sudo apt install -y package-name  # 安装软件(-y 自动回答 yes)
sudo apt remove package-name  # 仅卸载软件保留配置
sudo apt purge package-name   # 彻底卸载软件及配置文件
sudo apt autoremove           # 删除依赖包卸载后留下的空依赖

# 授予 AppImage 执行权限
chmod +x app.AppImage

# 安装本地 deb 包(非软件源)
sudo dpkg -i package.deb
# 如果缺依赖可修复
sudo apt -f install

系统重启/关机命令

# 重启系统
sudo reboot                 # 立即重启
sudo shutdown -r now        # 立即重启
sudo shutdown -r +10        # 10 分钟后重启
sudo shutdown -r +1         # 1 分钟后重启

# 关机
sudo shutdown -h now        # 立即关机
sudo shutdown -h +10        # 10 分钟后关机
sudo poweroff               # 关机
sudo halt                   # 停止系统

# 紧急重启(键盘断连回锅)
sudo reboot -f             # 强制重启

系统信息查询

# 查看目录内容
ls -l ./directory           # 第一行状态(- 表示文件,d 表示目录)
ls -a                       # 包含隐藏文件(.)
ls -lh                      # 人类可读大小(M/G)
ls -lt                      # 按修改时间倒序列出(最新在上)

# 查看内核版本
uname -r                    # 显示 Linux 版本

# 查看当前主机名/用户
uname -n                    # 显示主机名
whoami                     # 显示当前用户名

# 查看系统详细版本
cat /proc/version           # 系统版本详情
cat /etc/os-release         # 发行版信息

磁盘管理

# 查看磁盘使用情况
df -h                       # 人类可读的磁盘空间使用
du -sh ./directory         # 查看目录大小
du -h --max-depth=1 ./dir1 ./dir2  # 查看多个目录大小

# 查找大文件
find /path -type f -size +100M -exec ls -lh {} \;  # 查找超过 100M 的文件

# 查看磁盘挂载点
df -T                       # 显示文件系统类型
mount                       # 列出所有挂载点

进程管理

# 查看运行进程
ps aux                      # 查看所有进程详情
ps -ef                      # 等效命令
ps -x                       # 显示后台进程

# 查找特定进程
ps aux | grep nginx         # 查找 nginx 进程
pgrep -la nginx            # 查找并显示 nginx 的 PID

# 终止进程
kill -9 <PID>               # 强制终止进程
kill <PID>                  # 优雅终止进程

# 查看进程资源占用
top                         # 实时查看进程(按 M 排序)
htop                        # UI 友好版 top(需要安装)

# 查找 CPU/内存占用高的进程
pstree -op                  # 显示所有进程树

SSH 远程管理(运维必备)

# 查看 SSH 配置
cat /etc/ssh/sshd_config

# 凭证免密配置(永不过期)
ssh-copy-id root@hostname

# 远程 SSH 登录
ssh user@user.example.com

# 执行远程命令
ssh user@host "cd /app && python main.py"

# 后台运行命令
ssh user@host "nohup python app.py > app.out"

快速任务配置

# 配置 sudo 免密(管理员用)
sudo visudo                 # 编辑 sudo 配置(防误改)
# 添加规则:user=ALL ALL=(ALL) NOPASSWD:ALL
# 或限定命令:user=ALL ALL=(ALL) NOPASSWD: /usr/bin/apt*, /sbin/reboot

# 测试免密是否生效
sudo ls /root               # 应无 prompt 直接成功

九、常见场景实战

场景 1:安全加固

# 关闭不必要���服务
sudo systemctl disable docker
sudo systemctl disable docker.socket

# 限制 root 登录 SSH
echo "PermitRootLogin no" >> /etc/ssh/sshd_config
sudo systemctl restart sshd

# 设置 SSH 密码长度为 40 位
# 禁止 root 登录,强制密码长度为 40 位
echo "PermitEmptyPasswords no" >> /etc/ssh/sshd_config

场景 2:批量权限修复

# 修复.or 文件权限(防止大队网页被锁)
find /app -type f -name "*.or" -exec chmod 755 {} \;

# 修复目录权限
find /home -type d -perm 000 -exec chmod 755 {} \;

场景 3:服务管理

# 服务控制
sudo systemctl status nginx      # 查看服务状态
sudo systemctl enable nginx      # 开机自启
sudo systemctl disable nginx     # 停止开机自启
sudo systemctl restart nginx     # 重启服务
sudo systemctl stop nginx        # 停止服务

# 查看服务日志
sudo journalctl -xe             # 实时查看
sudo dmesg -T -w                # 实时查看内核日志

十、参考资料

十一、运维最佳实践建议

  1. 权限最小化原则:只赋予完成工作所需的最小权限,避免使用 777
  2. 定期权限审计:每月检查一次目录权限,及时发现异常
  3. 配置版本管理:系统配置文件要纳入版本控制,避免手动错误修改
  4. 操作备份:执行重命名或删除操作前,先 cp 备份文件
  5. 专业工具优先:优先使用 modern 工具(如 systemctl),避免使用 Shell 脚本管理,减少系统脆弱性
  6. 日志留痕:所有系统操作都要记录日志,便于问题溯源

适配版本:Ubuntu 20.04+(包含 GNOME 桌面环境推荐 GUI 工具)