在 Ubuntu(以及大多数 Linux 系统)中,文件系统权限主要通过 用户、用户组、权限位(rwx)、以及 特殊权限(SUID/SGID/Sticky) 来管理。下面从基础到进阶系统讲解。
| 权限 | 含义 | 文件 | 目录 |
|---|---|---|---|
| r | 读 | 查看内容 | 列出目录 |
| w | 写 | 修改内容 | 创建/删除文件 |
| x | 执行 | 执行程序 | 进入目录 |
ls -l
示例:
-rwxr-xr-- 1 alice devs 2048 test.sh
解释:
-:普通文件rwx:所有者权限r-x:用户组权限r--:其他人权限alice:所有者devs:所属组chmod 755 file
权限含义:
常见组合:
| 权限 | 含义 |
|---|---|
| 644 | 普通文件 |
| 755 | 可执行文件 / 目录 |
| 700 | 仅自己可访问 |
chmod u+x file # 给所有者加执行权限
chmod g-w file # 去掉组写权限
chmod o=r file # 其他人只读
chmod a+r file # 所有人可读
sudo chown user file
sudo chown user:group file
sudo chown -R www-data:www-data /var/www
sudo chgrp devs file
x 权限才能进入chmod 700 dir
| 场景 | 权限 |
|---|---|
| 个人目录 | 700 |
| Web 目录 | 755 |
| 共享目录 | 775 |
chmod 4755 /usr/bin/passwd
chmod 2775 dir
chmod 1777 /tmp
umask
umask 022 # 默认 755 / 644
umask 027 # 更安全
setfacl -m u:bob:rwx file
getfacl file
setfacl -x u:bob file
✅ Web 目录:
sudo chown -R www-data:www-data /var/www
sudo chmod -R 755 /var/www
✅ 禁止普通用户访问:
chmod 700 private_dir
✅ 避免 777(除非临时)
chmod 777 # ❌ 不安全
ls -l # 查看权限
chmod 755 file # 改权限
chown user:group file # 改所有者
chmod +x script # 加执行权限
chmod 1777 /tmp # 粘滞位
如果你有具体场景(如:Web 服务器、Docker、多用户共享目录、NFS、Samba 等),可以告诉我,我可以给你针对性的权限配置方案。