用户和组配置文件

1.用户:Linux基于用户身份对资源进行控制

  • 用户账号
  • root用户
  • 程序用户:不需要登录系统,服务于应用程序,维护系统的运行
  • 普通用户:可以登录系统的一般用户
  • 组账号
  • 基本组(私有组):当用户创建文件和文件夹时,默认的属组,只能有一个
  • 附加组(公共组):用户可以有多个附加组
  • UID和GID
  • UID用户标识号
  • GID组标识号

2.用户相关配置文件

/etc/passwd:用户信息

/etc/shadow:用户密码相关的信息

  • /etc/passwd信息含义:(7段内容)
  • 用户名:
  • 密码占位符:
  • UID:
  • GID:
  • 描述信息:
  • 家目录:
  • 登录shell
[root@localhost ~]# 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
......
  • /etc/shadow 信息含义:
  • 用户名
  • 加密后的密码
  • 上一次密码修改时间(单位是天,是距离1970年1月1日多少天)
  • 密码最小生存周期 单位:天 0表示随时可以修改密码;2表示两天内不能修改
  • 密码最大生存周期 单位:天,密码使用的最长时间
  • 密码到期前几天开始警告
  • 密码过期之后到账户失效之前的时间限制,密码过期之后还可以用几天
  • 账户过期时间
  • 保留列
[root@localhost ~]# cat /etc/shadow
root:$6$Gpft/m4f.o2AYeRq$eUv2Ct7IZloLXlI1NaQjXYbwxO/bN/XXaXVW1PCGDwBAXuxIWtIIydIqLunMtSYqqUQ8RlWfJVcrFcR2.Bydd/::0:99999:7:::
bin:*:17834:0:99999:7:::
daemon:*:17834:0:99999:7:::
......
  • /etc/group:组账户信息
  • 组名、密码占位符、GID、用户列表
[root@localhost ~]# cat /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
......
  • /etc/gshadow:安全组账户信息
  • 组名、加密后的密码[!表示没有设置密码]、组管理员、组成员
[root@localhost ~]# cat /etc/gshadow
root:::
bin:::
daemon:::
......

3.创建用户时有关的配置文件

  • /etc/login.defs:Shadow 密码套件配置 ,设置用户账号限制的文件,可配置;配置对root用户无效。配置优先级低于/etc/shadow
  • /etc/default/useradd:账户创建的默认值
  • /etc/skel:包含默认文件的目录
  • 主要的用户初始配置文件
  • ~/.bash_ profile 用户环境变量文件和启动程序文件
  • ~/.bashrc 用户的别名和函数,将别名写入,只针对当前用户有效
  • ~/.bash_logout 当用户注销时执行的文件
  • 别名机制:alias 别名=‘要执行的命令’
  • /etc/profile 针对所有用户生效
  • /etc/bashrc 针对所有用户生效

添加用户并设置密码

1、添加用户:useradd

  • 选项:
  • -u 指定用户的uid
  • -g 指定用户的gid
  • -G 指定附属组,可以有多个,但是这些附属组必须是系统内已经存在的
  • -c 指定描述
  • -d 指定家目录
  • -M 不建立家目录
  • -s 指定shell
  • -e 指定用户过期时间,日期
  • useradd -e $(date -d + 180days + %Y-%m-%d) zhangsan
  • 设置账户过期时间为180天后
  • -f 指定密码过期后账号失效之前的天数

2、给用户设置密码:passwd

  • root:既可以修改自己的密码,又可以修改别人的密码,并且不需要提供当前密码
  • 普通用户:只能修改自己的密码,要求严格,并且需要提供当前密码
  • -l:锁定用户[/etc/shadow 密码前有!!]
  • -u:解锁用户
  • -S:查看用户锁定状态
  • --stdin:指定可以从标准输入来读取密码,也可以是从管道

修改用户信息及组信息

1、usermod:修改用户信息

  • -u、-g、-G、-d、-s 与useradd参数差不多
  • -L: 锁定用户
  • -U: 解除锁定
  • -l: 改名
  • -a: 添加用户到组,结合-G使用

2、userdel:删除用户

  • -r: 联通用户的宿主目录一并删除

3、chage:查看和修改用户密码信息

  • chage -d 0用户名用户下次登录必须更改密码
  • chage -m 2用户名修改密码最少使用天数
  • chage -M 50用户名修改密码最大使用天数(密码过期时间)
  • chage -l 5用户名密码过期后到账户失效的天数 (密码过期后账号还能使用的天数)
  • chage -E “2019-3-5"用户名修改的是账户的过期时间

4、groupadd:添加组账号信息

5、gpasswd:添加删除组成员

  • -a:向组内添加一个用户
  • -d:从组内删除-个用户成员
  • -M:定义组成员列表,以逗号分隔

6、groupdel:删除组账号

7、chfn:修改用户相关信息

8、查看用户信息命令

  • id 显示真实和有效的UID和GID
  • whoami 查询用户的用户名
  • finger 查询用户帐号的详细信息
  • users、w、who命令 查询已登录到主机的用户信息
  • groups 查看用户所属组信息