用户管理是 Linux 系统管理中的重要组成部分,它涉及到用户和用户组的创建、删除、修改以及权限分配等操作。以下是关于用户和用户组管理的详细说明:
一、用户和用户组的概念
(一)用户(User)
用户是系统中一个独立的实体,每个用户都有自己的用户名、用户 ID(UID)、密码、主目录、登录 Shell 等属性。用户可以登录系统并执行操作。
-
用户名(Username):用户登录时使用的名称。
-
用户 ID(UID):每个用户都有一个唯一的数字标识符,用于系统内部识别用户。
-
主目录(Home Directory):用户登录后的工作目录,通常是
/home/username
。 -
登录 Shell(Login Shell):用户登录后使用的命令行解释器,例如
/bin/bash
。
(二)用户组(Group)
用户组是多个用户的集合,用户组的目的是简化权限管理。一个用户可以属于多个用户组,用户组也有自己的组 ID(GID)。
-
组名(Group Name):用户组的名称。
-
组 ID(GID):每个用户组也有一个唯一的数字标识符。
-
组成员(Group Members):属于该用户组的用户。
二、用户管理命令
(一)添加用户:useradd
useradd
命令用于创建新的用户。
-
基本语法
useradd [选项] 用户名
-
常用选项
-
-m
:自动创建用户的主目录(默认路径为/home/username
)。 -
-d
:指定用户的主目录。 -
-s
:指定用户的登录 Shell。 -
-g
:指定用户的初始用户组。 -
-G
:指定用户的附加用户组。 -
-c
:添加用户注释信息。
-
-
示例
useradd -m -s /bin/bash -g developers -G admins,users -c "John Doe" johndoe
这条命令创建了一个名为
johndoe
的用户,主目录为/home/johndoe
,登录 Shell 为/bin/bash
,初始用户组为developers
,附加用户组为admins
和users
,注释信息为John Doe
。
(二)删除用户:userdel
userdel
命令用于删除用户。
-
基本语法
userdel [选项] 用户名
-
常用选项
-
-r
:同时删除用户的主目录和邮件文件。
-
-
示例
userdel -r johndoe
这条命令删除了用户
johndoe
,并删除其主目录/home/johndoe
。
(三)修改用户密码:passwd
passwd
命令用于修改用户密码。
-
基本语法
passwd [用户名]
-
说明
-
如果不指定用户名,则默认修改当前登录用户的密码。
-
系统会提示用户输入新密码,并要求确认。
-
-
示例
passwd johndoe
这条命令会提示用户输入新的密码,用于修改用户
johndoe
的密码。
三、用户组管理命令
(一)添加用户组:groupadd
groupadd
命令用于创建新的用户组。
-
基本语法
groupadd [选项] 组名
-
常用选项
-
-g
:指定用户组的 GID。
-
-
示例
groupadd -g 500 developers
这条命令创建了一个名为
developers
的用户组,其 GID 为500
。
(二)删除用户组:groupdel
groupdel
命令用于删除用户组。
-
基本语法
groupdel 组名
-
示例
groupdel developers
这条命令删除了名为
developers
的用户组。
四、其他常用命令
(一)查看用户和用户组信息
-
查看用户信息
id 用户名
示例:
id johndoe
输出类似:
uid=1001(johndoe) gid=1001(developers) groups=1001(developers),1002(admins),1003(users)
-
查看用户组信息
getent group 组名
示例:
bash复制
getent group developers
输出类似:
developers:x:1001:johndoe,alice
(二)修改用户和用户组信息
-
修改用户信息
usermod [选项] 用户名
示例:
usermod -aG admins johndoe
将用户
johndoe
添加到admins
用户组。 -
修改用户组信息
groupmod [选项] 组名
示例:
groupmod -n newgroup oldgroup
将用户组
oldgroup
重命名为newgroup
。