LInux学习笔记——用户和用户组管理

    • 1 用户配置文件
      • 1.1 用户信息文件
        • 用户管理简介
        • /etc/passwd
      • 1.2 影子文件/etc/shadow
      • 1.3 组信息文件
        • 组信息文件/etc/group
        • 组密码文件/etc/gshadow
    • 2. 用户管理相关文件
      • 2.1 用户的家目录
      • 2.2用户的邮箱
      • 2.3 用户模板目录
    • 3 用户管理命令
      • 3.1 用户添加命令useradd
        • useradd命令格式
        • 用户默认值文件
      • 3.2 用户管理命令passwd
      • 3.3 修改用户信息usermod和chage
      • 3.4 删除用户userdel与用户切换命令su
        • 手工删除用户步骤(不常用)
        • 查看用户ID
        • 切换用户身份su
      • 4 用户组管理命令
        • 添加用户组
        • 修改用户组
        • 删除用户组
        • 把用户添加入组或从组中删除

1 用户配置文件

1.1 用户信息文件

用户管理简介

  • 越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。
  • 在Linux中主要是通过用户配置文件查看和修改用户信息

/etc/passwd

vim /etc/passwd

LInux学习笔记——用户和用户组管理_第1张图片

例如第一行:
root:x:0:0:root:/root:/bin/bash
  • 第一字段:用户名称
  • 第二字段:密码标志(注:密码实际存放在/etc/shadow)
  • 第三字段:用户ID(UID)
    • 0:超级用户
    • 1-499:系统用户(伪用户,不能删除,否则可能会造成系统崩溃
    • 500-65535:普通用户(注:将普通用户UID改为0,即把它变为超级用户)
  • 第四字段:GID(用户初始组ID)
    • 初始组:指用户已登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般是和这个用户组的用户名相同的组名作为这个用户的初始组。
    • 附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。
  • 第五字段:用户说明(可不添加,一般对用户进行备注说明)
  • 第六字段:家目录
    • 普通用户:/home/用户名/
    • 超级用户:/root/
  • 第七字段:登陆之后的shell
    • shell就是LInux的命令解释器
    • 在/etc/passwd当中,除了标准Shell是/bin/sh之外,还可以写如/sbin/nologin(当把普通用户的shell任意修改或改成/sbin/nologin时,则无法登录)

1.2 影子文件/etc/shadow

vim /etc/shadow

LInux学习笔记——用户和用户组管理_第2张图片

  • 第一字段:用户名
  • 第二字段:加密密码
    • 加密算法升级为SHA512散列加密算法
    • 如果密码位是“!!”或“*”代表没有密码,不能登录
  • 第三字段:密码最后一次修改日期
    • 使用1970年1月1日作为标准时间,每过一天时间戳加1
    • 第四字段:两次密码的修改时间间隔(和第三字段相比)
    • 第五字段:密码的有效期(和第三字段相比)
    • 第六字段:密码修改到期钱的警告天数(和第五字段相比)
    • 第七字段:密码过期后的宽限天数(和第五字段相比)
      • 0:密码到期立即生效
      • -1:密码永远不会失效
    • 第八字段:账号失效时间
      • 要用时间戳表示
      • 注:时间戳的换算:
        这里写图片描述
    • 第九字段:保留字段

1.3 组信息文件

组信息文件/etc/group

  • 第一字段:组名
  • 第二字段:组密码标志
  • 第三字段:GID
  • 第四字段:组中附加用户

组密码文件/etc/gshadow

  • 第一字段:组名
  • 第二字段:组密码
  • 第三字段:组管理员用户名
  • 第四字段:组中附加用户

2. 用户管理相关文件

2.1 用户的家目录

  • 普通用户:/home/用户名/,所有者和所属组都是此用户,权限为700
  • 超级用户:/root/,所有者和所属组都是root用户,权限是550

2.2用户的邮箱

/var/spool/mail/用户名/  ##为每个用户创建一个邮箱,包括root

2.3 用户模板目录

vim /etc/skel/ 
#编写用户模板,则申请新用户后,编写的文件会在新用户的home目录中呈现

3 用户管理命令

3.1 用户添加命令useradd

useradd命令格式

useradd [选项] 用户名

选项:

  • -u UID:手工指定用户的UID号
  • -d 家目录:手工指定用户的家目录
  • -c 用户说明:手工指定用户的说明
  • -g 组名:手工指定用户的初始组
  • -G 组名:指定用户的附加组
  • -S:手工指定用户的登录shell,默认是/bin/bash

    示例:useradd -u 666 -G root,bin -d /home/lrx -c “test user” -s /bin/sh lrx

用户默认值文件

/etc/default/useradd
  • GROUP=100 #用户默认组
  • HOME=/home #用户家目录
  • INACTIVE=-1 #密码过期宽限天数(shadow文件第7字段)
  • EXPIRE= #密码失效时间(shadow文件第8字段,默认永不失效)
  • SHELL=/bin/sh #默认shell
  • SKEL=/etc/skel #模板目录
    - CREATE_MAIL_SPOOL=yes #是否建立邮箱

    /etc/login.defs
    
  • PASS_MAX_DAYS 99999 #密码有效期(shadow文件第5字段)
  • PASS_MIN_DAYS 0 #密码修改间隔(shadow文件第4字段)
  • PASS_MIN_LEN 5 #密码最小5位(PAM生效,这个不生效)
  • PASS_WARN_AGE 7 #密码到期警告(shadow文件第6字段)
  • UID_MIN 500 #最小和最大UID范围
  • GID_MAX 60000
  • ENCRYPT_METHOD SHA512 #加密模式

3.2 用户管理命令passwd

passwd [选项] 用户名

选项:
- -S 查询用户密码的密码状态。仅root用户可用(查看/etc/shadow的信息)
- -l 暂时锁定用户。仅root用户可用(相当于在/etc/shadow文件的密码密文前加“!!”)
- -u 解锁用户。仅root用户可用
- –stdin 可以通过管道符输出的数据作为用户的密码 如: echo “123” | passwd –stdin lamp #为lamp设定字符串为123的密码,此操作常用于批量创建用户

3.3 修改用户信息usermod和chage

usermod [选项] 用户名  #与useradd区别是useradd为新用户设定信息,usermod为已存在的用户修改信息

选项:

  • -u UID:修改用户的UID号
  • -c 用户说明:修改用户的说明信息
  • -G 组名:修改用户的附加组
  • -L:临时锁定用户(Lock)
  • -U:解除用户锁定(Unlock)

    chage [选项] 用户名
    

    选项:

  • -l:列出用户的详细密码状态
  • -d 日期:修改密码最后一次更改日期(shadow3字段)

    chage -d 0 test  #把密码修改日期归0,这样用户一登录就要修改密码
    
  • -m 天数:两次密码修改间隔(4字段)
  • -M 天数:密码有效期(5字段)
  • -W 天数:密码过期前警告天数(6字段)
  • -I 天数:密码过后宽限天数(7字段)
  • -E 日期:账号失效时间(8字段)

3.4 删除用户userdel与用户切换命令su

userdel [-r] 用户名

选项:
- -r 删除用户的同时删除家目录

手工删除用户步骤(不常用)

LInux学习笔记——用户和用户组管理_第3张图片

查看用户ID

id 用户名

切换用户身份su

su [选项] 用户名

选项:

  • -:选项只是用“-”代表连带用户的环境变量一起切换
  • -c 命令:仅执行一次命令,而不切换用户身份

4 用户组管理命令

添加用户组

groupadd [选项] 组名

选项:

  • -g GID:指定组ID

修改用户组

groupmod [选项] 组名

选项:

  • -g GID:修改组ID
  • -n 新组名:修改组名

删除用户组

groupdel 组名

注:当用户组里有初始用户时不能删除组,附加用户并不影响用户组的删除

把用户添加入组或从组中删除

gpasswd [选项] 组名

选项:

  • -a 用户名:把用户加入组
  • -d 用户名:把用户从组中删除

    useradd -g group1 test1 #添加新用户test1并设它的初始组为group1
    
    gpasswd -a test1 root #将test1用户的初始组改为root
    

你可能感兴趣的:(LInux学习笔记——用户和用户组管理)