用户的分类(CentOS7)

用户UID

系统含义

0

超级用户(拥有系统的最高权限)

1-200

系统用户,由系统分配给系统进程使用

201-999

系统用户,运行服务,不需要登录系统的

1000+

普通用户

注意:在CentOS7之前,创建用户,都是1-499 是系统用户,500+是普通用户,第一个创建的用户,不指定uid,一定是500。

用户信息相关文件

创建一个用户,一般会影响四个文件:

1./etc/passwd # 存放用户信息

2./etc/shadow # 存放用户密码信息

3./etc/group # 存放用户组信息

4./etc/gshadow # 存放用户组密码信息

/etc/passwd 文件

[root@localhost ~]# cat /etc/passwd

wqh: x:777:1001:此列为注释信息: /home/wqh:/bin/bash

/etc/shadow 文件

[root@localhost ~]# cat /etc/shadow

root:$6$iM1LuZaUuwyZrIg.$2X2Upu4KHmQoD1hzKHCzsmJqxPri9PlVDm5MYw/XdQsYgRpJaLIy1xWw0aDXLPePZNAcNRmfrYJrJgb6dmbu/.::0:99999:7:::

列数

名称

详情

1

用户登陆名

用户的账号名称

2

加密后的密码

用户密码,这是加密过的口令,未设密码时为 * 或 !! , * 是1-200的系统进程, !! 是201-999的服务进程

3

最近一次密码更改时间

从1970年到最近一次更改密码时间之间过了多少天

4

密码最少使用几天

密码最少使用几天才可以更改密码(0表示无限制)

5

密码最长使用几天

密码使用多少天需要修改密码(默认99999永不过期)

6

密码到期前警告期限

密码过期前多少天提醒用户更改密码(默认过期提前7天警告)

7

密码到期后保持活动的天数

在此期限内, 用户依然可以登陆系统并更改密码, 指定天数过后, 账户被锁定

8

账户到期时间

从1970年起,账户在这个日期前可使用,到期后失效。

9

标志

保留备用

用户创建过程中的配置文件

我们执行二进制文件 useradd 的时候,会调用哪些配置文件?

/etc/login.defs 文件

[root@wqh06 tmp]# ll /sbin/useradd

-rwxr-x---. 1 root root 118232 Oct 31 2018 /sbin/useradd

[root@localhost ~]# cat /etc/login.defs

[root@localhost ~]# grep -i '^[a-z]' /etc/login.defs

# 指定创建用户后的邮件文件存放位置

MAIL_DIR/var/spool/mail

# 密码,最长天数

PASS_MAX_DAYS99999

# 密码最小天数

PASS_MIN_DAYS0

# 密码最小长度

PASS_MIN_LEN5

# 密码过期前7天 ,提示,密码要过期了,给老子改

PASS_WARN_AGE7

# 普通用户的uid 最小值1000

UID_MIN 1000

# 普通用户的最大uid 60000

UID_MAX 60000

# -r创建的系统用户,201 - 999

SYS_UID_MIN 201

SYS_UID_MAX 999

# 普通用户组的最小gid

GID_MIN 1000

# 普通用户组的最大gid

GID_MAX 60000

# -r创建的系统用户组,201 - 999

SYS_GID_MIN 201

SYS_GID_MAX 999

# 默认创建家目录

CREATE_HOMEyes

# 家目录umask

UMASK 077

0777 0777

- 0022 0077

------- ------

0755 0700

# 在删除用户的时候,是否捆绑,把用户组也删除

USERGROUPS_ENAB yes

# 用户密码加密算法

ENCRYPT_METHOD SHA512

/etc/default/useradd 文件

[root@localhost ~]# ll /etc/default/useradd

-rw-r--r-- 1 root root 119 11月 5 2016 /etc/default/useradd

[root@localhost ~]# cat /etc/default/useradd

# 依赖于/etc/login.defs的USERGRUUPS_ENAB参数,如果为no,则在此处控制

GROUP=100

# 默认普通用户的家目录

HOME=/home

# 是否启用账号过期停权,-1表示不启用

INACTIVE=-1

# 账号终止日期(没有设置)

EXPIRE=

# 创建用户的默认shell

SHELL=/bin/bash

# 当用户,误删除了自己家目录下的环境变量。

SKEL=/etc/skel

-bash-4.2$ cp /etc/skel/.bash* ~/

# 创建用户的同时,是否创建邮件文件

CREATE_MAIL_SPOOL=yes

用户管理命令

增加用户

useradd

adduser # useradd 的软链接

Usage:useradd [选项] [用户名]

默认情况下,在创建用户的时候,会创建一个和用户同名的组,并且把该用户加入该组

[root@localhost ~]# useradd wqh

-u:(uid)指定uid

-g:(gid)指定gid,也可以指定组名,需要存在这个组名

-G:(Group)指定附加组,如果加入多个附加组则用,逗号隔开

[root@wqh06 ~]# useradd wqh -g root -G bin,dba,sa

-d:(directory)指定用户的家目录

[root@wqh06 ~]# useradd kkkk -d /tmp/kkkk

-s:(shell)指定登录的shell,可登录用户:/bin/bash,不可登录用户:/sbin/nologin

-c:(comment)添加注释

-M:不创建家目录

-r:帮我们创建一个uid范围是201-999的系统用户(默认可以登录),不创建家目录

删除用户

userdel

Usage:userdel [选项] [用户名]

# 注意: 默认情况下,在删除用户的同时会把同名的用户组也删除,但是如果组内有其他用户,则不会删除组,只删除用户

-r:删除用户的同时,删除用户的家目录,和用户的其他 邮件目录... (删干净)

修改用户

usermod

Usage:usermod [选项] [用户名]

-u:修改uid

-g:修改gid

-G:修改附加组(一般配合-a使用) # 直接用会把从组修改没,添加一个新的组,一般都会加-a,会在后面继续添加从组

-d:指定修改后的家目录(需要加 -m 才可用)

-s:修改登录的shell

-c:修改注释

-l:修改登录的用户名,如:usermod wqh -l wqh01

-L:锁定用户(封号),LOCK

-U:解锁用户(解封),UNLICK

-a:配合-G,在修改附加组的时候,起到追加效果(append)

-m:修改(迁移)家目录,必须配合 -d

查看用户

id # 查看当前登录用户

Usage:id [用户名]

-u:查看UID

-g:查看GID

-G:查看附加组

w # 查看当前登录终端的设备以及用户

who # 查看当前登录的用户,以及远程连接的IP地址

用户密码管理命令

passwd # 修改当前登录用户的密码

#使用交互式的方式设置密码

[root@localhost ~]# passwd wqh

# 使用非交互的方式设置密码给指定用户

[root@localhost ~]# echo '123' | passwd --stdin wqh

md5sum # 加密算法,并且做校验,相同的一串字符每次md5加密结果相同

[root@wqh06 ~]# echo 123 |md5sum

ba1f2511fc30423bdbb183fe33f3dd0f -

mkpasswd # 随机生成密码命令,需要安装expect包

[root@wqh06 ~]# yum install -y expect //需要安装扩展包

[root@wqh06 ~]# mkpasswd -l 10 -d 2 -c 2 -C 2 -s 4

|K&13bR)i/

批量创建用户并给予密码(面试题)

面试题:请你创建出来100个用户,并且设置100个随机密码,并且记录密码,每个用户都可以登录,密码记录的格式如username:password:

[root@wqh06 ~]# cat /tmp/1.txt

wqh001:123456

wqh002:kzsuhiuh1

awk方法:

# 利用mkpasswd生成密码,把格式固定,输入到文件中,再cut出 ":" 后的密码,交给passwd:

[root@wqh06 ~]# seq -w 100|awk '{print "useradd usr"$1,"&& echo usr"$1":`mkpasswd -l 10` |tee -a /root/wangqihan.pass|awk -F "[:]" "{print $2}"| passwd --stdin usr"$1 }' |bash

# 利用变量解决:

[root@wqh06 ~]# seq -w 100|awk '{print "useradd cls"$1,"&&","pass=`echo $RANDOM|md5sum|cut -c 1-10`","&&","echo $pass|passwd --stdin cls"$1,"&& echo cls"$1":$pass >> /tmp/2.pass"}'|bash

sed方法:

[root@wqh06 ~]# seq -w 100|sed -nr 's#(.*)#useradd wls1 && pass=`echo $RANDOM|md5sum|cut -c 1-10` && echo $pass |passwd --stdin wls1 && echo wls1:$pass >> /tmp/wls.pass#gp'|bash

for方法:

[root@wqh06 ~]# for n in `seq -w 100`;do useradd lls$n;pass=`echo $RANDOM|md5sum|cut -c 1-10`;echo $pass |passwd --stdin lls$n;echo lls${n}:$pass >> /tmp/lls.pass;done

写一个交互式的脚本文件:

#!/bin/bash

read -p "请输入需要创建的用户名 :" username

read -p "请输入需要创建用户的数量:" usercount

for n in `seq -w $usercount`;do

useradd $username$n

pass=`echo $RANDOM|md5sum|cut -c 1-10`

echo $pass |passwd --stdin $username$n

# 下一条语句中的${n},加{}的目的是与后面的`:`分隔开,这里也可以不加,只是作区分用,不等同与命令行的$()的调用功能

echo $username${n}:$pass >> /tmp/$username.pass

done

awk方法结果:

脚本:

上图中实际上就是将命令行中的for命令内容,堆起来,每一行用 && 连接,依然可行:

我们也可以搞一个交互式的脚本:

linux etc login.def,Linux-用户管理命令相关推荐

  1. linux账号5天锁定,Linux学习之六(Linux用户、权限、用户管理命令)2017-03-31

    一.用户.组.权限 用户:UID,/etc/passwd 组:GID,/etc/group 二.影子口令: 用户:/etc/shadow 组:/etc/gshadow 三.用户类别: 管理员:0 普通 ...

  2. Linux 学习之路 (三):用户管理命令详解

    用户管理命令详解 useradd [options] USERNAME ​ -u UID(>=500,并且与其他用户无重复) ​ -g GID(基本组,组必须事先存在) ​ -G GID,- ( ...

  3. Linux 文件与目录管理+用户管理命令(详解+练习)

    1. 创建目录 mkdir NO1. 在当前路径创建一级目录 [root@rehat root]# mkdir test NO2. 在当前路径创建多级目录 [root@rehat root]# mkd ...

  4. Linux查看所有用户及用户管理命令

    1.Linux里查看所有用户 (1)在终端里.其实只需要查看 /etc/passwd文件就行了. (2)看第三个参数:500以上的,就是后面建的用户了.其它则为系统的用户. 或者用cat /etc/p ...

  5. Linux 文件与目录管理+用户管理命令

    Linux 文件与目录管理+用户管理命令(详解+练习) 标签: it分类: Linux A linux实用命令详解(新建删除复制文件夹,挂载) + B Linux 文件与目录管理+用户管理命令练习 A ...

  6. Linux用户管理命令

    1.用户管理命令 Linux是一个多用户的系统 (1)系统存储用户信息的位置 /etc/passwd:存储用户的基本信息 UID GID UID:用户 GID:用户所属的组 (2)/etc/group ...

  7. linux中的cal 查看日历、用户管理命令、useradd 添加新用户

    1.3.5 cal 查看日历 cal [选项] (功能描述:不加选项,显示本月日历) 选项 功能 具体某一年 显示这一年的日历 查看当前月的日历 查看2016年的日历 1.4 用户管理命令 1.4.1 ...

  8. Linux基础 权限与用户管理命令

    2019独角兽企业重金招聘Python工程师标准>>> 文件与目录权限 默认权限: 文件[0666-umask] 目录[0777-umask] 遮罩码:/etc/umask 文件 r ...

  9. linux用户与权限命令.,Linux基础 权限与用户管理命令

    文件与目录权限 默认权限: 文件[0666-umask] 目录[0777-umask] 遮罩码:/etc/umask 文件 r权限:cat等命令读 w权限:编辑|删除 x权限:执行 目录 r权限:ls ...

最新文章

  1. 如何搭建高可用Redis服务
  2. windows下scrapy安装问题,以及Twisted安装报错(error: Microsoft Visual C++ 14.0 is required.)完美解决办法...
  3. 高考计算机会考基础知识点,2017高考一定会考的46个知识点!
  4. 计算机组成原理综合题,2013计算机组成原理复习题.doc
  5. AI电子宠物Vector,会跑会动会聊天,一天内火遍美国科技圈
  6. flink其他可选api
  7. java 骗局_Java有陷阱,用时需谨慎——慎用入参做返回值
  8. Android源码分析之Builder模式
  9. Atitit 软件程序的定义 软件广义定义 程序代码,文档 ,数据 方法,规则, 狭义定义 软件=程序+数据+文档 软件(英文:Software)是一系列按照特定顺序组织的计算机数据和指
  10. 供应链三道防线(读书笔记)3(共4)
  11. java 公历 农历_Java 阴历阳历转换
  12. 清爽的VS开发字体 -- Consolas
  13. 怎么免费获取帆软9.0激活码,帆软8.0激活码,如何激活
  14. POJ1061青蛙的约会(拓展欧几里得)
  15. VMware vSphere理论
  16. 关键词搜图、截图小助手——有了它妈妈再也不用担心我数据集啦
  17. 图片如何添加水印文字?如何设置照片水印?
  18. cisco anyconnect 下载(windows、macos、iOS、Android、linux)
  19. Effective C++条款09:绝不在构造和析构过程中调用virtual函数
  20. android 7.0分享到qq,腾讯 QQ 安卓版 v7.7.0正式版发布!

热门文章

  1. 新版gsp计算机系统全套资料,新版gsp全套记录表格120个-20210627023415.pdf-原创力文档...
  2. john lim php,成都环球中心天堂洲际大饭店总经理Mr.John Lim:E-Con系统开启智慧服务新时代!...
  3. ARP9-Licensee
  4. 项目经理如何进行项目汇报才能让项目顺利进行,让领导一看就喜欢?
  5. 编程练习——求最小公倍数
  6. 计算机辅助曹瞒走华容(华容道)算法
  7. 记面试中问到的MySQL的SQL调优问题
  8. 【调剂】云南民族大学2023年硕士研究生招生调剂公告
  9. 推荐系统——召回模型
  10. 二手书交易系统用例图2.0