一,用户和用户组的概述
用户与用户组的概述与作用
-
用户(User):
- 用户是操作系统中的基本单位,每个用户都有自己的唯一标识(UID)。
- 用户可以登录系统并执行各种操作,但受到权限的限制。
- 通过 为用户分配不同的权限,可以确保系统的安全性和数据的完整性。
-
用户组(Group):
- 用户组是一组用户的集合,这些用户共享某些特定的权限。
- 通过将用户添加到用户组,可以方便地管理大量用户的权限。
- 用户组还可以简化权限分配的过程,提高管理效率。
用户的分类
-
超级用户(root)
- 拥有最高权限,可以执行系统上的所有操作。
- 用户名通常为
root
。
-
普通用户
- 系统中数量最多的用户类型。
- 权限有限,只能在自己的主目录下进行操作,并且只能执行部分系统命令。
- 可以通过
adduser
命令创建。
-
系统用户(或伪用户)
- 不代表真实的人,而是代表系统服务或进程。
- 通常没有主目录,登录shell设置为
/sbin/nologin
或/bin/false
。 - 用于运行系统服务,如邮件、FTP、MySQL等。
- 在安装这些服务会自动创建对应用户已达成对应权限管理
linux用户与用户组
- 用户组是一个逻辑集合,包含了一组具有相同权限的用户。
- 用户可以属于多个用户组,但通常主要归属于一个基本组。
二,用户组的管理
用户与用户组的关系
一个用户只有一个主组,可以有多个属组。
用户主组和附加组的概念
- 主组:每个用户都有一个主组,通常是创建用户时自动创建的,与用户名相同。
- 附加组:除了主组之外,用户还可以被添加到多个附加组中,这些组用于提供额外的访问权限。
用户主组和附加组的作用
- 主组:决定了用户创建的文件和目录的默认所属组。
- 附加组:允许用户访问其他组的资源,增加了用户访问权限的灵活性。
用户组查询
/etc/group中存放在组的相关信息
compgen -g可以查看有哪些组
groups查看当前登录用户的主组
用户组添加
groupadd 【选项 选项值】用户组名
-g 数字用户组id:不指定从1000开始(1-999是系统组,0是root组,其它是普通组)
--system:创建系统用户组
用户组删除
groupdel 【选项 选项值】 用户组名
-f:强制删除指定的已有的用户组(慎用),当组被当做主组,附属组的时候可以
用户组成员管理
gpasswd 【选项】用户名 组名
-a:添加用户到组
-d:从组中删除用户
-M:同时添加多个用户(逗号隔开)到组
-A:指定组中管理员
-r:删除组密码
三,用户管理
查询用户
-
查看用户列表:
- 或者使用
cat /etc/passwd
查看所有用户的密码文件。 - compgen -u
- users/whoami/who(终端用户):当前用户
- 或者使用
-
查询用户信息:
- 使用
id 【用户名】
查看用户的 ID 信息。 - 或者使用
cat /etc/passwd
查看所有用户的密码文件。
- 使用
添加用户
useradd 【选项】用户名{本质上修改/etc/下的group,passwd,gshadow,shadow文件}
-u:指定用户uid,唯一标识,必须唯一
-g:指定用户默认(主组,要提前有)
-G:指定用户附加组(逗号多个)
-d:指定用户家目录(要提前创建好)
-s:指定默认shell
-c:添加备注信息
用户密码设置
passwd 【用户名】{不写用户名就是修改当前用户}
root可以设置所有用户密码,而且可以不遵守密码规范,其它用户只可以设置自己的,而且要遵守密码规范
密码规范(不小于8位,包含大小写,数字,特殊字符)
echo “密码” | passwd --stdin 用户名(非交互输入密码)
-S:查看用户密码是否有效
另外:chage -l 用户名也可以查看密码的大量相关信息
查看密码文件/etc/shadow
root
#用户名
:$5$Ls5ATDQJUvZ2dsLi$kD1O1wjWd1bt1NJPZ7/rTgpvYibwR/pQPNti8yQ7xX.
#加密后的密码,!!表示没有设置密码
:
#最后一次改密码的天数(距离1970.1.1的天数)
:0
#距离创建或上一次修改的最小密码周期,0表示可以立即更改,比如:3表示必须三天后
:99999
#密码宽限期,如果为1表示这个密码只能用1天,一天内还是可以登录但会提示修改,一天后账号会被锁定
:7
#密码修改提醒时间,根据密码宽限期提前多少天提醒修改密码
:
#表示账户被禁用的日期。如果设置为空或为未来的日期,则账户有效;如果设置为过去的日期,则账户被禁用。(从1970.1.1计算天数)
:
#表示在账户被禁用后,用户可以继续使用的天数。一旦超过这个宽限天数,用户将无法登录系统。
:
#没有作用,暂时保留
修改用户信息
usermod 【选项】用户名
-u 数字:指定新uid
-g:指定默认组(主组)
-G:指定附加组(逗号隔开添加多个)
-d:指定家目录(要存在)
-s:指定默认shell解析器
-L:锁定用户,让其无法登录(让密码失效,所以在更改密码后锁定用户效果消失)
-U:解锁用户
-c 备注信息:修改用户账户备注信息
删除用户
userdel 【-r】用户名
-r:删除家目录,邮件等,建议使用,不写-r表示删除用户,但是家目录,主组不删除
切换用户
su 【-】【用户名】
su 【-】【用户名】中的-,表示切换账号的同时也切换目录到对应账户的家目录
不写
exit可以退出当前用户,建议使用
四,扩展内容
chage 【选项】【选项值】用户名
-l:列出用户的详细密码状态
-d 日期:修改/etc/shadow文件中指定用户密码信息的第三个字段(这一次修改密码的日期)YYYY-MM-DD(0表示当前)当到了日期就要修改密码,所以0就是当前马上修改
-m 天数:密码最短保留天数,/etc/shadow的第四个字段
-M 天数:密码的有效期,必须在这之前修改,也就是/etc/shadow的第五个字段
-W 天数:修改密码提醒时间,密码有效期到期的前x天提醒你要修改密码了,第六个字段
-I(大写i) 天数:当密码有效期过了后的宽限期,第七个字段
-E 日期(yyyy-mm-dd):修改账户失效日期,第八个字段,失效日期在未来,那么这个账户就没有失效
另外有选项值类型为yyyy-mm-dd可以这么写,推荐这么写
"+【数字】days"表示以当前为依据添加