前言
- 在Linux系统中,用户账户是登录系统的唯一凭证,其中root用户是系统的最高管理者,该用户的UID是0,与用户和组群账户相关的配置文件有/etc/passwd,/etc/shadow,/etc/group和/etc/gshadow。
一、 用户账户简介
1、 用户账户分类
- root用户
- root用户UID为0。root用户的权限是最高的,普通用户无法执行的操作,root用户都能完成,所以也称之为超级用户
- 系统用户
- 系统用户的UID为1~999
- 这类用户不具有登录Linux的能力,但却是系统运行不可缺少的用户。
- 普通用户
- 系统用户的UID为1000~60000
- 在Linux系统上进行普通操作,其使用系统的权限受限制。
2、 /etc/passwd文件
- 假设以账户zhangsan登录系统时,系统首先会检查/etc/passwd文件,存在zhangsan账户,然后确定用户zhangsan的UID,通过UID确认用户身份,如果存在,则读取/etc/shadow文件中对应的密码,核实无误,则登陆系统,读取用户的配置文件
[root@centos83 home]# cat /etc/passwd root:x:0:0:root:/root:/bin/bash bin:x:1:1:bin:/bin:/sbin/nologin daemon:x:2:2:daemon:/sbin:/sbin/nologin ..............(省略).......... sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin rngd:x:994:991:Random Number Generator Daemon:/var/lib/rngd:/sbin/nologin zhangsan:x:1000:1000::/home/zhangsan:/bin/bash
字段 |
字段含义 |
用户名 |
在系统中用户名应该具有唯一性 |
密码 |
存放加密用户的密码,看到的是一个x,其实密码已经被映射到/etc/shadow文件中 |
用户标识号(UID) |
每个用户的UID都是唯一的,root用户的UID是0,普通用户的UID默认从1000开始 |
组群标识号(GID) |
在系统内用一个整数标识用户所属的主要组群ID号,每个组群ID都是唯一的 |
用户名全称 |
用户名描述,可以不设置 |
主目录 |
用户登录系统后首先进入的目录 |
登录shell |
用户使用的Shell类型,Linux系统默认使用的Shell是/bin/bash |
2、 /etc/shadow文件
- /etc/shadow文件内容包括用户及被加密的密码以及其他/ect/passwd不能包括的信息,比如账户有效期等
- /etc/shadow文件只有root用户可以读取和操作,确保系统安全
[root@centos83 home]# cat /etc/shadow root:$6$Uq9EeN5GfNDLF83M$csUva0exzO/n3PIvhKv5D1Xs3Ga06G2whjfagtEtJUW1wlQbREEd6HkOjTRCTqGuZCXvg2WQ1wdyzqY.qfAzE1::0:99999:7::: bin:*:18397:0:99999:7::: ..............(省略).......... sshd:!!:18625:::::: rngd:!!:18625:::::: zhangsan:$6$HMTy.raoMPbhboQn$71FPRHyRycVf3AcenfNW1n7/qD7ep.x5vSeBSSxzJdWmvjoQ98oDhfA8Kz/6PlOgKe/ksj58AXeWBPOGAm/dl1:18625:0:99999:7:::
字段 |
字段含义 |
用户名 |
这里的用户名和/etc/passwd中的相同 |
加密密码 |
密码已经加密,如果由用户显示"!!",则表示这个用户还没有设置密码,无法登录到系统 |
用户最后一次更改密码的日期 |
从1970年1月1日算起到最后一次修改密码的时间间隔天数 |
密码允许更换前的天数 |
如果设置为0,则禁用此功能。该字段指定用户可以更改密码的天数 |
密码需要更换的天数 |
如果设置为0,则禁用此功能。该字段指定用户必须更改密码的天数 |
密码更换前警告的天数 |
用户登录系统后,系统登录程序提醒用户密码即将过期 |
账户被取消激活前的天数 |
表示用户密码过期多少天后,系统会禁用此用户 |
用户账户过期日期 |
指定用户账户禁用的天数(从1970年1月1日开始到账户被禁用的天数),如果这个字段的值为空,账户可以永久使用 |
保留字段 |
目前为空,为将来发展做预留 |
二、 用户账户设置
1、useradd:创建用户
- 创建用户
- 创建用户并设置UID为1010
- 创建用户并设置用户所属群组为root
选项 |
选项含义 |
-d <主目录> |
新账户每次登录时所使用的主目录 |
-e <过期日> |
设置账户的有效期限,日期格式为MM/DD/YY |
-f <失效日> |
设置密码过期多少天后为失效状态 |
-c <用户名全称> |
设置用户账户的用户名全称(描述) |
-g <主要组群名> |
指定用户账户所属的主要组群。 |
-G <次要组群名> |
指定用户账户为多个次要组群的成员,每个组群使用“,”来分隔 |
-m |
用户主目录如果不存在则自动建立 |
-u <用户UID> |
用户的UID,数字不可以为负值 |
usermod:修改用户账户
- 修改用户pp的登录名为moon
- 修改用户moon账户过期时间为2028年11月23日
- usermod -e 11/23/2028 moon
- 修改用户moon的主目录到/home/oopp,并自动创建目录
- usermod -d /home/oopp -m moon
选项 |
选项含义 |
-m |
移动主目录的内容到新的位置 |
-l <新登录名> |
修改用户账户名称 |
-u <用户UID> |
修改用户UID |
-c <用户名全称> |
修改用户账户的用户名全称 |
-d <主目录> |
修改用户登陆时的主目录,如果指定-m选项,用户旧目录会移动到新的目录中,如果旧目录不存在,则创建新目录 |
-e <过期日> |
修改账户的有效期限,日期格式为MM/DD/YY |
-f <失效日> |
修改在密码过期后多少天即设定密码为失效状态 |
-g <主要组群名> |
修改用户所属的主要组群 |
-G <次要组群名> |
修改用户所属的次要组群(附加组群) |