linux系统中的用户管理

news/2024/10/25 20:28:42/

linux系统中的用户管理

    • 1 用户及用户组存在的意义
    • 1.1用户存在的意义
    • 1.2用户组存在意义
    • 2.用户及用户组在系统中的存在方式
    • 3.用户切换
    • 3.1用户查看
    • 3.2用户切换
    • 4.用户涉及到的系统配置文件
    • 5.用户和用户组建立及删除
    • 6.用户和用户组的信息管理
    • 7.用户认证信息管理 (/etc/shadow)
    • 8.用户权力下放

1 用户及用户组存在的意义

1.1用户存在的意义

系统资源是有限的,如何合理分配系统资源?
在这个问题解决时必须要有连个资源配合
1.身份 account
2.授权 author
3.认证 auth

3A机制,3A机制组成系统中最底层的安全架构

1.2用户组存在意义

用户组是一个逻辑容器
对用户进行归类和统一授权

2.用户及用户组在系统中的存在方式

电脑对数字敏感 id
人类对字符串敏感 名称

id <-------> 名称必须要记录到文件当中用户才能存在
用户就是/etc/passwd文件中的一行字符

用户组存在的方式就是/etc/group 文件中的一行字符

3.用户切换

3.1用户查看

whomai查看当前用户

[westos@lzy Desktop]$ whoami
westos

id查看用户id信息

id查看用户id信息
-u查看用户的用户id
-g查看用户主组id
-G查看用户所有的组的id
-n显示名称
[westos@lzy Desktop]$ id 
uid=1000(westos) gid=1000(westos) groups=1000(westos),10(wheel)
[westos@lzy Desktop]$ id -g
1000[westos@lzy Desktop]$ id -gn    显示用户的组名字
westos

3.2用户切换

su - username

- #切换用户环境
username
1如果root 切换到commonuser 不需要后者密码
2commonuser 切换到 root 需要密码
3commonuser切换到commonuser 需要密码

注意
:在做用户切换时当使用完毕用户身份及时退出
不要在一个shell中反复执行su命令
#在一个shell中反复执行su命令会导致环境错乱

在这里插入图片描述

4.用户涉及到的系统配置文件

/etc/passwd 用户身份信息文件

westos:x:1000:1000:westos:/home/westos:/bin/bash
1     :2: 3  :4   :5     : 6          : 7
#1.用户名称
#2.用户密码:
#3.用户id: 2*16 0-65535  0:root 1-999:systemuser 1000-65535:commonuser
#4.用户主组id
#5用户说明:
#6:用户家目录:
#7:用户默认shell 			

/etc/group 组身份信息文件

westos :  x :  1000:组名称:组密码:组id:组的附加成员			

添加附加组

vim /etc/group   westos:x:1000:lee

[root@lzy ~]# id lee uid=1001(lee) gid=8889(lee) groups=8889(lee),1000(westos)

/etc/skel/.*##用户环境配置文件模板
当前用户配置文件有问题:删掉配置文件,复制/etc/skel/.*

/etc/shadow 用户认证信息文件

/home/username 用户家目录

5.用户和用户组建立及删除

对应/etc/passwd 中的信息
/etc/login.defs 记录用户建立的默认规则
useradd username##用户建立

useradd 参数 用户含义
-u id usernameuid 2**16=0-65535;0 表示超级用户;1-200 系统预留id;201-999系统用户;1000-60000用户级用户;/etc/login.defs 记录用户建立的默认规则
-g id username主组id
-G id username附加组id
-d dir username指定用户家目录
-c word username指定用户说明
-s shell username指定用shell
-M不建立家目录

建立如下用户,指定相应信息,对应/etc/passwd文件
在这里插入图片描述useradd -M lzy建立lzy用户不建立家目录
在这里插入图片描述/sbin/nologin
在这里插入图片描述useradd -G westos,root mp 建立用户时,多个附加组,用逗号隔开
在这里插入图片描述

userdel -r username##用户删除-r 删除用户的系统配置文件 不用-r,需要手动删掉用户的家目录

[root@lzy ~]# id lee
uid=1001(lee) gid=8889(lee) groups=8889(lee)
[root@lzy ~]# userdel -r lee  删除用户
[root@lzy ~]# id lee
id: ‘lee’: no such user
[root@lzy ~]# 

groupadd groupname 组建立
-g id groupname 指定组名称
groupdel groupname组删除

6.用户和用户组的信息管理

usermod

-l		#更改用户名称
-u		#更改用户id
-g		#更改主组id
-G		#更改用户附加组身份
-aG		#添加用户附加组身份
-c		#更改用户说明
-d		#更改家目录指向
-md		#更改家目录指向同时更改家目录名称
-s		#更改默认shell
-L		#冻结账号
-U		#解锁

usermod -c "" username" 清空说明
G andaG usermod -G "" username删除所有附加组
在这里插入图片描述[root@lzy ~]# watch -n 1 "tail -n 3 /etc/passwd ;ls -l /home"
watch -n 1 一秒执行一次
watch command 默认两秒一次
date;ls 分号。两条命令一起执行
-d and -md
在这里插入图片描述
在这里插入图片描述

groupmod -g更改用户组id

7.用户认证信息管理 (/etc/shadow)

vim /etc/shadow

lee: :18547:0:99999:7: : :
1   2    3  4    5  6 7 8  9

[root@lzy ~]# watch -n 1 "tail -n 3 /etc/shadow ;passwd -S lee" 每秒监控/etc/shadow 文件的后三行,及lee用户的的密码状态

1.用户名称
passwd -S lee 查看密码状态
在这里插入图片描述

2.用户加密字符


/etc/shadow 密码认证
加密字符:哈西算法
/dev/random 加密设备 加密字符串从里面取
ll /dev/random 字符设备


更改密码
passwd lee只有root可以执行
在这里插入图片描述

echo 123 | passwd --stdin lee 非交互式改密码,可在脚本中自动运行

passwd普通用户改密码
在这里插入图片描述

冻结认证
rh7中passwd -l lee 的冻结程度更强,!!,usermod !,不能互相直接解锁
rh8中两个可以互相直接解锁

passwd -l lee		
usermod -L lee

在这里插入图片描述

解锁账号认证 解锁了之后,账号可以继续使用

passwd -u lee		
usermod	-U lee

密码删除passwd -d lee
在这里插入图片描述

3密码使用天数
*从1970-1-1算其到今天的时间
修改默认使用时间为0账号必须改密码才能登陆系统

passwd -e 	lee		
chage -d  0 	lee	   
chage -d 数字  用户

在这里插入图片描述

4密码最短有效期

lee用户在1天内不能改密码

passwd -n 1 lee			
chage -m 1  lee		

5.密码最长有效期
40天内lee用户必须更新密码否则会被冻结

passwd -x 40 lee		
chage -M 30  lee

6.密码过期警告
账号过期前警告时间

passwd -w 2 lee			
chage -W 1 lee

7.认证非活跃天数
账号认证最大时间超过后还能用多久

passwd -i 2 lee			
chage -I 1  lee

8.账号认证到期时间
到2020-11-11这天账号会被冻结

chage -E "2020-11-11"  lee		

9.未启用功能

8.用户权力下放

在系统中普通用户时无法执行系统管理命令的 如果需要普通用户执行系统管理动作那么需要 root用户来进行授权

普通用户授权方式 “sudo”
作用:
可以使普通用户使用指定的用户身份呢运行命令

授权方法:

visudo     		
此命令作用是编辑/etc/sudoers并提供语法检测

在文件的100行左右 代码规范性

username hostname=(newusername) [NOPASSWD:] /command, /command1

在这里插入图片描述westos用户 在lzy.wesots.com 使用超户免执行useradd 和 userdel
westos lzy.wesots.com = (root) NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel
在这里插入图片描述

在这里插入图片描述

test

在系统中完成以下用户操作
1. 建立用户组 shengchan,caiwu,jishu 并满足以下要求
#shengchan组id为8000
#caiwu组id 为8001
#jishu组id为8002
2.建立westosuser,linux,lee,westosadmin等用户完成以下要求
# westos用户的附加组为shengchan和jishu
#lee的主组为caiwu,附加组为jishu,lee的uid和gid一致
#linux为系统账号不能直接被操作者使用
#westosadmin用户不属于以上三个部门,但是可以在系统中自由的管理用户  (sudo) , 
vim /etc/passwd
uid gid 改为0
3.
#以上用户密码均为westos,并要求用户首次登陆时强制修改密码
#设定以上用户密码必须在30天内进行修改,并在过期2天发出警告
####creategroups#######                                                    grouadd shengchan -g 8000grouadd caiwu -g 8001grouadd jishu -g 8002###create user####useradd -G shengchan,jishu westosuseruseradd -u 8001 -g caiwu -G jishu leeuseradd -M -s /sbin/nologin linuxecho "westosadmin:x:0:0::/home/westosadmin:/bin/bash" >> /etc/passwdmkdir /home/westosadmincp /etc/skel/.* /home/westosadminecho westos | passwd --stdin westosuserecho westos | passwd --stdin leeecho westos | passwd --stdin linuxecho westos | passwd --stdin westosadminpasswd -e westosuserpasswd westosuser -x 30 -w 2passwd -e leepasswd lee -x 30 -w 2passwd -e linuxpasswd linux -x 30 -w 2passwd -e westosadminpasswd westosadmin -x 30 -w 2

对westosadmin用户进行sudo授权


http://www.ppmy.cn/news/319157.html

相关文章

Docker进阶系列-Docker Compose/Swarm/Stack/Secret/Config,这一篇就够了!

Docker进阶 Docker Compose 简介 Docker Compose 是 Docker 官方编排(Orchestration)项目之一&#xff0c;负责快速在集群中部署分布式应用。该项目由 Python 编写&#xff0c;实际上调用了 Docker 提供的 API 来实现。 Dockerfile 可以让用户管理一个单独的应用容器;而 Co…

python搭建网站步骤_python 建站教程

主端&#xff1a;安装nginx uwsgi django pymysql mysql 安装mysql 到http://repo.mysql.com/里面找 mysql57-community-release-el7-8.noarch.rpm或者直接wget http://repo.mysql.com/mysql57-community-release-el7-8.noarch.rpm yum -y install mysql57-community-relea…

如何判断远端主机UDP端口是否开启

一、服务端TCP监听端口 如果是tcp作为监听端口&#xff0c;很多人里面可以想到相应的方法&#xff0c;由于tcp三次握手协议&#xff0c;我们可以直接写一个客户端程序即可判断tcp端口是否监听。我们汇总几种方法&#xff1a; 1.tcp socket客户端编程 直接调用connect接口&…

Docker Stack 学习笔记

一、简介 Docker Stack 是为了解决大规模场景下的多服务部署和管理&#xff0c;提供了期望状态&#xff0c;滚动升级&#xff0c;简单易用&#xff0c;扩缩容&#xff0c;健康检查等特性&#xff0c;并且都封装在一个声明式模型当中。 Docker Stack 部署应用的生命周期&#…

SpringCloud(七)

Hystrix 什么是Hystrix Hystrix是一个用于处理分布式系统延迟和容错的开源库&#xff0c;在分布式系统中&#xff0c;许多依赖不可避免的会调用失败&#xff0c;比如超时&#xff0c;异常等&#xff0c;Hystrix能保证在一个依赖出现问题的情况下&#xff0c;不会导致整体服务失…

Django+xadmin打造在线教育平台(七)

目录 在线教育平台&#xff08;一&#xff09; 在线教育平台&#xff08;二&#xff09; 在线教育平台&#xff08;三&#xff09; 在线教育平台&#xff08;四&#xff09; 在线教育平台&#xff08;五&#xff09; 在线教育平台&#xff08;六&#xff09; 在…

新ingress-kong安装(ingress-kong konga postgres)

Kong是一款基于OpenResty&#xff08;Nginx Lua模块&#xff09;编写的高可用、易扩展的&#xff0c;由Mashape公司开源的API Gateway项目。Kong是基于NGINX和Apache Cassandra或PostgreSQL构建的 在k8s集群内部创建kong网关 kong-ingress.yaml apiVersion: v1 kind: Names…

Linux第一本书 第四章 Linux系统中的用户管理

一、用户及用户组存在的意义 用户存在的意义 系统中每个文件归一个特定的用户所有&#xff0c;对文件和目录的访问受到用户的限制。如果没有用户系统的文件和目录的访问将会杂乱无章&#xff0c;随着这些杂乱无章的访问&#xff0c;系统的安全将会受到很大威胁。所以设置用户…