一、用户账户配置文件介绍

/etc/passwd 用户账户信息文件
/etc/shadow 用户账户密码文件
/etc/group 用户组信息文件
/etc/gshadow 用户组密码所在文件(基本废弃)
/etc/default/useradd 新增账户的默认属性配置
/etc/login.defs 新增用户的属性信息

总结:
useradd 命令会修改/etc/passwd 、/etc/shadow、/etc/group 、/etc/gshadow (同时创建用户与用户组)
passwd 命令会修改/etc/shadow
groupadd命令会修改/etc/group 、/etc/gshadow

-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
添加用户时,会修改上述4个文件---------文件md5值会发生变化
[root@mm ~]# md5sum /etc/passwd /etc/shadow /etc/group /etc/gshadow
2fe9f002726ed0a138d67cd44722f1a6 /etc/passwd
c2ca41415dca17f1a3dc3c286a9b9bff /etc/shadow
c475144a13d87a400b5e16fe6bd70baf /etc/group
659ef4f533df0fa7e457f87755fb1c27 /etc/gshadow

[root@mm ~]# useradd bingbing

[root@mm ~]# md5sum /etc/passwd /etc/shadow /etc/group /etc/gshadow
39d60eff90ecd0326fe59e6464b464ad /etc/passwd
0aa8d3b157f042876ec0190a2808a377 /etc/shadow
cee8bc6e85f9dfb9dc0a04e452e834f4 /etc/group
cdfd26351f409ee32fca53a22ad15912 /etc/gshadow

[root@mm ~]# grep bingbing /etc/passwd /etc/shadow /etc/group /etc/gshadow
/etc/passwd:bingbing:x:1004:1006::/home/bingbing:/bin/bash
/etc/shadow:bingbing:!!:17980:0:99999:7:::
/etc/group:bingbing:x:1006:
/etc/gshadow:bingbing:!:

/etc/passwd文件 用户账户信息文件

root: x: 0: 0: root: /root: /bin/bash
用户名 密码 uid gid 用户描述 用户家目录 用户登录的shell

CentOS7默认shell为bash,bash是sh的扩展,sh是bash的软连接
[root@mm ~]# awk -F ":" '{print $NF}' /etc/passwd|sort|uniq -c
6 /bin/bash
1 /bin/sync
1 /sbin/halt
18 /sbin/nologin
1 /sbin/shutdown

[root@mm ~]# cat /etc/shells
/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash

/etc/shadow 用户账户密码文件

nobody 用户名
:* 密码 (!!为未设置密码,设置密码后为长长字符串)
:17834 最近更改密码的时间,自1970年1月1日起的天数
:0 禁止修改密码的时间,即两次修改密码的最少间隔时间
:99999 用户必须修改密码的天数,99999天约270年,自1970年1月1日起
:7 提示修改密码的时间,即密码到期前7天提示修改密码
: 密码过期到禁用账户的间隔天数
: 用户被禁用的天数,自1970年1月1日起
: 标志,保留字段

/etc/group 用户组信息文件

mail :x :12 :mail,postfix
用户组名 用户组密码 gid 用户组成员

/etc/default/useradd 新增账户的默认属性配置

[root@ 55test ~]# cat /etc/default/useradd
# useradd defaults file
GROUP=100 #如果useradd没有指定组,并且/etc/login.defs中的USERGROUPS_ENAB为no或者useradd使用了-N选项时,此时该参数生效。创建用户时使用此组ID
HOME=/home #在此目录下创建用户家目录
INACTIVE=-1 #用户过期后账户停权,默认-1表示不启用过期停权
EXPIRE= #账户过期日期,默认为空,表示账户永不过期
SHELL=/bin/bash #新增用户默认shell
SKEL=/etc/skel #默认文件(.bash_logout .bash_profile .bashrc)拷贝路径
CREATE_MAIL_SPOOL=yes #创建邮件文件

此文件修改方法:
1、useradd -D -s /bin/sh #修改默认shell
2、vim /etc/default/useradd

/etc/skel 提供用户环境变量配置文件,由此目录向新增用户家目录添加环境变量配置文件
/etc/login.defs 新增用户的属性信息
[root@ 55test ~]# cat /etc/login.defs |grep -v "#"

MAIL_DIR /var/spool/mail #邮件目录

PASS_MAX_DAYS 99999 #密码修改间隔最大天数
PASS_MIN_DAYS 0 #密码修改间隔最小天数
PASS_MIN_LEN 5 #密码最小长度
PASS_WARN_AGE 7 #密码过期前开始提示天数

UID_MIN 1000
UID_MAX 60000
SYS_UID_MIN 201
SYS_UID_MAX 999

GID_MIN 1000
GID_MAX 60000
SYS_GID_MIN 201
SYS_GID_MAX 999

CREATE_HOME yes #默认是否为用户创建家目录

UMASK 077 #默认umask

USERGROUPS_ENAB yes #默认为用户创建用户组

ENCRYPT_METHOD SHA512 #默认用户密码加密方式

二、用户账户配置操作

useradd 添加用户

-s 用户登录shell
-M 不创建家目录
-u 指定uid
-g 指定用户的属组
-c 添加说明
-d 指定家目录
-e 用户登录截止日期。
[root@ 55test ~]# useradd -u 1555 -M -s /bin/sh -e ' 20190730' -c "what" ppl

[root@ 55test ~]# tail -1 /etc/passwd
ppl:x:1555:1555:what:/home/ppl:/bin/sh

[root@ 55test ~]# chage ppl -l
Last password change : Jul 25, 2019
Password expires : never
Password inactive : never
Account expires : May 05, 57250
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

chage 查看账户密码过期属性

-l 显示属性信息
-E 密码过期时间
-I 密码过期后账户禁用间隔天数
-m 密码修改间隔最小天数
-M 密码修改间隔最大天数
-W 密码过期前开始提示的天数
[root@ 55test ~]# chage -l lili
Last password change : Sep 21, 2019 #最近一次修改密码时间
Password expires : Nov 20, 2019 #密码过期时间,过期后强制修改密码,-E参数修改
Password inactive : Dec 20, 2019 #密码停权时间,即因密码过期而停用账户的时间,-I参数修改,默认-1表示不停权
Account expires : never #账户过期时间
Minimum number of days between password change : 7 #密码修改间隔最小天数,-m参数
Maximum number of days between password change : 60 #密码修改间隔最大天数。-M参数
Number of days of warning before password expires : 7 #密码过期前开始提示的天数,-W参数

userdel 删除用户

工作中常先用#注释账户来停用账户,一段时间后再删除账户
-r 删除用户家目录及家目录中文件

usermod 修改用户账户属性

-s 用户登录shell
-u 指定uid
-g 指定用户的属组
-c 添加说明
-d 指定家目录
-e 用户登录截止日期。

[root@ 55test ~]# usermod -u 1556 -g kkk -s /bin/bash -e ' 20200730' -c "what the hell" ppl
[root@ 55test ~]#
[root@ 55test ~]# tail -1 /etc/passwd
ppl:x:1556:1004:what the hell:/home/ppl:/bin/bash
[root@ 55test ~]#
[root@ 55test ~]# chage -l ppl
Last password change : Jul 25, 2019
Password expires : never
Password inactive : never
Account expires : Sep 20, 57277
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7
[root@ 55test ~]#
[root@ 55test ~]# id ppl
uid=1556(ppl) gid=1004(kkk) groups=1004(kkk)

passwd 修改密码

--stdin 从标准输入接收密码
-e 强制用户下次登录时修改密码
-l 锁定账户
-u 解除锁定
-d 删除用户密码
-i 密码过期后禁用账户的天数

非交互方式修改密码:
方法一:
[root@localhost ~]# echo 12345 |passwd --stdin lili
Changing password for user lili.
passwd: all authentication tokens updated successfully.

方法二:(CentOS 6.X执行成功,CentOS 7.X中切换用户时报错)
[root@localhost ~]# echo 123 >pass
[root@localhost ~]# passwd --stdin kkk <pass
Changing password for user kkk.
passwd: all authentication tokens updated successfully

chpasswd 批量修改密码

方法一:
CentOS 6.X
[root@localhost ~]# cat user
lili:kll
kkk:kll
lll:kll
[root@localhost ~]# chpasswd<user

CentOS 6.X 与 CentOS 7.X
[root@localhost ~]# cat user
lili:kll
kkk:kll
lll:kll
[root@ 55test ~]# chpasswd
lili:kll #此处粘贴文本
kkk:kll
ppl:kll #输入结束后按ctrl+d

方法二:
[root@ 55test ~]# tail -4 /etc/passwd|awk -F ":" '{print $1":ppp"}'|chpasswd

批量创建用户
echo boy{1..10}|xargs -n1|sed 's#.*#useradd &;echo &|passwd --stdin &#'|bash
echo boy{01..10}|xargs -n1|sed -rn 's#(.*)#useradd \1;echo 123456|passwd --stdin \1 #gp'|bash

批量删除用户
echo boy{1..10}|xargs -n1|sed 's#.*#userdel -r &#'|bash

linux用户管理(useradd、userdel、usermod、groupadd、groupdel、chage、passwd、chpasswd)的更多相关文章

  1. Centos-用户管理-useradd userdel usermod groupadd groupdel id

    linux是多用户.多任务操作系统 linux角色分类 超级用户 root # 管理员.特定服务主进程 0 普通用户    $  普通管理员.服务运行需要的用户 500~65535 虚拟用户 不能登录 ...

  2. Linux编程 15 文件权限(用户管理 useradd,userdel,usermod,passwd,chpasswd,chsh, chfn,chage)

    一. 概述  在上一篇中讲到了与用户账户有关的二个文件passwd和shadow,以及useradd工具的介绍.这篇接着讲useradd+参数,删除用户,修改用户的演示. 1. 删除用户userdel ...

  3. 《linux 用户管理》- useradd/userdel/usermod/groupadd/who/w

    一:概念 在 Linux 中,使用一个 32位整数 来记录每一个用户(USER ID 简单 UID),这意味着在 Linux 中,可以有 40亿 个不同的用户. 系统. 在 /etc/passwd  ...

  4. CentOS 用户管理useradd、usermod等

    1.创建新用户useradd,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组. 主要参数: -d 指定用户的家 ...

  5. Linux 用户管理命令-userdel和su

    userdel [选项] 用户名,可以删除用户,常用选项 -r :删除用户的同时删除用户的家目录,一般都要用,例如:userdel -r xbb 新建用户和删除用户的本质也就是修改了 /etc/sha ...

  6. Linux用户管理——useradd

    除了useradd还有一个命令adduser,两者是链接关系 [root@51cto ~]# which adduser /usr/sbin/adduser [root@51cto ~]# which ...

  7. linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解

    linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...

  8. Linux用户管理(笔记)

    用户:UID, /etc/passwd组:GID, /etc/group 影子口令:用户:/etc/shadow组:/etc/gshadow 用户类别:管理员:0普通用户: 1-65535    系统 ...

  9. 11.Linux用户管理

    本笔记说的Linux用户管理主要包括以下内容: 1.用户配置文件(/etc/passwd  /etc/shadow) 2.组配置文件(/etc/group  /etc/gshadow) 3.用户缺省配 ...

  10. Linux用户管理的复习时间

    所谓三天不练手生,你还记得关于Linux用户管理的所有知识吗?现在就来跟我一起复习一下吧! 1.常用配置文件 用户信息文件: /etc/password 密码文件: /etc/shadow 用户组文件 ...

随机推荐

  1. mysql中对比 JSON_VALUE 与 JSON_QUERY

    1. JSON概述 MySQL里的json分为json array和json object. $表示整个json对象,在索引数据时用下标(对于json array,从0开始)或键值(对于json ob ...

  2. node、npm、git版本升级

    node版本升级: npm install -g n 或者 npm i -g n --force n stable或者n --stable:安装最近稳定版本 n latest或者n --latest: ...

  3. JAVA周二学习总结

    第一周我感觉我学到了不少东西,其中有上学期C语言学的不好的原因,因为不想再挂科就有认真的在听. 学到的东西有JAVA的基本书写模式自己懂了,还在课堂上弄会了交换数据的方法,还有运算的算法,另外还有数据 ...

  4. Spring MVC 同一个方法同时返回view或json

    https://blog.csdn.net/zzg1229059735/article/details/50854778 @RequestMapping(value = "/htmlorjs ...

  5. Spring4配置文件模板

    <?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.sp ...

  6. material of DeepLearning

    下面这个链接是深度学习相关的资料,内含很多dl的链接资料: http://blog.csdn.net/augusdi/article/details/20238157 MIT Deep Learnin ...

  7. legend3---Laravel Homestead的安装和使用

    legend3---Laravel Homestead的安装和使用 一.总结 一句话总结: 配置好homestead之后编码非常方便:在虚拟机或者外部机器里面操作代码两者都会同时改变. 1.Homes ...

  8. 自定义配置节点configSections的使用

    //App.config <?xml version="1.0" encoding="utf-8" ?><configuration>  ...

  9. 阶段3 1.Mybatis_03.自定义Mybatis框架_3.自定义mybatis的编码-根据测试类中缺少的创建接口和类

    先认识一下这几个类.Resources是一个class SqlSessionFactoryBuilder 创建新项目 复制相关的依赖 复制之前的代码 复制到当前项目的src下 把Mybits的依赖删除 ...

  10. kubernets监控

    Weave Scope 容器地图   创建 Kubernetes 集群并部署容器化应用只是第一步.一旦集群运行起来,我们需要确保一起正常,所有必要组件就位并各司其职,有足够的资源满足应用的需求.Kub ...