chmod 777使所有者、所属组及其他用户均获得读、写、执行权限(rwx=4+2+1=7),但因过度开放易引发安全风险,仅限临时调试使用;生产环境应优先选用644、755等最小必要权限。
直接用 chmod 777 可以让所有用户(所有者、所属组、其他用户)对文件或文件夹拥有读、写、执行全部权限。但这个操作风险高,仅建议在临时调试或受控环境使用,不推荐用于系统文件、敏感目录或生产项目。
终端中执行 chmod 777 的基本步骤
打开“终端”(位于应用程序 → 实用工具),然后按顺序操作:
- 先确认目标路径是否正确,例如:
ls -l ~/Documents/test.sh查看当前权限 - 对单个文件赋予 777 权限:
sudo chmod 777 /路径/到/文件名 - 对文件夹及其内部所有内容递归赋权:
sudo chmod -R 777 /路径/到/文件夹 - 执行时会提示输入管理员密码,输完回车即可生效
777 各位数字分别代表什么
三位数对应三类用户的权限组合,每位是 4(读)+ 2(写)+ 1(执行)的和:
- 第一个 7:文件所有者(owner)→ rwx(4+2+1)
- 第二个 7:所属用户组(group)→ rwx
- 第三个 7:其他用户(others)→ rwx
所以 777 = 所有人可读、可写、可执行。这也是它危险的原因——比如一个脚本被设为 777 后,任意账户都能运行甚至修改它。
替代更安全的常用权限参考
多数场景下,不需要也不该用 777。可根据用途选择更合理的数字:
-
644:普通文件(如文本、配置文件)→ 所有者可读写,组和其他人只读 -
755:可执行文件或公开目录→ 所有者全权,组和其他人可读可执行(不可写) -
600或700:私密文件或目录(如密钥、本地开发目录)→ 仅所有者可读写(或加执行) - 给脚本加执行权限,通常只需:
chmod +x script.sh(等价于扩展当前权限中的 x 位)
执行后没生效?可能卡在这些地方
即使 chmod 成功,仍可能报 “Permission denied”,常见原因包括:
- 文件被锁定(含
uchg属性):用ls -lO 文件名检查,如有uchg,需先执行chflags nouchg 文件名 - 所在目录无执行权限(x):对目录来说,缺少 x 权限会导致无法进入或访问其下文件,即使文件本身是 777
- 终端或IDE未获得“完全磁盘访问”权限(macOS Catalina 及更新系统):需在「系统设置 → 隐私与安全性 → 完全磁盘访问」中手动添加
- 文件归属不是当前用户:用
ls -l看第三列用户名,若不是你,需配合sudo chown $USER:staff 文件名修改所有者


















