用户管理是 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。