linux用户管理(useradd、userdel、usermod、groupadd、groupdel、chage、passwd、chpasswd)
一、用户账户配置文件介绍
/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)的更多相关文章
- Centos-用户管理-useradd userdel usermod groupadd groupdel id
linux是多用户.多任务操作系统 linux角色分类 超级用户 root # 管理员.特定服务主进程 0 普通用户 $ 普通管理员.服务运行需要的用户 500~65535 虚拟用户 不能登录 ...
- Linux编程 15 文件权限(用户管理 useradd,userdel,usermod,passwd,chpasswd,chsh, chfn,chage)
一. 概述 在上一篇中讲到了与用户账户有关的二个文件passwd和shadow,以及useradd工具的介绍.这篇接着讲useradd+参数,删除用户,修改用户的演示. 1. 删除用户userdel ...
- 《linux 用户管理》- useradd/userdel/usermod/groupadd/who/w
一:概念 在 Linux 中,使用一个 32位整数 来记录每一个用户(USER ID 简单 UID),这意味着在 Linux 中,可以有 40亿 个不同的用户. 系统. 在 /etc/passwd ...
- CentOS 用户管理useradd、usermod等
1.创建新用户useradd,默认的用户家目录会被存放在/home 目录中,默认的 Shell 解释器为/bin/bash,而且默认会创建一个与该用户同名的基本用户组. 主要参数: -d 指定用户的家 ...
- Linux 用户管理命令-userdel和su
userdel [选项] 用户名,可以删除用户,常用选项 -r :删除用户的同时删除用户的家目录,一般都要用,例如:userdel -r xbb 新建用户和删除用户的本质也就是修改了 /etc/sha ...
- Linux用户管理——useradd
除了useradd还有一个命令adduser,两者是链接关系 [root@51cto ~]# which adduser /usr/sbin/adduser [root@51cto ~]# which ...
- linux用户管理,linux用户口令管理,linux用户组管理,linux用户权限管理详解
linux用户管理 http://www.qq210.com/shoutu/android 用户账号的添加(新加用户需添加用户口令) :增加用户账号就是在/etc/passwd文件中为新用户增加一条记 ...
- Linux用户管理(笔记)
用户:UID, /etc/passwd组:GID, /etc/group 影子口令:用户:/etc/shadow组:/etc/gshadow 用户类别:管理员:0普通用户: 1-65535 系统 ...
- 11.Linux用户管理
本笔记说的Linux用户管理主要包括以下内容: 1.用户配置文件(/etc/passwd /etc/shadow) 2.组配置文件(/etc/group /etc/gshadow) 3.用户缺省配 ...
- Linux用户管理的复习时间
所谓三天不练手生,你还记得关于Linux用户管理的所有知识吗?现在就来跟我一起复习一下吧! 1.常用配置文件 用户信息文件: /etc/password 密码文件: /etc/shadow 用户组文件 ...
随机推荐
- SpringBoot 整合Shiro 一指禅
目标 了解ApacheShiro是什么,能做什么: 通过QuickStart 代码领会 Shiro的关键概念: 能基于SpringBoot 整合Shiro 实现URL安全访问: 掌握基于注解的方法,以 ...
- 网站运营文章LIST
如何建立网站地图(site map) ● 伤心SEO之太平洋 ● 关键字密度与网站排名 ● 哪些因素决定网站SEO的价格 ● SEO:站在Google背后的搜钱力量 ● 网站被一搜索屏蔽,郁闷! ● ...
- maven依赖传递和排除依赖冲突
1 依赖的传递 假如 A项目 依赖 a.jar 1.0.1,b.jar 1.0.1,没有直接依赖c.jar 1.0.1,但是b.jar 1.0.1依赖了c.jar 1.0.1,可以说A项目间接依赖了c ...
- FineReport打印方式(转)
1. 报表打印机制 各种打印的运行机制,都是选择打印时,先根据报表内容,在服务器的内存中将页面中的内容全部生成完毕,即生成对应格式的对象:然后再由serverlet直接推送给客户端,最后根据选择的打印 ...
- c++实验7 二叉树
二叉树数据结构表示及基本操作算法实现 1.所加载的库函数或常量定义及类的定义: #include<stdlib.h> #include<stdio.h> #include&qu ...
- 设计模式(2): 响应store中数据的变化
概述 最近最近做项目的时候总会思考一些大的应用设计模式相关的问题,我把自己的思考记录下来,供以后开发时参考,相信对其他人也有用. store里面响应数据变化 通常情况下,我们会把数据存在store里面 ...
- springboot 使用外置tomcat启动
pom.xml 如下 <?xml version="1.0" encoding="UTF-8"?> <project xmlns=" ...
- Jmeter之线程组(默认)
Jmeter中的采样器必须要基于线程组. 一.添加线程组 在测试计划上右键,然后选择,如下图: 二.线程组界面 三.线程组界面配置说明 1.名称:线程组自定义名称: 2.注释:添加的一些备注说明信息, ...
- js监听当前页面再次加载
document.addEventListener("visibilitychange", function () { if (!document.hidden) { //处于当前 ...
- OPEN SQL:插入、删除、修改语法
1. UPDATE 用于实现对数据据的更新操作,语法如下: UPDATE <dbtab> set f1...fn (where <condition>). UPDATE < ...