CentOS8基础篇5:用户账号与用户组的创建
一、用户与用户组概念
Linux是一个多用户、多任务的服务器操作系统,多用户多任务指可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。
Linux用户是根据角色定义的,具体分为三种角色:
超级用户:拥有对系统的最高管理权限,默认是root用户。
普通用户:只能对自己目录下的文件进行访问和修改,具有登录系统的权限,例如www用户、ftp用户等。
虚拟用户:也叫“伪”用户,这类用户最大的特点是不能登录系统,它们的存在主要是方便系统管理,满足相应的系统进程对文件属主的要求。
用户和用户组的对应关系有:一对一、一对多、多对一和多对多。
Linux系统中每一个用户都至少属于一个用户组,管理员可以通过对用户组的管理来设置用户对系统的访问权限,从而在一定程度上保证了对系统访问的安全性。
在使用useradd命令创建用户的时候,系统除创建该用户外,默认情况下还会创建一个同名的用户组,作为该用户的用户组,同时还会在/home目录下创建同名的目录作为该用户的主目录。如果一个用户属于多个组,那么记录在/etc/passwd文件中的组称为该用户的主组,其他的组称为附属组。
主要组(主组):每个用户有且只有一个主要组。
附属组(补充组):用户可以是零个或多个附属组成员。一般用于帮助确保用户具有对系统中文件 及其他资源的访问权限。
二、与用户管理相关的系统文件
1.用户信息配置文件/etc/passwd
在Linux系统中,用户信息被存放在系统的/etc/passwd文件中,系统的每一个合法用户对应于该文件中的一行记录。这行记录定义了该用户的属性。由于所有的用户对passwd文件均有读取的权限,因此密码信息并未保存在该文件中,而是保存在了/etc/shadow配置文件中。
在passwd配置文件中,每行均由7个字段构成,各个字段之间用“:”分隔,每个字段都代表该用户某方面的信息。
在passwd配置文件中,从左到右各个字段的含义如下:
用户名:用户登录系统时使用的用户名。
口令:存放加密的口令,被/etc/shadow文件保护。
用户标识号(UID):系统内部用它来标识用户,每个用户的UID都是唯一的。
用户组标识号(GID):系统内部用它来标识用户所属的组,这里的GID是主组GID。
注释性描述:为了方便管理和记忆该用户而添加的信息。
用户主目录:也称家目录,用户登录系统后所进入的目录。
命令解释器:指示该用户使用的Shell,CentOS Linux 8默认的是bash。如果指定Shell为/sbin/nologin,则代表用户无法登录系统。
2.用户密码配置文件/etc/shadow
为了加强系统安全性,Linux操作系统提供了专门的密码管理文件。
该文件对一般用户不可读,只有root用户才能够读取。
在/etc/shadow文件中,一行对应一个用户的密码信息,每行均由9个字段构成,各个字段之间用“:”分隔。
在shadow配置文件中,从左到右各个字段的含义如下:
用户名:用户账户名。
密码:用户的加密密码。
最后一次修改的时间:从1970年1月1日起,到用户最后一次更改密码的天数。
最小时间间隔:从1970年1月1日起,到用户可以更改密码的天数,(0表示随时可以变更)。
最大时间间隔:从1970年1月1日起,到必须更改密码的天数,否则密码将过期,(99999表示永远不过期)。
警告时间:在密码过期之前多少天提醒用户更新,默认值是7天。
不活动时间:在用户密码过期之后到禁用账户的天数。
失效时间:从1970年1月1日起,到账户被禁用的天数。
标志:保留位。
3.用户组配置文件/etc/group
将用户进行分组是Linux系统对用户进行管理及控制访问权限的一种手段。一个组中可以有多个用户,一个用户也可以属于多个组。系统中所有的组信息存放于/etc/group文件,其中一行对应一个用户组的信息,每行均由4个字段构成,各个字段之间用“:”分隔。
/etc/group文件中各字段的含义从左到右分别是:
组名:组的名称。
组口令:用户组的口令,用x表示口令是被/etc/gshadow文件保护的。
组标识号(GID):系统内部用它来标识用户组,每个用户组的GID都是唯一的。
组成员:该组的成员。
4.用户组密码配置文件/etc/gshadow
该文件用于定义用户组口令、组管理员等信息,该文件只有root用户可读。
/etc/gshadow文件中各字段的含义从左到右分别是:
组名:组的名称。
组口令:用户组的口令,保存已加密的口令。
组的管理员帐号:组的管理员帐号,管理员有权对该组添加、删除帐号。
组成员:该组的成员,多个用户用“,”分开。
三、用户管理
1.用useradd命令创建用户
创建或添加新用户要用useradd命令来实现。
命令格式: useradd [选项] 用户名
选项 | 功能说明 |
-d | 指定用户主目录 |
-g | 指定用户组 |
-m | 若主目录不存在,则创建 |
-M | 不创建主目录 |
-s | 指定登录时使用的Shell类型,默认为/bin/bash |
-c | 设置对该账号的注释说明文字 |
-r | 创建系统账号(用户ID小于1000,从999起按照递减的顺序创建),默认不创建对应的主目录 |
-u | 手工指定新用户的ID值,该值必须唯一,且大于999。 |
〖例3.1〗创建用户tom。
#useradd tom
在使用useradd命令创建用户tom,由于没有为tom指定用户组和主目录,所以系统会创建同名用户组tom作为tom用户的用户组,同时在/home目录下创建同名tom目录作为tom的主目录,并且在/var/spool/mail和/var/mail下创建与tom同名的文件,作为tom用户的邮件日志文件和备份。
〖例3.2〗创建一个名为zhangqi的用户,设置主目录为:/var/zhangqi,作为root组的成员,加注释:101school,指定用户Shell为:/bin/sh。
#useradd –d /var/zhangqi –g root –c 101school –s /bin/sh zhangqi
创建完成后,可以查看/etc/passwd的最后一行。
2.用usermod命令修改用户属性
对于已经创建好的用户,可以使用usermod命令来修改和设置账户的各项属性,包括用户名、用户主目录、用户所属组、使用Shell类型等。
命令格式: usermod 选项 用户名
〖例3.3〗修改用户zhangqi为zhangqiming。
#usermod -l zhangqiming zhangqi
注意原用户名和新用户名的顺序。
〖例3.4〗修改zhangqiming的主目录为/var/zhangqiming。
#usermod -d /var/zhangqiming zhangqiming
注意如果新的主目录不存在则需要先创建该主目录。
〖例3.5〗修改zhangqiming的注释信息为neusoft。
#usermod -c neusoft zhangqiming
操作完成后,查看passwd文件zhangqiming用户,可以发现相关信息都已经做出了修改,因此可以发现uesrmod命令是对passwd文件的修改。
3.用userdel命令删除用户
在Linux操作系统当中,可以在userdel命令后直接加用户名,删除指定的用户。若使用选项-r,则在删除该用户的同时,将该用户对应的主目录一起删除。
命令格式:userdel [-r] 用户名
〖例3.6〗删除zhangqiming用户及其主目录以及该用户的相关文档。
#userdel -r zhangqiming
删除zhangqiming用户后,查看passwd文件,发现该文件中已经不存在zhangqiming用户的信息。
4.用passwd命令管理用户登录密码
用户必须设置密码之后才能登录系统。
root用户有权设置指定用户的密码
普通用户只能设置或修改自己的密码。
passwd不加用户名,可以设置当前用户的密码。
命令格式: passwd [选项] [用户名称]
passwd还可以选项管理用户的密码。
选项 | 功能说明 |
-l | 锁定用户密码 |
-u | 解锁用户密码 |
-S | 查询用户密码状态 |
-d | 删除用户密码 |
〖例3.7〗root管理员创建bob用户,并为其设置密码为“123456”,然后查看/etc/shadow文件中bob用户的密码。然后将bob的密码锁定,使bob无法登录系统,查看/etc/shadow文件的变化,再解锁bob的密码,恢复bob对系统的访问权,再次查看/etc/shadow文件的变化。
〖例3.8〗查询bob用户的密码状态,加锁后再查询bob用户的密码。
若用户密码的当前状态是解锁状态,则结果是“Password set,SHA512 crypt”。其中“SHA512 crypt”指的是密码加密方式。若用户密码被锁定,则查询用户密码状态的结果是“Password locked.”。
四、用户组管理
1.用groupadd命令创建用户组
用户组是用户的集合,通常将用户进行分类归组,便于进行访问控制。
用户与用户组属于多对多的关系,一个用户可以同时属于多个用户组,一个用户组可以包含多个不同的用户。
命令格式:groupadd [选项] 用户组名称
常用选项是-r,功能是创建系统用户组。
〖例3.9〗创建用户组student。
#groupadd student
2.用groupmod命令修改用户组属性
对于已经创建好的用户组,可以使用groupmod命令来修改其属性。
命令格式:groupmod 选项 组名
选项 | 功能说明 |
-n | 修改组名 |
-g | 修改组标识号GID |
〖例3.10〗修改用户组student为teacher。
#groupmod -n teacher student
3.用groupdel命令删除用户组
在Linux系统当中,可以在groupdel命令后直接加用户组名,删除指定的用户组。
命令格式:
groupdel 组名
在删除用户组时,被删除的用户组不能是某个用户的主组,否则无法删除。若必需删除,则应先删除该用户,然后再删除用户组。
4.用gpasswd命令维护组中成员
gpasswd命令可用于把一个用户添加到组、把一个用户从组中删除、把一个用户设为组管理员。
命令格式: gpasswd 选项 用户名 组名
选项 | 功能说明 |
-a | 添加用户到组。 |
-d | 将用户从组中删除。 |
-A | 设置用户为组管理员。 |
〖例3.11〗将lili用户添加到tescher组。
#gpasswd -a lili teacher
〖例3.12〗将lili设置为teacher组的管理员。用户组管理员具有可以向该组添加用户和移除用户的权限。作为组的管理员也可以使用gpasswd命令给组设置口令,只有设置了组口令,其他用户才可以通过newgrp命令切换成该组的成员身份,否则只有本组成员才能使用该组身份。
#gpasswd -A lili teacher
〖例3.13〗将lili从teacher组中删除。
#gpasswd -d lili teacher
五、知识扩展
1.查看用户信息的id命令
id命令用于显示用户当前的UID,GID以及所属群组的组列表。
命令格式:id [选项] [用户名称]
直接执行id命令不带选项表示显示当前用户的ID信息,否则只需要在id命令后面直接加上要查询的用户名即可。
选项 | 功能说明 |
-g | 显示用户所属群组的ID |
-G | 显示用户所属附加群组的ID |
-u | 显示用户ID |
〖例3.14〗查看lili用户的ID信息。
通过命令执行结果可以清楚地看到lili用户UID和GID信息。
2.输出指定用户所在组的groups命令
命令格式:groups [选项] [用户名]
选项 | 功能说明 |
--help | 显示命令帮助信息 |
--version | 显示版本号 |
例如显示用户lili所在的组。
3.查看当前登录用户whoami命令
whoami命令用于显示登录者自身的用户名称,本指令相当于执行“id –un”指令,whoami显示当前用户更详细的登录信息。这一系列相关的还有w,who,whoami。
4.查看当前用户的w命令
系统管理员在任何时刻都可以查看用户的行为,在终端提示符下输入w命令。
第一行显示系统的汇总信息,字段分别表示系统当前时间、系统运行时间、登录用户总数及系统平均负载信息。
5.查看登录用户who命令
系统管理员若想知道某一时刻有哪些用户登录到系统,可以使用系统提供的who命令,该命令可以查看当前登录系统的用户及其他相关系统信息。
6.查看登录用户历史last命令
系统管理员可以随时查看用户登录的历史行为。
7.用于修改用户口令有效期限的chage命令。
密码时效是通过chage命令来管理的。
命令格式:chage [选项] 用户名
选项 | 功能说明 |
-m | 密码可更改的最小天数。为零时代表任何时候都可以更改密码 |
-W | 用户密码到期前,提前收到警告信息的天数 |
-M | 密码保持有效的最大天数 |
-E | 账号到期的日期。过了这天,此账号将不可用 |
-d | 上一次更改的日期 |
-i | 停滞时期。如果一个密码已过期这些天,那么此账号将不可用 |
-l | 列出当前的设置。由非特权用户来确定他们的密码或账号何时过期 |
〖例3.15〗查看root用户的密码信息。
8.修改用户注释信息的chfn命令
chfn命令可以修改用户的注释信息。
命令格式:
chfn [选项] [用户名]
选项 | 功能说明 |
-f | 设置真实姓名。 |
-h | 设置家中的电话号码。 |
-o | 设置办公室的地址。 |
-p | 设置办公室的电话号码。 |
9.修改用户Shell类型的chsh命令
命令格式:
chsh [选项] [用户名]
〖例3.16〗查看系统安装的Shell。
〖例3.17〗将tom用户的Shell修改为/bin/csh。
本例还可以执行#chsh -s /bin/csh tom 命令来完成。如果只执行chsh命令那么修改的是当前用户的Shell。
使用chsh命令修改用户Shell其实修改的就是/etc/passwd文件里和该用户名相对应的那一行所定义的Shell字段。
项目四:用户账号与用户组的创建
操作过程:
#groupadd dgroups01
#useradd -g dgroups01 dguser0101
#passwd dguser0101
#useradd -g dgroups01 dguser0102
#passwd dguser0102
#groupadd dgroups02
#useradd -g dgroups02 dguser0201
#passwd dguser0201
#useradd -g dgroups02 dguser0202
#passwd dguser0202
#tail -4 /etc/passwd
相关文章:
CentOS8基础篇5:用户账号与用户组的创建
一、用户与用户组概念 Linux是一个多用户、多任务的服务器操作系统,多用户多任务指可以在系统上建立多个用户,而多个用户可以在同一时间内登录同一个系统执行各自不同的任务,而互不影响。 Linux用户是根据角色定义的,具体分为三…...
阿里云服务器使用
服务器配置CPU&内存:2核(vCPU)2 GiB操作系统:Ubuntu 22.04 64位运行环境部署因为部署用到了nodejs首先,打开终端,并输入以下命令以安装必要的软件包:sudo apt-get install curl接着,使用 curl 命令安装…...
全国空气质量排行,云贵川和西藏新疆等地空气质量更好
哈喽,大家好,春节刚刚过去,不知道大家是不是都开始进入工作状态了呢?春节期间,允许燃放烟花爆竹的地区的朋友们不知道都去欣赏烟花表演没有?其他地区的朋友们相比烟花表演可能更关心燃放烟花爆竹造成的环境…...
Learning C++ No.8【内存管理】
引言: 北京时间:2023/2/12/18:04,昨天下午到达学校,摆烂到现在,该睡睡,该吃吃,该玩玩,在一顿操作之下,目前作息调整好了一些,在此记录,2月11&…...
『 MySQL篇 』:MySQL表的相关约束
基础篇 MySQL系列专栏(持续更新中 …)1『 MySQL篇 』:库操作、数据类型2『 MySQL篇 』:MySQL表的CURD操作3『 MySQL篇 』:MySQL表的相关约束文章目录 1 . 非空约束 (not null)2 . 唯一性约束(unique)3 . check约束4 . 默认约束(default)5 . 主…...
家政服务小程序实战教程10-分类展示
小程序一般底部菜单栏会有一个分类的功能,点击分类,以侧边栏导航的形式列出所有类目,点击某个类目可以做数据筛选,我们本篇就实现一下该功能 01 优化数据源 在我们家政服务小程序里,我们已经建立了类型和服务的数据源…...
一篇文章带你学会Ansible的安装及部署
目录 前言 一、什么是Ansible 二、Ansible的工作方式 三、Ansible的安装 四、构建Anisble清单 1、清单书写方式 2、清单查看 3、清单书写规则 4、主机规格的范围化操作 五、ansible命令指定清单的正则表达式 六、 Ansible配置文件参数详解 1、配置文件的分类与优先…...
opencv常用函数
1)读视频 img cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) if vc.isOpened():ret, frame vc.read() else:ret False while ret:#此处省略具体的操作ret, frame vc.read() # 读下一帧 vc.release() 2)保存视频 def mk_video_writer(vc, path,frame_…...
Java集合框架常见面试题
1. 剖析面试最常见问题之 Java 集合框架 1.1. 集合概述 1.1.1. Java 集合概览1.1.2. 说说 List,Set,Map 三者的区别?1.1.3. 集合框架底层数据结构总结 1.1.3.1. List1.1.3.2. Set1.1.3.3. Map 1.1.4. 如何选用集合?1.1.5. 为什么要使用集合? 1.2. Colle…...
医用雾化器单片机方案设计
产品概述 雾化器是一款基于电路板的振荡信号被大功率三极管进行能量放大,传递给压电陶瓷片,当压电陶瓷片受电信号的激励,产生高频谐振,并使吸附在微孔膜上的液体结产生超声振荡,将液体的结构打散而产生自然飘逸的雾。不…...
python魔术方法(一)
所谓的魔术方法就是让用户客制化类的方法,常常是python中开头有两个下划线的方法。 __new__() new是创建一个类的过程 class A:def __new__(cls,x):print("__new__")return super().__new__(cls)由于new函数是建立了一个对象,所以必须返回一…...
IDEA配置部署tomcat详细步骤(maven web 和Javaweb)
目录 读者手册 一、概念与准备工作 (一)概念 (二)准备工作 (三)IDEA配置tomcat服务器(maven web项目演示) ( 四)Javaweb项目创建tomcat演示 读者手册 读…...
没有设置密码,每次打开RAR文件却都要输密码?
有小伙伴说遇到这种情况:用WinRAR软件压缩RAR文件后,再次打开时显示需要输入密码,但自己压缩文件时并没有设置密码,后续不管几次压缩文件都需要密码,这是怎么回事呢? 其实,这很可能是之前设置压…...
想要知道有哪些免费API接口,看它就够了
免费API它来啦! 微信开放平台 https://open.weixin.qq.com/ 让你的应用支持微信登录、微信分享、微信支付等功能。 百度地图开放平台 https://lbsyun.baidu.com/index.php?titlewebapi 百度地图Web服务API为开发者提供http/https接口,即开发者通过…...
【Java】二叉树
一、树形结构 树是一种非线性的数据结构,它是由n(n>0)个有限结点组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树,也就是说它是根朝上,而叶朝下的。它具有以下的特点: 有一个特殊…...
C++学习记录——구 模板初阶
文章目录1、泛型编程和函数模板1、函数模板的实例化2、模板参数的匹配原则2、类模板1、泛型编程和函数模板 泛型编程顾名思义,泛用性很高。之前C可以用重载来对付同名函数,但还是麻烦,有一个类型的变量就得写一个类型的函数。C对此创建了库这…...
筑基五层 —— 位运算看这篇就行了
目录 一.修炼必备 二. 位运算 二.移位运算符 三.位运算综合使用 恭喜你,成功突破至筑基五层!!! 一.修炼必备 1.入门必备:VS2019社区版,下载地址:Visual Studio 较旧的下载 - 2019、2017、201…...
windows安装proget实现nuget私有包部署
下载proget 官网 下载地址 免费下载 安装proget 下载完成之后双击安装 选择ProGet 默认选择即可 也可以指定数据库,SQL Server数据库 Server服务器名;Database数据库名;User Id用户名;Password密码 Serverlocalhost;DatabaseProGet2;User Idsa;Passwordxxxx…...
SpringBoot简单集成OpenFeign
问题 在SpringBoot中简单集成Feign,不想使用Rest Temple了。 步骤 Maven <properties><spring.cloud-version>2022.0.1</spring.cloud-version></properties> <dependencyManagement><dependencies><dependency><g…...
dfs(九)字符串的全排列
字符串的排列_牛客题霸_牛客网【牛客题霸】收集各企业高频校招笔面试题目,配有官方题解,在线进行百度阿里腾讯网易等互联网名企笔试面试模拟考试练习,和牛人一起讨论经典试题,全面提升你的技术能力https://www.nowcoder.com/practice/fe6b651b66ae47d7ac…...
别具一格,原创唯美浪漫情人节表白专辑,(复制就可用)(html5,css3,svg)表白爱心代码(1)
别具一格,原创唯美浪漫情人节表白专辑, (复制就可用)(html5,css3,svg)表白爱心代码(1) 一、 前言 回眸之间,丰盈了岁月,涟漪了思绪,轻轻落笔,不写伤痕,不写仇怨,只写岁月…...
Hudi-集成Spark之spark-sql方式
Hudi集成Spark之spark-sql方式 启动spark-sql # 启动spark-sql之前需要先启动Hive的Metastore nohup hive --service metastore & #针对Spark 3.2 spark-sql \--conf spark.serializerorg.apache.spark.serializer.KryoSerializer \--conf spark.sql.catalog.spark_catal…...
快速排序基本原理
快速排序基本原理1.快速排序1.1 基本原理1.2 快速排序执行步骤1.2.1 分区包含步骤1.2.1 分区步骤1.3 快速排序大O记法表示2. 将[0,5,2,1,6,3]进行快速排序 【实战】2.1 第一次分区步骤2.2 第二次分区步骤2.3 第三次分区步骤2.4 第四次分区步骤3.快速排序代码实现1.快速排序 1.…...
Android开发笔记-提纲(连载中....)
文章目录Android概述Android开发学习笔记提纲1. 认识AS开发Android的基础入门知识2. 认识Activity的生命周期和基础使用3. 认识Activity之间的跳转和传值4. 认识Intent以及全局Activity的属性的共享5. 认识Service6. 学习跨应用服务【AIDL通信】Android概述 Android系统框架的四…...
React Native(一)
移动端触摸事件example1:<ButtononPress{() > {Alert.alert(你点击了按钮!);}}title"点我!" />Touchable 系列组件TouchableHighlight 此组件的背景会在用户手指按下时变暗TouchableNativeFeedback 会在用户手指按下时形成类似墨水涟…...
Kotlin 26. Kotlin 如何播放音频文件
Kotlin 如何播放音频文件 文章目录Kotlin 如何播放音频文件1 下载并放置音频文件2 activity_main.xml3 MainActivity.kt1 下载并放置音频文件 我们可以随便下载一个音频文件,比如 alarm.mp3,需要将其放置在 /res/raw/ 路径下。 2 activity_main.xml 这…...
recv和明文收包分析
我们CTRLg 跳到recv 分析收包函数 发现函数会断并且收包函数返回值(收包包长)也会不断变化 那么证明recv是真正的收包函数,游戏没有重新实现该函数 我们只要分析该函数即可 在recv函数执行完毕以后下断 eax是包长,esi28是包指针 我们上2个号,让另外…...
【IVIF的超分重建】
Multimodal super-resolution reconstruction of infrared and visible images via deep learning (基于深度学习的红外和可见光图像多模态超分辨率重建) 提出了一种基于编解码器结构的红外-可见光图像融合方法。图像融合任务被重新表述为保持红外-可见…...
“深度学习”学习日记。--加深网络
2023.2.13 深度学习 是加深了层的深度神经网络的学习过程。基于之前介绍的网络,只需要通过 叠加层, 就可以创建深度网络 之前的学习,已经学习到了很多东西,比如构成神经网络的各种层、参数优化方法、误差反向传播法,…...
2023前端面试总结含参考答案
文章目录1. 父子组件生命周期的执行顺序:2. 原型链:3. promise的理解:4. 数组循环,foreach,filter,map,reduce5. 数组去重,set6. 组件通信方式7. 路由钩子8. 首页首屏加载优化:9. th…...
中国建设银行网站下载/对网站外部的搜索引擎优化
前言 转载自:https://blog.csdn.net/wangzibai/article/details/115283755 场景 在学习谷粒商城的过程中,我这边使用的springboot 版本和spring cloud版本比较高,所以一些配置不一样。 我这边springboot版本是2.5.0,spring cloud版…...
优酷如何做收费视频网站/关键词挖掘查询工具爱站网
本文将直接了当的带你进入linux的模块编译。当然在介绍的过程当中,我也会添加一些必要的注释,以便初学者能够看懂。之所以要写这篇文章,主要是因为从书本上学的话,可能要花更长的时间才能学会整个过程,因为看书的话是一…...
百度网站权重/青岛seo排名公司
等价类划分方法 一.方法简介 1.定义 是把所有可能的输入数据,即程序的输入域划分成若干部分(子集),然后从每一个子集中选取少数具有代表性的数据作为测试用例。该方法是一种重要的,常用的黑盒测试用例设计方法。 2.划分等价类: 等…...
wordpress 官方网站/服务营销策划方案
--select into 从一个表复制数据值内容到另外一个表里面,把数据插入到另外一个新表中/* 一般插入语句都是insert into 表 () values ()特殊需要就要用这种方法了insert into 表1 () select ....from 表2 复杂一点的,比如涉及到2个以上的表:insert into 表名1(字段1,字段2,字…...
四平网站建设联系方式/太原全网推广
我让我的saveScreenShot线程内存溢出错误,即使是BlockingQueue的空内存溢出使用ImageIO.write在我的主要存在时,下列变量存储图像public static BlockingQueue imageQueue1 new LinkedBlockingQueue();public static BlockingQueue imageQueue2 new Li…...
北京市住房和城乡建设厅网站/成都最新疫情
Solis BioDyne来源于欧盟-爱沙尼亚共和国,自1995年以来,Solis BioDyne一直致力于开发和生产高品质的生命科学试剂,现已成为当今欧洲领先的试剂供应商之一。高标准的生产标准和服务使Solis BioDyne成为全球值得信赖的首选PCR供应商。我们的DNA…...