Linux账户管理相关文件说明

近期整理了一下Linux系统关于账户管理相关的文件(用户、组、口令策略相关)参数说明

账户管理

账户管理概述

Linux操作系统是多用户的操作系统,它允许多个用户同时登录到系统上,使用系统资源。账户实质上就是一个用户在系统上的标识,系统依据账户ID来区分每个用户的文件、进程、任务,给每个用户提供特定的工作环境,使每个用户的工作都能独立不受干扰的进行。

用户和组

Linux的账户包括用户账户和组账户两种。

  1. 用户账户:分为普通用户账户和超级用户账户。普通用户账户在系统上的任务是进行日常工作,超级用户账户在系统上的任务是对普通用户和整个系统进行管理。
  2. 组账户:是用户的集合,有两种类型私有组和标准组。当创建一个新用户时,如果没有指定其所属的用户组,系统就会建立和该用户同名的私有组,此私有组仅包含这个用户自己,标准组可以包含多个用户,诺使用标准组,在创建一个新用户时就应指定其所属的组。

从另一方面将,同一个用户可以属于多个组,当一个用户属于多个组时,其登录后所属的组称为主组,其他的组称为附加组。

Linux环境下的账户系统文件

Linux系统下的账户文件主要有/etc/passwd,/etc/shadow,/etc/group和/etc/gshadow4个。

  • /etc/passwd

文件中每行定义一个用户账号,一行中又划分为多个字段定义用户账号的不同属性,各字段间用“:”分隔。文件对任何用户均可读,为增加安全性考虑,centos默认使用shadow passwords保护。

[root@localhost ~]# more /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
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
/etc/passwd 文件中各字段的含义
字段说明
用户名用户登录系统时使用的用户名,在系统中是唯一的。
口令此字段存放加密过的口令。这里是X,表示用户口令是被/etc/shadow文件保护的,所有加密的口令以及和口令有关的设置都保存在/etc/shadow中。
用户标识号是一个整数,在系统内部标识用户,每个用户的UID都是唯一的,root账户UID是0,从1~499是系统的标准账户。普通用户UID从500开始。
组标识号是一个整数,在系统内部标识用户所属的组。每个用户账户在建立好后都会有一个主组。主组相同的账户GID相同。默认情况下,每一个账户建立好后都会建立一个和账户名相同的组,作为该账户的主组,这个组只有用户本人这一个成员,即私有组。
GECOS存放用户全名、地理位置等信息。
宿主目录用户登录后进入的目录。
命令解释器指示该用户使用的shell,默认为bash。
  • /etc/shadow

文件储存用户加密后的口令,只对root用户可读且提供了一些口令时效字段。

[root@localhost ~]# more /etc/shadow
root:$6$OhoQzq0exU6byeqp$Fk6gtckmK.X8IJxevwTUxkTcvUuL4TojEO8KQY/uqKlUkytqVpO9J4zDafOYBkb33OnHiPtQxAaP0RPYM8y4a0::0:99999:7:::
bin:*:16659:0:99999:7:::
daemon:*:16659:0:99999:7:::
/etc/shadow 文件中各字段的含义
栏位说明

            用户名

用户的账户名。
口令用户的口令,SHA512加密过的。
最后一次修改时间从1970年1月1日起,到用户最后一次修改口令的天数。
最小时间间隔从1970年1月1日起,到用户可更改口令的天数。
最大时间间隔从1970年1月1日起,到用户必须修改口令的天数。
警告时间在用户口令过期之前多少天提醒用户更新。
不活动时间在用户口令过期之后到禁用账户的天数。
失效时间从1970年1月1日起,到账户被禁用的天数。
标志保留位。
  • /etc/group

将用户分组是Linux中对用户进行管理及控制访问权限的一种手段。每个用户都属于某一个组,一个组可以有多个用户,一个用户也可以有多个组。当一个用户是多个组的成员时,在/etc/passwd文件中记录的是用户所属的主组,也就是登录时所属的主组,而其他组属于附加组。用户要访问附加组文件时,必须首先使用newgrp命令使自己成为所要访问的组的成员。组的所有属性都放在/etc/group文件中。/etc/group文件对任何用户可读。 

[root@localhost ~]# more /etc/group
root:x:0:
bin:x:1:
daemon:x:2:
sys:x:3:
adm:x:4:
tty:x:5:
disk:x:6:
lp:x:7:
/etc/group 文件中各字段说明
栏位说明
组名该组的组名。
组口令组口令,由于安全性原因,已不使用该字段保存口令,用X占位。
GID组的识别号,和UID相似,每个组都有自己独有的识别号,不同组的GID不同。
组成员属于这个组的成员,多个成员间用“,”分隔。
  • /etc/gshadow

文件用于定义用户组口令、组管理员等信息,该文件只有root用户可读

[root@localhost ~]# more /etc/gshadow
root:::
bin:::
daemon:::
sys:::
adm:::
tty:::
disk:::
lp:::
/etc/gshadow 文件中各字段说明
栏位说明
组名组名称,该字段与group文件中的组名称对应。
组口令组口令,该字段用于保存已加密的口令。
组的管理员账号组的管理员账号,管理员有权限对该组添加、删除账号。
组成员属于改组的用户成员列表,列表中多个用户间用“,”分隔。

管理账户的命令行工具

管理账户的命令行工具的功能
命令说明
useradd [选项]<用户名>添加新用户
usermod [选项]<用户名>修改已经存在的指定用户
userdel [r] <用户名>删除已经存在的指定用户,-r参数用于删除用户自家目录
groupadd [选项]<组名>添加新的组
groupmod [选项]<组名>修改已经存在的指定组
groupdel <组名>删除已经存在的指定组
useradd gjn                            #创建一个新用户gjn
groupadd GJN                           #创建一个新组GJN
useradd -G GJN tom                     #创建一个新用户tom并添加到GJN组
mkdir /www;useradd -d /www -M A    #创建一个新用户A,指定登录目录/www,不创建用户宿主目录(-M)
usermod -G GJN A                    #将用户A添加到附加组GJN中
usermod -l jerry -d /home/jerry -m tom        #将tom用户改为jerry,宿主目录改为/home/jerry
groupmod -n jerry tom        #tom组改成Jerry
userdel A                    #删除用户A
userdel -r jerry             #删除用户jerry并删除自家目录
groupdel GJN                 #删除组GJN    

使用passwd命令进行口令管理

创建用户之后,要给新用户设置口令,此时需要使用passwd命令,其格式是:

passwd <选项> <登录用户名>
passwd 命令的常用选项
选项说明
-S列出口令的状态信息
-l锁定用户账户
-u解锁已锁定账户
-d删除口令
-k保持口令不变,直到口令过期失效后方能更改
--stdin从标准输入读取口令(非交互模式)

只有管理员账户(root)可以更改其他用户口令,普通用户只能更改自己的口令,在更改口令之前,系统会要求用户输入旧的口令。

chage命令

在Linux系统上,修改口令时效分为:

  1. 对于未来创建的所有用户的口令时效,需要修改/etc/login.defs文件。
  2. 对已经存在的用户修改口令时效通过chage命令管理
  •  设置新添加用户的口令时效:
/etc/login.defs中与口令时效相关的参数
参数说明
PASS_MAX_DAYS设定多少天后要求用户修改口令,默认99999,即关闭了口令时效。
PASS_MIN_DAYS本次口令修改后,至少需要多久才允许更改口令。
PASS_WARN_AGE设置口令失效前多少天开始通知用户修改口令。
  • 设置已存在用户的口令时效:
  1. chage命令只适用于本地系统账户,对LDAP账户和数据库账户不起作用
  2. chage命令实质上是修改影子口令文件/etc/shadow中的与口令时效相关的字段值

chage命令的格式是:

chage <选项> <登录用户名>
chage命令的选项说明
选项描述
-m days指定用户变更口令所间隔的最小天数。如果值为0,口令就不会过期(PASS_MIN_DAYS)
-M days指定用户口令有效的最多天数(PASS_MAX_DAYS)
-d days指定从1970年1月1日起,口令被改变的天数
-I days指定口令过期后,账号被锁定前不活跃的天数,如果值为0,账号在过期后就不会被锁定
-E date指定账号被锁定的日期,日期格式为YYYY-MM-DD。若不用日期,也可以使用自1970年1月1日后经过的天数
-W days指定口令过期前多久要告警用户的天数
-I列出指定用户的当前时效信息,以确定账号何时过期

用户和组状态命令

常用的用户和组状态命令
命令功能
whoami用于显示当前用户的名称
id用于显示用户的身份
groups用于显示指定用户所属的组
newgrp用于将用户从当前组转换到指定的附加组,用户必需属于改组才可以使用
[root@localhost ~]# whoami
root
[root@localhost ~]# id
uid=0(root) gid=0(root) 组=0(root)
[root@localhost ~]# groups
root

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小谷要努力~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值