使用组权限
Linux 允许将文件与组关联起来,从而实现协作式的访问控制。在这一步中,你将学习如何创建一个组、更改文件的组所有权以及设置适当的组权限。
首先,让我们创建一个新组。在实际场景中,这个组可能代表一个部门或项目团队:
sudo groupadd developers
现在,让我们创建一个将与这个组共享的文件:
touch shared_config.txt
echo "## Development configuration settings" > shared_config.txt
echo "debug_mode=true" >> shared_config.txt
echo "log_level=verbose" >> shared_config.txt
目前,这个文件属于你的用户和你的主组。让我们检查一下:
ls -l shared_config.txt
你应该会看到类似以下的输出:
-rw-rw-r-- 1 labex labex 61 Oct 25 13:00 shared_config.txt
要将文件的组所有权更改为 developers
组,请使用 chown
命令:
sudo chown labex:developers shared_config.txt
语法是 chown user:group filename
。在这里,我们将用户保持为 labex
,但将组更改为 developers
。
现在检查所有权:
ls -l shared_config.txt
你应该会看到:
-rw-rw-r-- 1 labex developers 61 Oct 25 13:00 shared_config.txt
注意,组已经更改为 developers
,但权限仍然相同。让我们修改权限,允许组成员读取但不允许写入,同时阻止其他用户访问:
chmod 640 shared_config.txt
这将设置:
- 所有者:可读可写 (
6
= 4+2
)
- 组:只读 (
4
)
- 其他用户:无权限 (
0
)
再次检查权限:
ls -l shared_config.txt
现在你应该会看到:
-rw-r----- 1 labex developers 61 Oct 25 13:00 shared_config.txt
现在,developers
组的成员可以读取这个配置文件,但不能修改它。不在 developers
组中的用户则根本无法访问该文件。
你也可以使用符号模式来达到相同的效果:
chmod u=rw,g=r,o= shared_config.txt
这个命令明确设置了:
- 用户/所有者:可读可写
- 组:只读
- 其他用户:无权限
要将一个用户添加到 developers
组,通常你会使用:
sudo usermod -a -G developers username
然而,这超出了本实验的范围,因为这需要创建额外的用户账户。