Linux 中给文件添加可执行权限主要通过 chmod 命令实现。以下是详细方法和技巧:
chmod +x 文件名
示例:
chmod +x script.sh
# 添加执行权限
chmod u+x file # 给所有者添加执行权限
chmod g+x file # 给所属组添加执行权限
chmod o+x file # 给其他用户添加执行权限
chmod a+x file # 给所有用户添加执行权限
# 移除执行权限
chmod u-x file
chmod a-x file
# 设置特定权限
chmod u=rwx,g=rx,o=r file
# 常用权限组合
chmod 755 file # rwxr-xr-x (常用于脚本)
chmod 700 file # rwx------ (仅所有者可执行)
chmod 644 file # rw-r--r-- (普通文件默认权限)
chmod 777 file # rwxrwxrwx (所有人可执行,不推荐)
# 计算方法:
# r=4, w=2, x=1
# 所有者:rwx = 4+2+1 = 7
# 所属组:r-x = 4+0+1 = 5
# 其他:r-x = 4+0+1 = 5
# 给目录及其所有子目录文件添加执行权限
chmod -R +x directory/
# 只给.sh文件添加执行权限
find . -name "*.sh" -exec chmod +x {} \;
ls -l file # 查看文件权限
stat file # 显示详细信息
# 下载并直接添加执行权限
curl -O http://example.com/script.sh && chmod +x script.sh
# 创建脚本时直接设置权限
cat > myscript << 'EOF'
#!/bin/bash
echo "Hello World"
EOF
chmod +x myscript
# 批量给当前目录所有脚本添加权限
chmod +x *.sh *.py
# 使用通配符
chmod +x script-*
rwx rwx rwx
↑ ↑ ↑
用户 组 其他
r = 读取 (4)
w = 写入 (2)
x = 执行 (1)
# 设置SUID(以文件所有者身份执行)
chmod u+s file
# 设置SGID(以文件所属组身份执行)
chmod g+s file
# 粘滞位(常用于/tmp目录)
chmod +t directory
755 (rwxr-xr-x)
配置文件:通常设置为 644 (rw-r--r--)
私有文件:设置为 700 (rwx------)
# 1. 安装自定义脚本
sudo cp myapp /usr/local/bin/
sudo chmod +x /usr/local/bin/myapp
# 2. 开发环境快速设置
chmod +x ./configure
chmod +x ./build.sh
# 3. 修复权限问题
chmod 755 script.sh # 标准脚本权限
记住:执行权限只对普通文件和脚本有效,对于目录来说,"执行权限"表示可以进入该目录。