用户管理2

Posted Y753

tags:

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

用户相关命令

## awk命令基础语法
awk:一般来说,取出想要的字符串(主要过滤列)
默认以空格为分隔符,在awk中双引号,代表不识别变量
$1-$N 都是取第几列
$0:取出文件中的所有内容
$NF:文件的最后一列内容

# 选项
-F:指定分隔符

# 使用awk来拼命令

## sed命令取行
sed -n Np

N是阿拉伯数字

## seq 序列命令

-w:补全位数,用O来补全seq -w 10 |awk print "yjt"$1
yjt01
yjt02
yjt03
yjt04
yjt05
yjt06
yjt07
yjt08
yjt09
yjt10

seq -w 10 |awk print "useradd yjt"$1|bash
(创建10个用户)


创建用户流程

跟用户创建相关的文件

/etc/login.defs

[root@Y ~]# grep -Ev ^#|^$ /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

[root@Y ~]# grep -i ^[a-z] /etc/login.defs
# 指定创建用户时,默认邮件文件位置
MAIL_DIR /var/spool/mail

# 创建用户默认密码最大使用天数
PASS_MAX_DAYS 99999

# 创建用户默认密码最小使用天数(0代表无限)
PASS_MIN_DAYS 0

# 密码最短位数(五位数)
PASS_MIN_LEN 5

# 密码过期警告(过期前七天)
PASS_WARN_AGE 7

# 普通用户,最小UID是1000(只是约定)
UID_MIN 1000

# 普通用户,最大UID是60000(只是约定)
UID_MAX 60000

# 系统用户,最小UID是201(只是约定)
SYS_UID_MIN 201

# 系统用户,最大UID是999(只是约定)
SYS_UID_MAX 999

# 普通用户,最小GID是1000(只是约定)
GID_MIN 1000

# 普通用户,最大GID是60000(只是约定)
GID_MAX 60000

# 系统用户,最小GID是201(只是约定)
SYS_GID_MIN 201

# 系统用户,最大GID是999(只是约定)
SYS_GID_MAX 999

# 默认创建用户的家目录(如果改成no,就不创建)
CREATE_HOME yes

# UMASK 077 指定用户创建家目录的默认权限(满权限是777,077的情况下就是700的权限)
UMASK 077

# 创建用户时,如果不用-g指定组,那么会默认创建出该用户的同名组
USERGROUPS_ENAB yes

# 用户密码的加密方式 SHA512
ENCRYPT_METHOD SHA512


## 权限了解
r:读 4
w:写 2
x:执行 1
-:没有权限 0

目录创建默认权限:0777 - umask
文件创建默认权限:0666 - umask

#例如:
0777 减去0022 等于0755

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

[root@Y ~]# cat /etc/default/useradd
# 如果login.defs文件中的USERGROUPS_ENAB yes是no,该行配置才会生效
# 如果创建用户不创建同名组,默认会将该用户加入GID为100的系统组中(users)
GROUP=100
# 指定用户默认创建家目录的位置(如果把/home改成/opt,那就家目录创建在/opt)
HOME=/home
# 用户账户停权 -1永远不过期
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:给用户设置密码

# 语法:
passwd[用户名]

注意:如果不加用户名,则修改当前登陆用户的密码,只有root用户能在passwd命令后加用户名

# 修改其他用户密码
[root@Y ~]# useradd yjt(先创建)
[root@Y ~]# passwd yjt (创密码或改密码)
Changing password for user yjt.(## 修改yjt用户的密码)
New password: (## 输入新密码)
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: (## 确认新密码)
passwd: all authentication tokens updated successfully.(## 所有认证令牌更新成功)

## 免交互方式
stdin:(标准输入)
stdout:(标准输出)
stderr:(错误输出)

[root@Y ~]# echo 456|passwd --stdin yjt (修改密码为456)
Changing password for user yjt.
passwd: all authentication tokens updated successfully.

随机密码生成

tee:管道命令(等于在管道符的输出到管道符的输入的过程中,可以沉淀下来数据呈现)
-a:append 追加

root@Y ~]# echo $RANDOM |tee -a /tmp/mima.txt |passwd --stdin yjt
Changing password for user yjt.
passwd: all authentication tokens updated successfully.
[root@Y ~]# cat /tmp/mima.txt
2963

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

MySQL用户管理

Linux 用户管理2

《Linux基础》04. 用户管理 · 用户组 · 相关文件 · 权限管理

如何对MongoDB 3.2.7进行用户权限管理配置

2、用户权限管理,数据库表设计

GitLab管理之 - Gitlab 用户管理