linux基础day10
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux基础day10相关的知识,希望对你有一定的参考价值。
linux用户管理
什么是用户
用户指的是能够正常登录Linux或windows系统
那Linux与windows系统的用户有什么区别?
本质都是登录系统的,只不过Linux支持多用户同时登录,windows默认不支持,但是修改 组策略 的情
况下也是可以多用户登录的
用户的作用
1)登录用户
2)用户用来运行程序
3)每一个目录或者文件,都有指定的用户权限
4)程序的运行用户要与程序调用的用户目录权限相同
/etc/passwd
# 存放用户信息的文件
yl:x:1001:1001:666:/home/yl:/bin/bash
第一列 用户名
第二列 密码的占位符
第三列 用户的id UID root 0
第四列 用户组的id gid root 0
第五列 对用户的描述(没有描述就是空着的)
第六列 用户的家目录
第七列 用户登陆的bash
## 创建用户并添加描述
useradd -c 描述 用户名
## 修改用户描述
usermod -c 描述 用户名
/etc/shadow
# 存放用户密码的文件
root:$6$gaOrKqcOSdoCwqmP$kgUXmNfDhnutBo2dhERFpdrob/W6J9Mp2NEITDf4omW9H0I6stMSIKbzLC3dEAYeiUh4mA.yAAgAyntSq9EJU.::0:99999:7:::
第一列 用户名
第二列 加密后的密码,!!/*代表没有密码
第三列 上一次更改密码的时间,是从1970年开始算
第四列 密码最少使用天数 0代表无限
第五列 密码最长使用天数 99999代表无限
第六列 密码到期前7天,提示需要修改密码
第七列 密码过期后n天强制更改密码
第八列 账户失效时间,也是从1970年开始算
第九列 为空
用户UID | 系统中约定的含义 |
---|---|
超级管理员(拥有最高权限) | |
1-200 | 系统用户,由系统分配给系统进程使用 |
201-999 | 系统用户,用来运行服务账户,不需要登陆系统(动态分配) |
1000+ | 常规普通用户 |
chage
-d //设置最近一次更改密码时间, 0下次登陆系统强制修改密码
-m //设置用户两次改变密码之间使用"最小天数"
-M //设置用户两次改变密码之间使用"最大天数"
-W //设置密码更改警告时间 将过期警告天数设为“警告天数”
-I //设置密码过期天数后, 密码为失效状态
-E //设置用户过期时间, 账户失效后无法登陆
-l //显示用户信息
//修改时间为2014年08月31日,和图中时间匹配,方便后续验证
[root@zls ~]# date -s 20140831
Sun Aug 31 00:00:00 CST 2014
[root@zls ~]# date
Sun Aug 31 00:00:01 CST 2014
[root@zls ~]# useradd zls1
[root@zls ~]# echo "123" |passwd --stdin zls1
[root@zls ~]# tail -1 /etc/shadow
zls1:!!:16312:0:99999:7:::
//设置最近一次修改密码时间
[root@zls ~]# chage -d "2014-09-01" zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:0:99999:7:::
//设置最短使用密码时间
[root@zls ~]# chage -m 2 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:99999:7:::
//设置密码最长使用时间
[root@zls ~]# chage -M 15 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:7:::
//设置密码警告时间
[root@zls ~]# chage -W 6 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:::
[root@zls ~]# chage -W 7 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:7:::
//设置密码过期时间
[root@zls ~]# chage -I 5 zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:5::
//设置用户过期时间
[root@zls ~]# chage -E "20115-08-31" zls1
[root@zls ~]# tail -n1 /etc/shadow
zls1:!!:16314:2:15:6:5:6627567:
[root@zls ~]# chage -l zls1
Last password change : Sep 01, 2014 //最近一次更改密码时间
Password expires : Sep 16, 2014 //密码过期时间
Password inactive : Sep 21, 2014 //密码失效时间
Account expires : Aug 31, 2015 //用户失效时间
Minimum number of days between password change : 2 //密码最短使用时间
Maximum number of days between password change : 15 //密码最长使用时间
Number of days of warning before password expires : 7 //密码过期前警告天数
//如何验证,只调整时间为如下进行验证:
1.验证普通用户是否能修改密码, 不需要调整时间。
2.普通用户登陆系统后, 会提示警告密码还剩多少天过期
[root@zls ~]# date -s "2014-09-12"
3.普通用户登陆系统后, 强制要求修改密码
[root@zls ~]# date -s "2014-09-18"
4.普通用户登陆系统后, 提示账户已过期
[root@zls ~]# date -s "2014-09-23"
用户管理
-
增
# 添加用户 useradd/adduser # 语法 useradd 选项 参数 用户名 # 选项 -u # 指定用户的uid(必须是没用过的) useradd -u 1008611 lll lll:x:1008611:1003::/home/lll:/bin/bash -g # 指定用户的组 useradd -g ljy kkk kkk:x:1003:1000::/home/kkk:/bin/bash -G # 指定用户的附加组,用逗号隔开添加多个组(查看是否有多个组就id这个用户) useradd -G ljy,yl jjj uid=1004(jjj) gid=1004(jjj) groups=1004(jjj),1000(ljy),1001(yl) -d # 指定用户的家目录 useradd -d /tmp/omg hhh hhh:x:1005:1005::/tmp/omg:/bin/bash -c # 创建用户并添加注释 useradd -c 注释 用户名 yl:x:1001:1001:666:/home/yl:/bin/bash -M # 不创建家目录(配合创建运行系统服务的用户) useradd -M ggg ggg:x:1006:1006::/home/ggg:/bin/bash(虽然显示在home底下,但在home下没有这个用户) -s # 指定用户默认shell useradd -s /sbin/nologin fff fff:x:1007:1007::/home/fff:/sbin/nologin # 一般用不到 -r 创建系统账户,没有家目录 -a 附加组,都留下,配合-G,追加
-
删
# 删除用户 userdel -r 删除用户的同时删除用户的家目录 # 用法 userdel -r 用户名
-
改
# 修改用户(必须是存在的用户) usermod # 选项 -u # 修改用户的uid usermod -u 1080 fff fff:x:1080:1007::/home/fff:/sbin/nologin -g # 修改gid(gid组必须存在) usermod -g 1003 fff fff:x:1080:1003::/home/fff:/sbin/nologin -G # 修改附加组(组必须存在) usermod -G hhh,ggg fff [root@localhost ~]# id fff uid=1080(fff) gid=1003(lll) groups=1003(lll),1005(hhh),1006(ggg) -c # 修改注释信息 usermod -c niubi fff fff:x:1080:1003:niubi:/home/fff:/sbin/nologin -s # 修改用户的登录shell usermod -s /bin/bash fff fff:x:1080:1003:niubi:/home/fff:/bin/bash -m # 迁移家目录(要配合-d) usermod -d /home/gmo -m fff fff:x:1080:1003:niubi:/home/gmo:/bin/bash -d # 修改家目录 usermod -d /opt/mog fff fff:x:1080:1003:niubi:/opt/mog:/bin/bash -l # 修改用户的登录名 usermod -l ddd fff ddd:x:1080:1003:niubi:/home/gmo:/bin/bash # 忘了他 -L 锁定用户 -U 解锁用户 ## 创建用户会默认创建和用户同名的组
-
查
# 查找 1) id [root@localhost ~]# id jjj uid=1004(jjj) gid=1004(jjj) groups=1004(jjj),1000(ljy),1001(yl) 2) cat /etc/passwd
拓展
finger(用于查找并显示用户信息)
[root@localhost ~]# finger ddd
Login: ddd Name: niubi
Directory: /home/gmo Shell: /bin/bash
Never logged in.
No mail.
No Plan.
chfn (英文全称是“change finger”,即用来改变finger命令显示的信息。)
[root@localhost ~]# chfn ddd
Changing finger information for ddd.
Name [niubi]: niubi
Office []: heiheihei
Office Phone []: 110
Home Phone []: 120
Finger information changed.
[root@localhost ~]# finger ddd
Login: ddd Name: niubi
Directory: /home/gmo Shell: /bin/bash
Office: heiheihei, 110 Home Phone: 120
Never logged in.
No mail.
No Plan.
who(识别当前登录的用户)
[root@localhost ~]# who
root tty1 2023-03-20 16:34
root pts/0 2023-03-20 19:49 (10.0.0.1)
linux基础day11
用户管理拓展
用户创建流程
# 过滤用户登录配置文件不包含以#开头及空行的内容
[root@localhost ~]# cat /etc/login.defs |grep -vE ^#|^$
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
/etc/login.defs文件讲解
# 过滤用户登录配置文件包含以大写字母开头的内容
[root@localhost ~]# grep ^[A-Z] /etc/login.defs
# 创建用户的时候会创建用户相关邮件所在的路径
MAIL_DIR /var/spool/mail
# 密码最长使用天数
PASS_MAX_DAYS 99999
# 密码最少使用天数
PASS_MIN_DAYS 0
# 密码最少长度
PASS_MIN_LEN 5
# 密码到期前7天会提醒
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
# 创建家目录
CREATE_HOME yes
# umask
UMASK 077
# 创建用户的时候,同时创建该用户的同名用户组
USERGROUPS_ENAB yes
# 密码加密格式 SHA512
ENCRYPT_METHOD SHA512
/etc/default/useradd
## USERGROUPS_ENAB no的情况下才会读取以下配置文件
# useradd defaults file
# 组的GID 100
GROUP=100
# 家目录的位置
HOME=/home
# 账号过期后都不会停止使用 -1=不开启
INACTIVE=-1
# 账号不过期
EXPIRE=
# 创建用户的默认shell
SHELL=/bin/bash
# 普通用户的环境变量存储位置
SKEL=/etc/skel
# 创建用户时,是否创建邮件文件
CREATE_MAIL_SPOOL=yes
用户密码管理
passwd
# 给当前登录用户设置密码
passwd
# 给普通用户设置密码
passwd user(用户名)
# root用户设置密码可以无视密码长度
# 普通用户设置密码必须遵守8位数
# 交互
类似挤牙膏,动一下挤一下
# 免交互
可以免除交互,不需要一个个点
# 安装expect(自动化交互套件)
yum install -y expect
# 生成密码
mkpasswd -l 10 -d 3 -c 4 -C 2 -s 1
-l 密码长度
-d 密码数字个数
-c 小写英文个数
-C 大写英文个数
-s 特殊符号
组的基本管理
# 组信息
/etc/group
ggg:x:1006:fff
第一列 用户名
第二列 密码占位符
第三列 组的gid
第四列 附加组,基本成员不显示
# 组密码信息
/etc/gshadow
ggg:!::fff
第一列 组名
第二列 组密码 !为空
第三列 组管理员
第四列 仅显示附加组成员,不显示基本成员
group管理
增
# 添加组
groupadd
# 语法
groupadd 选项 参数
# 选项
-g 指定gid
groupadd -g 555 qqq
qqq:x:555:
-r 创建系统组
# 创建系统组,gid从201-999
[root@localhost ~]# groupadd -r sys_group
[root@localhost ~]# tail -1 /etc/group
sys_group:x:996:
改
# 修改组的信息
groupmod
# 语法
groupmod 选项 参数
# 选项
-n 修改组名
groupmod -n lollol lol
-g 修改原有组的gid
groupmod -g 777 lol
# 参数
组名:指定要修改的工作的组名。
删
# 删除组,可以删除没有用户作为主组的组,如果只是附加组,删除时不会提示
groupdel
# 语法
groupdel 参数
# 参数
组:要删除的工作组名。
查
cat /etc/group
使用 gpasswd
设置组密码[了解即可]
[root@zls ~]# groupadd devops
[root@zls ~]# gpasswd devops
Changing the password for group devops
New Password:
Re-enter new password:
使用 newgrp
命令切换基本组身份[了解即可]
//检查账户信息
[root@docker ~]# useradd zls
[root@docker ~]# id zls
uid=1069(zls) gid=5005(zls) groups=5005(zls)
//切换普通用户
[root@docker ~]# su - zls
//创建新文件,并验证权限
[zls@docker ~]$ touch file_roots
[zls@docker ~]$ ll
-rw-rw-r-- 1 zls zls 0 Jun 13 10:06 file_roots
//切换组信息
[zls@docker ~]$ newgrp devops
Password:
//建立文件,检查权限
[zls@docker ~]$ touch file_test
[zls@docker ~]$ ll
total 0
-rw-rw-r-- 1 zls zls 0 Jun 13 10:06 file_roots
-rw-r--r-- 1 zls devops 0 Jun 13 10:08 file_test
修改命令提示符
vim /etc/motd
/**
⠀⠀⠀⠀⠀⠀⠀⠀⠀⠀⢀⣠⣤⣴⣶⣶⣶⣶⣶⠶⣶⣤⣤⣀⠀⠀⠀⠀
⠀⠀⠀⠀⠀⠀⠀⢀⣤⣾⣿⣿⣿⠁⠀⢀⠈⢿⢀⣀⠀⠹⣿⣿⣿⣦⣄⠀⠀
⠀⠀⠀⠀⠀⠀⣴⣿⣿⣿⣿⣿⠿⠀⠀⣟⡇⢘⣾⣽⠀⠀⡏⠉⠙⢛⣿⣷⡖⠀
⠀⠀⠀⠀⠀⣾⣿⣿⡿⠿⠷⠶⠤⠙⠒⠀⠒⢻⣿⣿⡷⠋⠀⠴⠞⠋⠁⢙⣿⣄
⠀⠀⠀⠀⢸⣿⣿⣯⣤⣤⣤⣤⣤⡄⠀⠀⠀⠀⠉⢹⡄⠀⠀⠀⠛⠛⠋⠉⠹⡇
⠀⠀⠀⠀⢸⣿⣿⠀⠀⠀⣀⣠⣤⣤⣤⣤⣤⣤⣤⣼⣇⣀⣀⣀⣛⣛⣒⣲⢾⡷
⢀⠤⠒⠒⢼⣿⣿⠶⠞⢻⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⣿⡿⠁⠀⣼⠃
⢮⠀⠀⠀⠀⣿⣿⣆⠀⠀⠻⣿⡿⠛⠉⠉⠁⠀⠉⠉⠛⠿⣿⣿⠟⠁⠀⣼⠃⠀
⠈⠓⠶⣶⣾⣿⣿⣿⣧⡀⠀⠈⠒⢤⣀⣀⡀⠀⠀⣀⣀⡠⠚⠁⠀⢀⡼⠃⠀
⠀⠀⠀⠈⢿⣿⣿⣿⣿⣿⣷⣤⣤⣤⣤⣭⣭⣭⣭⣭⣥⣤⣤⣤⣴⣟⠁
*/
# 保存退出
:wq
# 资源网址
https://www.bootschool.net/ascii-art/cartoons?pageNO=2
以上是关于linux基础day10的主要内容,如果未能解决你的问题,请参考以下文章