在 Linux 中,用户和组都是非常重要的概念,可以控制文件访问权限和资源的管理。
用户是标识一个进程、应用程序或系统管理员的账号,Linux 中每个用户用一个用户 ID (UID) 来标识。对于一个 Linux 操作系统,它至少会有一个 root 用户,以及若干个普通用户。root 用户是操作系统的超级管理员,可以执行任何操作和访问任何文件。普通用户通常只有有限的权限,只能访问一些指定的文件和目录,无法进行一些敏感的操作。
组是一组用户的名称的集合,它可以方便的管理一组具有相同权限的用户。在 Linux 中,每个用户都会隶属于至少一个组,每个组也拥有一个组 ID (GID)。默认情况下,每个用户都有一个与其用户名相同的主组,同时可以加入其他附属组。
对于用户和组的管理,Linux 提供了一些相关的命令和配置文件。常用的用户和组管理命令包括adduser、useradd、userdel、usermod、addgroup等;常用的配置文件有 /etc/passwd、/etc/shadow、/etc/group 和 /etc/gshadow 等。其中,/etc/passwd 文件包含了系统中所有用户的信息,如用户名、UID、主组、登录 shell 等;/etc/shadow 文件存储用户的加密密码;/etc/group 文件则包含了系统中所有组的信息,如组名、组 ID 和组内的用户等。
总之,清楚用户和组的概念,并熟练运用相关的命令和配置文件,是 Linux 系统管理和运维的基础。
以下是在 Linux 中与组和用户相关的一些常用命令及其说明:
- useradd:创建一个新用户。
- userdel:删除一个用户。
- usermod:修改用户的属性,比如用户的主目录、登录 Shell、密码等。
- passwd:修改用户的密码。
- groupadd:创建一个新的组。
- groupdel:删除一个指定的组。
- groupmod:修改组的属性,比如组的名称、GID等。
- usermod -a -G:将一个用户添加到一个或多个用户组中。
- id:显示当前用户或指定用户的 UID、GID 和附加组信息。
- chown:改变文件或目录的所有者。
- chgrp:改变文件或目录的所属组。
- su:切换用户身份,比如使用 root 账户进行操作。
- sudo:以 root 用户的身份执行指定的命令。
- groups:显示当前用户所属的所有组。
- getent passwd:显示计算机上所有用户,包括系统内置的用户。
- getent group:显示计算机上所有的组。
这些命令是在 Linux 中常用的一些组与用户管理相关的命令。掌握这些命令可以有效的管理系统中的用户和组,是 Linux 系统管理和运维工作的基础。