15-用户管理-seq,RANDOM,awk

Posted 人生玩家

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了15-用户管理-seq,RANDOM,awk相关的知识,希望对你有一定的参考价值。

[TOC]


思维导图

15-用户管理-seq,RANDOM,awk_用户管理

一、创建用户流程

  • 跟用户创建相关的文件:

/etc/login.defs

1、方法一: 0 ? 14:37:58 root@yyds,10.0.0.100:<sub> # grep -vE ^#|^$ /etc/login.defs
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
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512
方法二 0 ? 14:41:19 root@yyds,10.0.0.100:</sub> # grep -i ^[a-z] /etc/login.defs
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
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512


#参数讲解 (系统默认约定情况下创建,可以增加和修改,非固定)
#用户的邮件目录
MAIL_DIR /var/spool/mail
#密码最大天数
PASS_MAX_DAYS 99999
#密码最小天数 (0代表无线)
PASS_MIN_DAYS 0
#密码最小长度
PASS_MIN_LEN 5
#密码警告天数
PASS_WARN_AGE 7
#普通用户最小uid
UID_MIN 1000
#普通用户最大uid
UID_MAX 60000
#系统用户最小uid
SYS_UID_MIN 201
#系统用户最大uid
SYS_UID_MAX 999
#普通用户组最小gid
GID_MIN 1000
#普通用户组最大gid
GID_MAX 60000
#系统组最小gid
SYS_GID_MIN 201
#系统组最大gid
SYS_GID_MAX 999
#默认创建用户家目录
CREATE_HOME yes
#用户创建家目录默认权限
UMASK 077
#创建用户甩创建用户组,默认创建出该用户的同名组
USERGROUPS_ENAB yes
- 如果login.defs文件中的USERGROUPS_ENAB yes是no,该行配置才会生效
- 如果创建用户不创建同名组,默认会将该用户加入GID为100的系统组中(users) GROUP=100
#用户密码的加密方式 SHA512
ENCRYPT_METHOD SHA512


## 权限了解
r:读 4
w:写 2
x:执行 1
-:没有权限 0
目录创建默认权限:0777 - umask 0777-0022 = 0755
文件创建默认权限:0666 - umask 0666 -0022 = 0644

如果当前用户UID大于199,并且用户的用户名与用户组名相同,那么
if [$UID-gt 199] && ["/usr/bin/id -gn"="/user/bin/id -un"]:the
umask是002
umask 002
else 否则
umask是022
umask 022
fi

014:54:58 root@yyds,10.0.0.100:~ # cat /etc/default/useradd
# useradd defaults file
#如果创建用户不创建同名组,默认会将用户加入GID的系统组中(user)
GROUP=100
#指定用户默认创建家目录的位置
HOME=/home
#用户账户停权
INACTIVE=-1
#账户终止时间设置,不设置不终止
EXPIRE=
#用户默认创建登录shell
SHELL=/bin/bash
#该目录存放的是,用户环境变量初始配置文件
SKEL=/etc/skel
#创建用户时,创建该用户的邮箱文件
CREATE_MAIL_SPOOL=yes

#用户创建流程
1.执行useradd 命令 + 用户名
2.查看执行命令是否有选项
3.读取/etc/login.defs文件
4.读取/etc/default/useradd文件
5.如果没有-M则创建家目录
6.根据配置文件中的 SKEL=/etc/skel 将skel下面的环境变量文件拷贝到家目录下
7.用户信息记录到/etc/passwd文件中
8.用户密码信息记录到/etc/shadow文件中
9.用户组信息记录到/etc/group文件中
10.用户组密码信息记录到/etc/gshadow文件中

二、用户密码管理

passwd 给用户设置密码
015:42:05 root@yyds,10.0.0.100:<sub> # passwd moon
Changing password for user moon.
New password:
BAD PASSWORD: The password is a palindrome
Retype new password:
passwd: all authentication tokens updated successfully.

#免交互方式
stdin 标准输入
stdout 标准输出
atderr 错误输出
015:42:22 root@yyds,10.0.0.100:</sub> # echo heiheiyixiao|passwd --stdin moon
Changing password for user moon.
passwd: all authentication tokens updated successfully.

三、随机密码生成

tee 管道命令
-a append 追加
015:50:43 root@yyds,10.0.0.100:<sub> # echo $RANDOM |tee -a passwd.txt |passwd --stdin moon
Changing password for user moon.
passwd: all authentication tokens updated successfully.
015:52:19 root@yyds,10.0.0.100:</sub> # cat passwd.txt
27503

四、练习题

# 需求: 1.批量创建100个用户
2.然后给这100个用户随机密码
3.将100个用户的密码保存到文件中
例如:创建100用户 zls001-zls100
用户名:密码
cat /tmp/pass.txt
zls001:71297391
zls002:1892319283 z
ls003:182372873

25417:17:46 root@yyds,10.0.0.100:~ # seq -w 100|awk print "useradd zls"$1|tee -a zlspasswd.txt && awk print"echo $RANDOM "$3 zlspasswd.txt |bash

seq -w 10 | awk print "userdel -r zls"$1|bash

seq -w 10|awk print "useradd zls"$1|bash

以上是关于15-用户管理-seq,RANDOM,awk的主要内容,如果未能解决你的问题,请参考以下文章

批量创建linux用户

linux的seq命令

awk-需求案例

awk,seq,xarg实例使用

Linux学习笔记7_基本命令复习2(seq sed awk)

矩阵在mr的实现