用户管理2

厌伴老儒烹瓠叶,强随举子踏槐花。这篇文章主要讲述用户管理2相关的知识,希望能为你提供帮助。
【用户管理2】[TOC]
用户管理用户相关命令
课前回顾

## 查看用户
id
-u: 查看当前登录用户的uid
-g: 查看当前登录用户的gid
-n: 配合-u或者-g一起使用,配合-u:查看当前登录用户uid对应的名字,配合-g:查看当前登录gid对应的名字


if [ $UID-gt199 ] & & [ "`/usr/bin/id -gn`"="`/usr/bin/id -un`" ]; then
umask 002
else
umask 022
fi


who
#当前登录用户 # 终端#登录时间#从哪个ip登录
rootpts/02022-04-07 08:00 (10.0.0.1)

# 查看当前登录的用户
whoami



# w
0 ? 08:42:11 root@miaosen,10.0.0.100:~ # w
#当前系统时间#服务器总共运行时间#登录用户数#系统的平均负载
08:43:03up 43 min,2 users,load average: 0.00, 0.01, 0.05
USERTTYFROMLOGIN@IDLEJCPUPCPU WHAT
roottty107:5943:110.02s0.02s -bash
rootpts/010.0.0.108:007.00s0.19s0.00s w


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

# 选项
-F:指定分隔符

# 使用awk来拼命令

## sed命令去行
sed -n Np
N是阿拉伯数字

## seq 序列命令
-w:补全位数,用0来补

创建用户流程跟用户创建相关的文件:
/etc/login.defs
##
10:27:18 root@miaosen,10.0.0.100:< sub> # grep -Ev ^#|^$ /etc/login.defs
MAIL_DIR/var/spool/mail
PASS_MAX_DAYS99999
PASS_MIN_DAYS0
PASS_MIN_LEN5
PASS_WARN_AGE7
UID_MIN1000
UID_MAX60000
SYS_UID_MIN201
SYS_UID_MAX999
GID_MIN1000
GID_MAX60000
SYS_GID_MIN201
SYS_GID_MAX999
CREATE_HOME yes
UMASK077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512

#
10:27:58 root@miaosen,10.0.0.100:< /sub> # grep -i ^[a-z] /etc/login.defs
MAIL_DIR/var/spool/mail
PASS_MAX_DAYS99999
PASS_MIN_DAYS0
PASS_MIN_LEN5
PASS_WARN_AGE7
UID_MIN1000
UID_MAX60000
SYS_UID_MIN201
SYS_UID_MAX999
GID_MIN1000
GID_MAX60000
SYS_GID_MIN201
SYS_GID_MAX999
CREATE_HOME yes
UMASK077
USERGROUPS_ENAB yes
ENCRYPT_METHOD SHA512

# 指定创建用户时,默认邮件文件位置
MAIL_DIR/var/spool/mail
# 创建用户默认密码最大使用天数
PASS_MAX_DAYS99999
# 创建用户默认密码最小使用天数(0代表无限)
PASS_MIN_DAYS0
# 密码最短位数
PASS_MIN_LEN5
# 密码过期警告
PASS_WARN_AGE7
# 普通用户,最小UID是1000
UID_MIN1000
# 普通用户,最大UID是60000
UID_MAX6000060000
# 系统用户,最小UID是201
SYS_UID_MIN201
# 系统用户,最大UID是999
SYS_UID_MAX999
# 普通用户,最小GID是1000
GID_MIN1000
# 普通用户,最大GID是60000
GID_MAX60000
# 系统用户,最小GID是201
SYS_GID_MIN201
# 系统用户,最大GID是999
SYS_GID_MAX999
# 默认创建用户的家目录
CREATE_HOMEyes
# UMASK 077指定用户创建家目录的默认权限
UMASK077
# 创建用户时,如果不用-g指定组,那么会默认创建出该用户的同名组
USERGROUPS_ENAB yes
# 用户密码的加密方式 SHA512
ENCRYPT_METHOD SHA512


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


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


0666
0022
----
0644

如果 当前用户UID大于199 并且 用户的用户名和用户的组名相同那么
if[ $UID-gt199 ] & & [ "`/usr/bin/id -gn`"="`/usr/bin/id -un`" ]; then
umask是002
umask 002
否则
else
umask是022
umask 022
fi
[root@localhost ~]# cat /etc/default/useradd
# 如果login.defs文件中的USERGROUPS_ENAB yes是no,该行配置才会生效
# 如果创建用户不创建同名组,默认会将该用户加入GID为100的系统组中(users)
GROUP=100

# 指定用户默认创建家目录的位置
HOME=/home
# 用户账户停权 -1永远不过期
INACTIVE=-1
# 账号终止时间的设置,不设置不终止
EXPIRE=
# 用户默认创建登录
shellSHELL=/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命令后加用户名
# 修改其他用户密码
10:41:19 root@miaosen,10.0.0.100:< sub> # passwd sj
## 修改sj用户的密码
Changing password for user sj.
## 新密码
New password:
BAD PASSWORD: The password is a palindrome
## 重复新密码
Retype new password:
## 所有认证令牌更新成功
passwd: all authentication tokens updated successfully.
## 免交互方式
stdin:标准输入
stdout:标准输出
stderr:错误输出

10:46:24 root@miaosen,10.0.0.100:< /sub> # echo 250@qq.com | passwd --stdin sj6
Changing password for user sj6.
passwd: all authentication tokens updated successfully.

随机密码生成
tee:管道命令
-a:append 追加


    推荐阅读