title: linux基础_3.用户管理与用户组管理date: 2020-10-11 09:21:44
tags: linux
categories: linux基础

用户配置文件

用户配置文件:查看和修改用户信息

passwd(7个参数)

man 5 passwd查看配置文件格式

linux基础-3-用户管理 - 图1

  • UID(用户ID) linux基础-3-用户管理 - 图2

centos7普通用户从1000开始

  • GID(组ID)
    初始组:用户同名组,只能有一个,可修改
    附加组:可加入其他用户组,拥有其权限,多个

  • GECOS(用户说明)

  • Directory(家目录)
    /home/用户名/和/root/
    初始登录目录,目录权限普通用户700,root 500(ll 目录 -d)

  • shell(命令解释器)
    /bin/bash/
    /sbin/nologin/ 伪用户

shadow(9个参数)

用户名:加密密码:密码最后修改日期:修改间隔:有效期:密码到期警告时间(前):过期宽限时间(后):账号失效时间:保留

cat /etc/shadow

linux基础-3-用户管理 - 图3

  • 加密密码:sha512,!!或*表示无密码。可能被爆破但密码加盐撞库成功可能性不大

  • 日期均为时间戳(1970-01-01到当天的天数)

    1. date -d "1970-01-01 16066 days" #时间戳-日期
    2. echo $(($(date--date="2014/01/06"+%s)/86400+1)) #日期-时间戳

/etc/group

组名:组密码:GID:组中附加用户

cat /etc/group

linux基础-3-用户管理 - 图4

/etc/gshadow

组名:组密码:组管理管名:组中附加用户

linux基础-3-用户管理 - 图5

  • 密码为空可用!或不填
  • 密码修改可用gpasswd group名,类似passwd
  • 组切换可使用newgrp 组名,类似su

例子
  1. beinan:!::linuxsir
  2. linuxsir:oUS/q7NH75RhQ::linuxsir

第一字段:这个例子中,有两个用户组beinan用linuxsir
第二字段:用户组的密码,beinan用户组无密码;linuxsir用户组有已经,已经加密;
第三字段:用户组管理者,两者都为空;
第四字段:beinan用户组所拥有的成员是linuxsir ,然后还要对照一下/etc/group和/etc/passwd 查看是否还有其它用户,一般默认添加的用户,有时同时也会创建用户组和用户名同名称; linuxsir 用户组有成员linuxisir ;

用户管理相关文件

用户家目录

初始登录位置

普通用户:/home/用户,所属者和所属组均为此用户,权限700

超级用户:/root/,——,权限550

注意:普通用户变为超级用户只需在/etc/passwd将uid变为0,重新登录家目录不变,权限升级

用户邮箱

/var/spool/mail/用户名

linux基础-3-用户管理 - 图6

用户模板文件 /etc/skel/

linux基础-3-用户管理 - 图7

用户管理命令

添加用户useradd

linux基础-3-用户管理 - 图8

添加用户涉及的文件

手动创建: 指定uid(-u), 用户组(-g初始组gid,-G附加组),备注(-c),家目录(-d),shell(-s)
linux基础-3-用户管理 - 图9

缺省选项/默认

/etc/default/useradd

linux基础-3-用户管理 - 图10

/etc/login.defs

linux基础-3-用户管理 - 图11

修改密码passwd

普通用户修改自己密码:passwd

管理员修改他人:passwd user

管理员修改密码可无视密码复杂度要求,但普通用户必须遵循

查看密码状态

linux基础-3-用户管理 - 图12

用户名 密码设定时间 修改间隔 密码有效期 警告时间 密码不失效

锁定用户&解锁

passwd -l user2

linux基础-3-用户管理 - 图13

密码前加入!!使密码失效,无法登陆

passwd -u user2 解锁

linux基础-3-用户管理 - 图14

shell编程批量添加密码的一点启发

echo "123"|passwd --stdin user1 使用前者输出作为后者输入代替标准输入

linux基础-3-用户管理 - 图15

锁定用户的一些方法小结
  1. 1. passwd文件shell 改为/sbin/nologin
  2. 2. shadow密码前加! 换算失效
  3. 3. 注释用户

修改用户信息usermod

linux基础-3-用户管理 - 图16

  1. usermod -c "tede" user1
  2. usermod -G root user1
  3. usermod -L user1
  4. usermod -U user1

修改密码信息chage

chage -l jen #查看密码状态

linux基础-3-用户管理 - 图17

chage -d 0 user #要求用户一登录就修改密码

linux基础-3-用户管理 - 图18

删除用户userdel

userdel -r username -r彻底删除

linux基础-3-用户管理 - 图19

验证完全删除的方法:再次添加不报错

查询id

linux基础-3-用户管理 - 图20

切换用户su

  1. su - root #- 连带env切换
  2. su - root -c "useradd user3" #-c 不切换用户身份,执行一次命令

用户组管理命令

添加用户组groupadd

groupadd tg

linux基础-3-用户管理 - 图21

帮助文档

linux基础-3-用户管理 - 图22

groupmod

groupmod -n lamp tg 修改组名,一般不用

linux基础-3-用户管理 - 图23

groupdel

  1. groupdel 组名

组内有初始用户,不可删除,附加用户不影响

useradd tt -g lamp useradd tt1 -G lamp

linux基础-3-用户管理 - 图24

此时tt1的初始组是tt1,附加组是lamp。

linux基础-3-用户管理 - 图25

如果像删除组lamp,会报错lamp是tt用户的初始组无法删除

linux基础-3-用户管理 - 图26

使用userdel -r tt删除用户tt后,再次删除组lamp即可,此时组lamp不受tt1的限制

linux基础-3-用户管理 - 图27

修改已存在用户附加组gpasswd

除了创建用户时指定用户的附加组,使用usermod指定用户附加组,可使用gpasswd将已有用户加入附加组

gpasswd -a user1 lamp #参数-a user1加入附加组lamp

linux基础-3-用户管理 - 图28

gpasswd -d user1 lamp #将用户从附加组中移除

linux基础-3-用户管理 - 图29