1. 创建组
sudo groupadd police 创建警察组
sudo groupadd bandit 创建土匪组

2. 创建用户
创建警察用户(jack和jerry)
sudo useradd -m -G police jack
sudo useradd -m -G police jerry
创建土匪用户(xh和xq)
sudo useradd -m -G bandit xh
sudo useradd -m -G bandit xq

设置密码
echo "jack:0329zhou" | sudo chpasswd
echo "jerry:0329zhou" | sudo chpasswd
echo "xh:0329zhou" | sudo chpasswd
echo "xq:0329zhou" | sudo chpasswd

3. jack创建文件并设置权限
切换到jack用户
sudo su - jack
创建文件并设置初始权限(属主读写,属组读,其他无权限)
touch 123.txt
chmod 640 123.txt
ls -l 123.txt 验证权限:-rw-r----- 1 jack police 0 Jan 1 00:00 123.txt
修改权限(属组读写,其他读)
chmod 664 123.txt
ls -l 123.txt 验证权限:-rw-rw-r-- 1 jack police 0 Jan 1 00:00 123.txt
exit 返回原用户

4. xh投靠警察组
将xh加入police组
sudo usermod -aG police xh
验证xh的组
groups xh 输出应包含police和bandit

5. 测试xh的权限
切换到xh用户
sudo su - xh
尝试读写123.txt
cat /home/jack/123.txt 应成功(有读权限)
echo "test" >> /home/jack/123.txt 应失败(无写权限,因文件属组是police但xh的附加组未生效)
exit

6. 修复权限问题
修改文件属组为police(确保xh在police组中有写权限)
sudo chown jack:police /home/jack/123.txt
sudo chmod 664 /home/jack/123.txt 确保属组有写权限
再次测试
sudo su - xh
echo "test" >> /home/jack/123.txt 应成功
cat /home/jack/123.txt 查看写入内容
exit

7. 最终验证
检查文件权限和内容
ls -l /home/jack/123.txt 输出:-rw-rw-r-- 1 jack police 5 Jan 1 00:00 /home/jack/123.txt
cat /home/jack/123.txt 应显示"test"

关键步骤说明
1. 组和用户创建:
- 通过 groupadd 和 useradd 创建角色,用 -G 指定附加组。
- 使用 chpasswd 批量设置密码。
2. 文件权限控制:
- chmod 640:初始权限(属主读写,属组读)。
- chmod 664:调整后权限(属组读写,其他读)。
- 权限数字换算:
- 6 (4+2) = 属主读写
- 6 (4+2) = 属组读写
- 4 = 其他用户只读
3. 组权限问题修复:
- 用户加入新组后需重新登录或使用 newgrp police 刷新组权限。
- 直接通过 sudo 修改文件属组更快捷。
4. 安全建议:
- 生产环境中避免使用简单密码。
- 精确控制组权限(如用 chmod g+w 而非 chmod 777)。
最终结果
- 警察组用户(jack/jerry):可读写 123.txt。
- 土匪组用户(xq):仅可读。
- 投靠警察的xh:通过组权限获得读写能力。
3737

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



