在 Linux 中,用户和用户组是系统安全的重要组成部分。用户账户用于登录系统,并且每个用户都可以有自己的权限设置。用户组则用于组织多个用户,并为这些用户分配相同的权限。下面分别介绍用户和用户组的相关概念及命令。
目录
用户和用户组的基本概念
用户:
用户是登录到系统的一个实体,每个用户都有一个唯一的用户 ID(UID),用于标识该用户。UID 0 通常被保留给超级用户(root)。UID 1-999 通常为系统保留,用于某些服务或程序。是为了保证系统的稳定性和安全性。这些较低的 UID 值通常被分配给系统服务、守护进程或者不需要人类直接交互的服务账户UID 1000 及以上通常分配给普通用户。
可以在 /etc/passwd文件中查看系统的UID分配,可以看到root用户的UID为0,而作为普通用户在1000及以后
root:x:0:0:root:/root:/bin/bash
//用户名:密码占位符(通常是 x):用户 ID (UID):组 ID (GID):用户描述:用户家目录:登录 shell
用户组:
用户组是用来组织用户的集合。每个用户组也有一个唯一的组 ID(GID)。用户可以属于多个用户组。默认情况下,创建新用户时会同时创建一个同名的用户组作为该用户的主用户组。
主用户组与附加用户组:
主用户组:用户登录时默认关联的用户组。
附加用户组:除了主用户组外,用户还可以是其他用户组的成员。
常用命令
useradd
useradd
是一个用于在 Linux 系统中创建新用户的命令。它可以用来创建一个新用户账户,并且允许指定一些参数来定制用户的配置。
基本语法
useradd [参数] [用户名]
参数选项
可用--help了解更多参数
-m
,--create-home
: 自动创建用户的家目录。这是默认行为
-d
,--home-dir
: 指定用户的家目录位置。
-s
,--shell
: 指定用户的登录 shell。
-u
,--uid
: 指定用户的 UID。请注意,此 UID 不应与其他用户冲突。
-g
,--gid
: 指定用户的主用户组的 GID。
-G
,--groups
: 指定用户的附加用户组。多个用户组之间可以用逗号,
分隔。
-p
,--password
: 指定用户的加密密码。
-c
,--comment
: 指定用户的全名或注释。
-r
,--system
: 创建一个系统用户(默认 UID 在 1 到 999 之间)。
-U
,--no-user-group
: 不创建与用户名相同的用户组。
-l
,--no-log-init
: 不记录到/var/log/lastlog
和/var/log/faillog
。
-e
,--expiredate
: 指定用户账户的有效期。
-f
,--inactive
: 指定用户账户过期后多少天内可以登录。
-M
,--no-mail-forward
: 不创建邮件转发文件。
-N
,--no-create-home
: 不创建用户的家目录。
注意事项
- 使用
useradd
通常需要 root 权限。不是 root 用户,需要在命令前加上sudo
获取权限。 - 如果在创建用户时没有指定
-m
选项,默认情况下useradd
会创建用户的家目录。但是如果你指定了-N
选项,则不会创建家目录。 - 在创建用户的同时设置密码,可以使用
-p
选项,但是这不推荐。常见的方式是在创建用户之后单独设置密码。
设置密码
创建用户后,你可以使用 passwd
命令来为新用户设置密码:
sudo passwd john
adduser
adduser
命令是 useradd
的一个前端命令,被用来创建新的用户账户。adduser
提供了一个更友好的界面,它不仅创建用户,还会提示你设置密码,并且可以自动处理一些配置细节。下面是如何使用 adduser
命令创建新用户的步骤和选项。
基本语法
adduser [参数] [用户名]
注意事项
- adduser的用法和参数与useradd类似,但是adduser具有界面友好性,建议新手使用
adduser
会在创建用户时提示你输入密码。在创建时不设置密码,可以使用--disabled-password
选项。adduser
还会询问一些其他信息,如用户的全名、房间号码等。你可以根据实际情况填写或者直接按回车键跳过。
groupadd
创建一个新的用户组。
groupadd [参数] [用户组名]
userdel
删除指定的用户账户
userdel [参数] [用户名]
groupdel
删除指定的用户组账户
groupdel [参数] [用户名]
usermod
更改用户账号的属性
usermod [参数] [用户名]
groupmod
更改用户组的名称或 ID
groupmod [参数] [用户名]
查看用户和用户组信息
-
查看用户信息:
id [用户名]
:显示用户 ID 和所属的用户组。 -
查看所有用户列表:
cat /etc/passwd
:列出所有用户及其相关信息。 -
查看所有用户组列表:
cat /etc/group
:列出所有用户组及其相关信息。 -
查看用户所属的用户组:
groups [用户名]
:显示用户所属的所有用户组。
添加/删除用户组成员
-
添加用户到用户组:
usermod -aG [用户组名] [用户名]
:将用户添加到用户组。 -
删除用户组成员:
gpasswd [选项] [用户名] [用户组名]
:向用户组中添加或移除用户。
这些命令提供了对用户和用户组进行管理的基础。使用这些命令时,可以使用--help查看参数的使用方式,请确保你有足够的权限(通常是 root 权限)。