修改目录权限

✅ 一、新建一个组

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."
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值