✅ 一、新建一个组
groupadd cc
• 系统会自动分配一个 新的 GID
• 不会破坏现有用户或权限
查看是否创建成功:
getent group cc
✅ 二、把 yan 加入新组
usermod -aG cc yan
⚠️ 一定要加 -a
否则会覆盖原有组(比如 wheel)
确认:
id yan
应该能看到:
uid=9008(yan) gid=1001(boco4a)
groups=1001(boco4a),10(wheel),<新GID>(cc)
✅ 三、让目录使用这个新组
chown -R root:cc /mnt/data1
chmod 2775 /mnt/data1
结果:
drwxrwsr-x 6 root cc 4096 ...
含义:
• root:全权
• cc成员(yan):可读写
• 其他用户:只读
• 这个 2 是 setgid 位(Set Group ID),它是 Linux 权限里的特殊权限位之一,新文件自动属于 cc
是的 该目录下的 已有文件/目录不会自动变,需要你手动处理一次。
setgid 只对“之后新建的东西”生效。
✅ 四、修复已有文件的权限
1️⃣ 目录
find /mnt/data1 -type d -exec chmod 2775 {} \;
2️⃣ 文件
find /mnt/data1 -type f -exec chmod 664 {} \;
✅ 五、最终效果
ls -ld /mnt/data1
drwxrwsr-x root cc...
ls -l /mnt/data1
-rw-rw-r-- yan cc xxx
drwxrwsr-x yan cc logs
✅ 六、自动化脚本
#!/bin/bash
path="/apps/tempstorage/yte"
# 防止空变量
if [[ -z "$path" ]]; then
echo "ERROR: path is empty"
exit 1
fi
# 路径必须存在
if [[ ! -d "$path" ]]; then
echo "ERROR: $path does not exist"
exit 1
fi
echo "Fixing ownership and permissions on: $path"
# 1. 属主 & 属组
chown -R root:cc "$path"
# 2. 目录权限(含 setgid)
find "$path" -type d -exec chmod 2775 {} \;
# 3. 文件权限
find "$path" -type f -exec chmod 664 {} \;
echo "Done."

785

被折叠的 条评论
为什么被折叠?



