Linux 用户和用户组管理

目录

1 用户配置文件

1.1 用户信息文件

1.1.1 用户管理简介

1.1.2 用户信息文件

1.1.3 初始组和附加组

1.1.4 Shell是什么

1.2 影子文件

1.2.1 查看影子文件

1.2.2 时间戳换算

1.3 组信息文件和组密码文件

1.3.1 组信息文件

1.3.2 组密码文件

2 用户管理相关文件

2.1 用户的家目录

2.2 用户的邮箱

2.3 用户模板目录

3 用户管理命令

3.1 添加用户命令

3.1.1 useradd命令格式

3.1.2 添加默认用户

3.1.3 指定选项添加用户

3.1.4 用户默认值文件

3.2 用户密码

3.2.1 修改用户密码

3.2.2 查看密码状态

3.2.3 锁定用户

3.2.4 解锁用户

3.2.5 使用字符串作为用户的密码

3.3 修改用户信息

3.4 修改用户密码状态

3.5 删除用户

3.6 用户切换

4 用户组管理命令

4.1 添加用户组

4.2 修改用户组

4.3 删除用户组

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


1 用户配置文件

1.1 用户信息文件

1.1.1 用户管理简介

  • 越是对服务器安全性要求高的服务器,越需要建立合理的用户权限等级制度和服务器操作规范。

  • 在Linux中主要是通过用户配置文件来查看和修改用户信息

1.1.2 用户信息文件

查看用户信息文件:vim /etc/passwd

看不懂没关系,可以通过帮助命令进行解读:man 5 passwd,切记不能写成 man 5 /etc/passwd

passwd配置文件分为七个字段

  • 第1字段:用户名称

  • 第2字段:密码标志

  • 第3字段:UID(用户ID)

    • 0: 超级用户

    • 1-499: 系统用户(伪用户)

    • 500-65535: 普通用户(centos7 从1000开始计算)

  • 第4字段:GID(用户初始组ID)[不推荐修改初始组]

  • 第5字段:用户说明

  • 第6字段:家目录

    • 普通用户:/home/用户名/

    • 超级用户:/root/

  • 第7字段:登录之后的Shell

1.1.3 初始组和附加组

  • 初始组:就是指用户一登录就立刻拥有这个用户组的相关权限,每个用户的初始组只能有一个,一般就是和这个用户的用户名相同的组名作为这个用户的初始组。

  • 附加组:指用户可以加入多个其他的用户组,并拥有这些组的权限,附加组可以有多个。

1.1.4 Shell是什么

  • Shell就是Linux的命令解释器。

  • 在/etc/passwd当中,除了标准Shell是/bin/bash之外,还可以写,如:/sbin/nologin,/usr/bin/passwd等。

小贴士:暂时禁用用户,可以把/bin/bash -> /bin/nologin

1.2 影子文件

1.2.1 查看影子文件

查看影子文件:vim /etc/shadow

shadow配置文件分为九个字段

  • 第1字段:用户名

  • 第2字段:加密密码

    • 加密算法升级为SHA512散列加密算法

    • 如果密码位是“!!”或“*”代表没有密码,不能登录

  • 第3字段:密码最后一次修改日期

    • 使用1970年1月1日作为标准时间,每过一天时间戳加1

  • 第4字段:两次密码的修改间隔时间(和第3字段相比)

  • 第5字段:密码有效期(和第3字段相比)

  • 第6字段:密码修改到期前的警告天数(和第5字段相比)

  • 第7字段:密码过期后的宽限天数(和第5 字段相比)

    • 0:代表密码过期后立即失效

    • -1:则代表密码永远不会失效。

  • 第8字段:账号失效时间

    • 要用时间戳表示

  • 第9字段:保留

1.2.2 时间戳换算

  • 把时间戳换算为日期

date -d "1970-01-01 20000 days"
  • 把日期换算为时间戳

echo $(($(date --date="2022/05/30" +%s)/86400+1))

1.3 组信息文件和组密码文件

1.3.1 组信息文件

查看组信息文件:vim /etc/group

group配置文件分为四个字段

  • 第一字段:组名

  • 第二字段:组密码标志

  • 第三字段:GID

  • 第四字段:组中附加用户

1.3.2 组密码文件

查看组密码文件:vim /etc/gshadow

gshadow配置文件分为四个字段

  • 第一字段:组名

  • 第二字段:组密码 (不推荐使用,可以理解为给组设置个小组长)

  • 第三字段:组管理员用户名

  • 第四字段:组中附加用户

2 用户管理相关文件

2.1 用户的家目录

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

  • 超级用户:/root/,所有者和所属组都是root用户,权限是550

2.2 用户的邮箱

  • /var/spool/mail/用户名/

2.3 用户模板目录

  • /etc/skel/

查看用户模板目录:ls -a /etc/skel/

查看新建apollo用户家目录:ls -a /home/apollo

在用户模板目录下创建README.txt文件:touch /etc/skel/README.txt

新建一个测试用户test,并查看其家目录

3 用户管理命令

3.1 添加用户命令

3.1.1 useradd命令格式

useradd [选项] 用户名

选项:

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

3.1.2 添加默认用户

useradd user1

3.1.3 指定选项添加用户

groupadd user2
useradd -u 666 -g user2 -G root -d /home/user2 -c "test user2" -s /bin/bash user2

3.1.4 用户默认值文件

vim /etc/default/useradd

小贴士:

  • GROUP=100 #用户默认组
  • HOME=/home #用户家目录

  • INACTIVE=-1 #密码过期宽限天数(7)

  • EXPIRE= #密码失效时间(8)

  • SHELL=/bin/bash #默认shell

  • SKEL=/etc/skel #模板目录

  • CREATE_MAIL_SPOOL=yes #是否建立邮箱

vim /etc/login.defs

小贴士:

  • PASS_MAX_DAYS 99999 #密码有效期(5)
  • PASS_MIN_DAYS 0 #密码修改间隔(4)
  • PASS_MIN_LEN 5 #密码最小5位(PAM)
  • PASS_WARN_AGE 7 #密码到期警告(6)
  • UID_MIN 500 #最小和最大UID范围
  • GID_MAX 60000
  • ENCRYPT_METHOD SHA512 #加密模式

3.2 用户密码

3.2.1 修改用户密码

命令格式:passwd [选项] 用户名

选项:

  • -S 查询用户密码的密码状态。仅root用户可用。
  • -l 暂时锁定用户。仅root用户可用
  • -u 解锁用户。仅root用户可用
  • --stdin 可以通过管道符输出的数据作为用户的密码。

3.2.2 查看密码状态

命令格式:passwd -S 用户名

passwd -S user2

字段说明:

user2 PS 2022-05-30 0 99999 7 -1

#用户名 密码设定时间(2022-05-30) 密码修改间隔时间(0) #密码有效期(99999 ) 警告时间(7) 密码不失效(-1)

3.2.3 锁定用户

命令格式:passwd -l 用户名

passwd -l user2

3.2.4 解锁用户

命令格式:passwd -u 用户名

passwd -u user2

3.2.5 使用字符串作为用户的密码

命令格式:echo "密码" | passwd --stdin 用户名

echo "123" | passwd --stdin user2

小贴士:

这种方式虽然简单,但是通过history命令可以查到用户的密码,所以不安全。

主要用在shell脚本批量为用户添加初始密码

3.3 修改用户信息

命令格式:usermod [选项] 用户名

选项:

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

常用命令

usermod -c "test user2" user2    # 修改用户的说明

usermod -G root user2    # 把user2用户加入root组

usermod -L user2    # 锁定用户

usermod -U user2    # 解锁用户

  

3.4 修改用户密码状态

命令格式:chage [选项] 用户名

选项:

  • -l: 列出用户的详细密码状态
  • -d 日期: 修改密码最后一次更改日期(shadow3字段)
  • -m 天数: 两次密码修改间隔(4字段)
  • -M 天数: 密码有效期(5字段)
  • -W 天数: 密码过期前警告天数(6字段)
  • -I 天数: 密码过后宽限天数(7字段)
  • -E 日期: 账号失效时间(8字段)

常用命令

chage -d 0 user2    # 这个命令其实是把密码修改日期归0了(shadow第3字段),这样用户一登陆就要修改密码

3.5 删除用户

命令格式:userdel [-r] 用户名

选项:

  • -r 删除用户的同时删除用户家目录和邮箱目录

3.6 用户切换

查看用户ID:id 用户名

切换用户身份:su [选项] 用户名

选项:

  • - : 选项只使用“-”代表连带用户的环境变量一起切换 (env命令查看当前环境变量)
  • -c 命令: 仅执行一次命令,而不切换用户身份

常用命令

su user2    # 切换到user2用户

su - user2    # 切换到user2用户,且连带用户的环境变量

su - root -c "useradd user3"    # 不切换成root,但是执行useradd命令添加user3用户

 

4 用户组管理命令

4.1 添加用户组

命令格式:groupadd [选项] 组名

选项:

  • -g GID 指定组ID

常用命令

 groupadd -g 666 user666    # 添加组名为user666的用户组 

4.2 修改用户组

命令格式:groupmod [选项] 组名

选项:

  • -g GID 修改组ID

  • -n 新组名 修改组名

常用命令

groupmod -g 6666 user666    # 修改组名为user666的用户组ID为6666

groupmod -n group6666 user666    # 把组名user666修改为group6666

4.3 删除用户组

命令格式:groupdel [选项] 组名

tips:删除组的时候,组内不允许有初始用户存在。

常用命令

groupdel user6    # 删除组名为user6的用户组

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

命令格式:gpasswd [选项] 组名

选项:

  • -a 用户名: 把用户加入组

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

常用命令

gpasswd -a user2 group6666    # 将用户user2添加到组名为group6666的用户组中

gpasswd -d user2 group6666    # 将用户user2从组名为group6666的用户组中删除

  • 4
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值