Linux 文件权限教程：chmod 与 chown 一次搞懂

Linux 文件权限教程：chmod 与 chown 一次搞懂在 Linux 上执行脚本时遇到 Permission denied，几乎是每个人都会撞上的第一课。这背后就是 Linux 的文件权限机制。本教程依据 GNU coreutils 官方手册整理，讲清楚 ls -l 输出的含义，以及 chmod、chown 的用法。一、看懂权限字符串执行 ls -l 会看到类似输出： -rwxr-xr-- 1 kunkun users 4096 Aug 30 10:00 script.sh 开头 10 个字符就是权限信息，拆开看：第 1 位：文件类型（- 普通文件，d 目录，l 软链接）第 2-4 位：**所有者（user）**权限：rwx 第 5-7 位：**所属组（group）**权限：r-x 第 8-10 位：**其他人（others）**权限：r-- 三种基本权限：字母数字对文件对目录 r 4 读取内容列出文件名 w 2 修改内容新建/删除文件 x 1 执行程序进入目录二、chmod 修改权限数字法：每组权限是 r+w+x 的和。rwxr-xr-- = 754。 chmod 755 script.sh # rwxr-xr-x：自己可执行，别人可读可进 chmod 644 file.txt # rw-r--r--：普通文件最常见权限 chmod 600 id_rsa # rw-------：私钥只允许自己读 chmod +x script.sh # 给所有人加执行权限符号法：u 所有者、g 组、o 其他、a 全部，配合 + 添加、- 移除、= 设置： chmod u+x script.sh # 只给所有者加执行权限 chmod go-w file.txt # 移除组和其他人的写权限 chmod a-r secret.txt # 所有人都不可读递归修改目录及其下所有内容，加 -R： chmod -R 755 /var/www/html 三、chown 修改所有者 sudo chown kunkun file.txt # 改所有者 sudo chown kunkun:users file.txt # 同时改所有者和组 sudo chown -R www-data:www-data /var/www # 递归修改（Web 目录常见）修改所有者通常需要 root 权限，所以要加 sudo。四、常见场景速查场景命令脚本无法执行 chmod +x 脚本名 SSH 私钥报权限太开放 chmod 600 ~/.ssh/id_rsa Web 目录给 Nginx 读 chown -R www-data:www-data 目录普通文件标准权限 chmod 644 文件目录标准权限 chmod 755 目录五、权限为什么会"传染"——umask 新建文件的默认权限由 umask 决定，常见值 022：文件默认 644、目录默认 755。查看与临时修改： umask # 查看当前值 umask 077 # 之后新建的文件只有自己可读写想永久生效，把 umask 077 写进 ~/.bashrc。六、总结理解权限只需要记住三层人（所有者/组/其他人）× 三种权（r/w/x），chmod 的数字法就是三组八进制数。遇到 Permission denied，先 ls -l 看一眼，再用 chmod/chown 对症下药。