Linux 用户、组与文件权限管理
1. 可脚本化工具的优势
在 Linux 系统管理中,建议优先使用像 useradd
这类可自动化的工具,而非基于交互式向导的工具如 adduser
,即便可自动化工具可能更复杂、难学。也有人会问,为何不用图形化工具,而非要记这些难记的命令行命令呢?
其实,非交互式命令有很大优势。由于这些命令运行时不依赖实时用户输入,所以它们具有可脚本化的特点。例如,创建一百个用户和创建一个用户几乎一样简单。在实际应用中,如构建 Docker 镜像、反复准备生产环境或为云实例编写 cloud-init 设置脚本时,可脚本化的命令就非常实用。作为开发者,自动化操作能让事情更具可重复性、安全性和高效性。学会使用非交互式命令,就能将其作为更大自动化流程的一部分,避免需要人工干预的步骤,减少出错、节省时间和降低风险。
2. 用户与组基础回顾
Linux 使用用户和组的抽象概念来管理和控制系统中的进程、文件和其他资源。我们需要了解创建和管理用户与组的基本命令,以及根用户与普通用户的重要区别。
在实践中,我们可以进行创建用户、添加组、修改用户信息以及清理创建的资源等操作。实际上,在 Unix 系统中,定义用户和组的只是普通的文本文件,这对开发者来说是件好事,在以下场景中会带来便利:
- 创建 Docker 镜像,以特定非根用户运行应用程序。
- 为数据科学团队设置长期运行的云实例,配置登录和共享组。
- 在本地测试环境中,尽量减少错误的影响范围。
- 排查基于用户和组的应用程序错误,比如需要根用户权限才能打开秘密文件或执行特权操作