Linux学习笔记:(二)用户和组群账户管理

  • A+
所属分类:linux技术


前言

  • 在Linux系统中,用户账户是登录系统的唯一凭证,其中root用户是系统的最高管理者,该用户的UID是0,与用户和组群账户相关的配置文件有/etc/passwd,/etc/shadow,/etc/group和/etc/gshadow。

一、 用户账户简介

1、 用户账户分类

  1. root用户
    • root用户UID为0。root用户的权限是最高的,普通用户无法执行的操作,root用户都能完成,所以也称之为超级用户
  2. 系统用户
    • 系统用户的UID为1~999
    • 这类用户不具有登录Linux的能力,但却是系统运行不可缺少的用户。
  3. 普通用户
    • 系统用户的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:创建用户

  1. 创建用户
    • useradd moon
  2. 创建用户并设置UID为1010
    • useradd -u 1010 moon
  3. 创建用户并设置用户所属群组为root
    • useradd -g root moon
选项 选项含义
-d <主目录> 新账户每次登录时所使用的主目录
-e <过期日> 设置账户的有效期限,日期格式为MM/DD/YY
-f <失效日> 设置密码过期多少天后为失效状态
-c <用户名全称> 设置用户账户的用户名全称(描述)
-g <主要组群名> 指定用户账户所属的主要组群。
-G <次要组群名> 指定用户账户为多个次要组群的成员,每个组群使用“,”来分隔
-m 用户主目录如果不存在则自动建立
-u <用户UID> 用户的UID,数字不可以为负值

usermod:修改用户账户

  1. 修改用户pp的登录名为moon
    • usermod -l moon pp
  2. 修改用户moon账户过期时间为2028年11月23日
    • usermod -e 11/23/2028 moon
  3. 修改用户moon的主目录到/home/oopp,并自动创建目录
    • usermod -d /home/oopp -m moon
选项 选项含义
-m 移动主目录的内容到新的位置
-l <新登录名> 修改用户账户名称
-u <用户UID> 修改用户UID
-c <用户名全称> 修改用户账户的用户名全称
-d <主目录> 修改用户登陆时的主目录,如果指定-m选项,用户旧目录会移动到新的目录中,如果旧目录不存在,则创建新目录
-e <过期日> 修改账户的有效期限,日期格式为MM/DD/YY
-f <失效日> 修改在密码过期后多少天即设定密码为失效状态
-g <主要组群名> 修改用户所属的主要组群
-G <次要组群名> 修改用户所属的次要组群(附加组群)