基础chmod使用脚本
#!/bin/bash # 基本权限修改脚本 echo "=== 文件权限修改脚本 ===" # 设置文件为所有者读写、组只读、其他人只读 chmod 644 file.txt # 设置目录及其内容权限 chmod -R 755 my_directory/ # 使用符号模式 chmod u+x script.sh # 给所有者添加执行权限 chmod g+w file.txt # 给组添加写权限 chmod o-r file.txt # 移除其他人的读权限
批量修改脚本
#!/bin/bash
# 批量修改指定类型文件的权限
TARGET_DIR="/path/to/directory"
FILE_EXTENSION="*.sh"
echo "正在修改 $TARGET_DIR 中的 $FILE_EXTENSION 文件权限..."
# 批量添加执行权限
find "$TARGET_DIR" -name "$FILE_EXTENSION" -type f -exec chmod +x {} \;
# 批量修改为特定权限
find "$TARGET_DIR" -name "*.php" -type f -exec chmod 644 {} \;
find "$TARGET_DIR" -name "*.html" -type f -exec chmod 755 {} \;
交互式权限修改脚本
#!/bin/bash
echo "=== 交互式文件权限修改工具 ==="
# 获取用户输入
read -p "请输入文件/目录路径: " FILE_PATH
if [ ! -e "$FILE_PATH" ]; then
echo "错误: 路径不存在!"
exit 1
fi
read -p "请输入权限模式 (如: 755, 644, 777): " PERMISSION
# 确认操作
echo "即将修改: $FILE_PATH"
echo "新权限: $PERMISSION"
read -p "确认修改? (y/n): " CONFIRM
if [ "$CONFIRM" = "y" ] || [ "$CONFIRM" = "Y" ]; then
if [ -d "$FILE_PATH" ]; then
chmod -R "$PERMISSION" "$FILE_PATH"
else
chmod "$PERMISSION" "$FILE_PATH"
fi
echo "权限修改成功!"
else
echo "操作已取消"
fi
安全的文件权限设置脚本
#!/bin/bash
# 安全配置文件权限
set_permissions_safely() {
local TARGET=$1
local TYPE=$2
echo "安全配置权限: $TARGET"
case $TYPE in
"script")
# 脚本文件: 所有者可执行,其他人只读
chmod 755 "$TARGET"
;;
"config")
# 配置文件: 严格权限
chmod 600 "$TARGET"
;;
"public")
# 公开文件: 所有人可读
chmod 644 "$TARGET"
;;
"private")
# 私有文件: 仅所有者可访问
chmod 700 "$TARGET"
;;
*)
echo "未知的文件类型: $TYPE"
return 1
;;
esac
}
# 使用示例
set_permissions_safely "script.sh" "script"
set_permissions_safely "config.ini" "config"
递归修改脚本
#!/bin/bash
# 递归修改目录权限
modify_directory_permissions() {
local BASE_DIR=$1
local DIR_PERM=$2 # 目录权限
local FILE_PERM=$3 # 文件权限
echo "正在处理目录: $BASE_DIR"
# 修改目录权限
find "$BASE_DIR" -type d -exec chmod "$DIR_PERM" {} \;
# 修改文件权限
find "$BASE_DIR" -type f -exec chmod "$FILE_PERM" {} \;
echo "完成!"
}
# 使用:目录755,文件644
modify_directory_permissions "/var/www/html" 755 644
常用权限模板
#!/bin/bash
# 常用权限配置模板
case $1 in
"web")
# Web目录标准权限
find /var/www/html -type d -exec chmod 755 {} \;
find /var/www/html -type f -exec chmod 644 {} \;
;;
"secure")
# 安全配置
chmod 600 /etc/shadow
chmod 600 /etc/gshadow
chmod 644 /etc/passwd
chmod 644 /etc/group
;;
"dev")
# 开发环境
chmod 755 *.sh
chmod 644 *.py
chmod 644 *.js
;;
*)
echo "用法: $0 {web|secure|dev}"
exit 1
;;
esac
使用建议
-
权限值参考:

755:目录和可执行文件644:普通文件600:敏感配置文件700:私有文件
-
安全注意事项:
- 避免使用
777权限 - 使用
-R参数时注意目录结构 - 修改前最好备份权限
- 避免使用
-
执行脚本:
# 先给脚本添加执行权限 chmod +x modify_permissions.sh
然后执行
./modify_permissions.sh
根据具体需求选择合适的脚本模板,注意在生产环境操作前先在测试环境验证。