Linux-----13、用户、组

2023-12-19

# 用户、组

# 一、用户管理

# ㈠ 用户概念及作用(了解)

**用户:**指的是Linux操作系统中用于管理系统或者服务的人

一问:管理系统到底在 管理什么

答:Linux下一切皆 文件 ,所以用户管理的是相应的文件

二问: 如何管理 文件呢?

答:

  1. 文件基本管理,比如文件的创建、删除、复制、查找、打包压缩等;文件的权限增加、减少等;

  2. 文件高级管理,比如 程序文件 的安装、卸载、配置等。终极目的是对外提供稳定的服务。

# ㈡ 用户的分类(了解)

# 1、超级用户
  • 超级用户,也叫管理员, root 。该用户(root)具有所有权限,UID=0并且绝对只能是0。
# 2、系统用户
  • 系统用户,也叫程序用户。一般都是由程序创建,用于程序或者服务运行时候的身份。

  • 默认不允许登录系统。1<=UID<=499

  • 比如后面要学的web服务的管理用户apache,文件共享ftp服务的管理用户ftp等

注意:Centos7/RHEL8中,系统用户UID范围 :1<=UID<=999

# 3、普通用户
  • 普通用户,一般都是由管理员创建,用于对系统进行有限的管理维护操作。

  • 默认可以登录系统。500<=UID<=60000

注意:Centos7/RHEL8中,普通用户UID范围 :1000<=UID<=60000

特别说明

  1. 用户指的是操作系统上管理系统或服务的人,是人,就有相关的属性信息

  2. 用户的属性信息包括但不限于,如:家目录、唯一身份标识(UID)、所属组(GID)等

  3. 今天我们讨论的用户指的是普通用户,即由管理员创建的用户

# ㈢ 用户的基本管理(掌握)

# 1、创建用户(useradd)
# (1) 基本语法和选项
useradd [选项] 用户名
常用选项:
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
-s 指定用户默认shell


查看系统支持的shell(命令解释器)
[root@heima ~]# cat /etc/shells
/bin/sh 软连接文件
/bin/bash 系统默认的解释器
/usr/bin/sh 软连接文件
/usr/bin/bash 系统默认的解释器


其他shell:
/sbin/nologin 不能登录操作系统,也叫非交互式shell
/bin/dash
/bin/tcsh
/bin/csh

# (2) 举例说明
# ① 创建默认用户
创建一个用户stu1
[root@heima ~]# useradd stu1
查看用户信息
[root@heima ~]# id stu1
uid=501(stu1) gid=501(stu1) groups=501(stu1)

注意:当创建一个默认用户时,系统会给该用户以下东西,以stu1为例说明


1)用户的UID(唯一标识) 501(系统自动分配)
2)用户的默认组(主组) stu1组,默认跟该用户的用户名一致;组ID(501),默认和用户UID一致
3)用户的家目录 /home/stu1
4)拷贝相应的文件到用户的家里
[root@heima ~]# su - stu1
[stu1@localhost ~]$ ls -a
. .. .bash_logout .bash_profile .bashrc .gnome2 .mozilla

image-20231101113024070

# ② 根据需求创建用户

1、创建用户,不允许登录

2、创建用户,指定家目录

1. 创建用户stu2,但是不能登录操作系统
注意:-s 指定用户的默认shell,/sbin/nologin表示不能登录系统,也叫非交互
[root@heima ~]# useradd -s /sbin/nologin stu2
验证:
[root@heima ~]# id stu2
uid=502(stu2) gid=502(stu2) groups=502(stu2)
切换用户失败,说明该用户不能登录系统
[root@heima ~]# su - stu2
This account is currently not available.

2. 创建用户stu2,同时指定该用户的家目录为/rhome/stu2
注意:-d 指定用户的家目录,前提该用户家目录的上一级目录/rhome必须存在

[root@heima ~]# mkdir /rhome
[root@heima ~]# useradd -d /rhome/stu2 stu2
[root@heima ~]# id stu2
uid=502(stu2) gid=502(stu2) groups=502(stu2)
说明:指定stu2家目录/rhome/stu2时,只需要/rhome存在即可,系统会默认在/rhome下创建stu2目录
自己创建的目录中没有 “家具文件”,可以从 /etc/skel/ 下拷贝到家中即可

# 2、用户密码设置(passwd)

两个方式:

1.交互式: passwd 用户名

2.非交互: echo 密码|passwd --stdin 用户名

passwd 用户名 表示给指定用户修改密码
passwd 直接回车 表示给当前用户修改密码

[root@heima ~]# passwd stu1
Changing password for user stu1.
New password: 密码不显示
BAD PASSWORD: it is WAY too short
BAD PASSWORD: is too simple
Retype new password: 密码不显示
passwd: all authentication tokens updated successfully.

说明:
1.管理员root可以给任何用户修改密码
2.普通用户可以自己给自己修改密码,但是密码复杂度要符合规范

[root@heima ~]# echo 123|passwd --stdin stu2
更改用户 stu2 的密码 。
passwd:所有的身份验证令牌已经成功更新。

说明:使用这种方法不用交互可以直接设置成功,一般用于脚本中。
管道符“|”一般是将上一个命令的输出作为标准输入交给下一个命令
--stdin 标准输入

# ① 保存用户信息的文件

/etc/passwd

/etc/shadow

1. 用户信息保存文件/etc/passwd
了解相关配置文件内容,可以通过求man文档解决,即 man 5 passwd

以冒号:分割为7列,如下:
account --> stu1 用户名称
password --> x 密码,将密码单独存放在另外一个文件中
UID --> 501 用户ID
G  ID --> 501 组ID
GECOS --> 用户自定义,描述说明
directory --> /home/stu1 用户的家目录
shell --> /bin/bash用户的默认shell,其中/sbin/nologin表示非交互,不能登录系统




2. 用户密码信息保存文件/etc/shadow
了解相关配置文件内容,可以通过求man文档解决,即 man 5 shadow

以冒号:分隔为9列,如下:

login name
	登录的用户名
encrypted password
	加密后的密码;
	!!表示没有设置密码
date of last password change
	最后一次更改密码的天数(距离1970年的1月1日到现在的天数)
	值0有特殊含义,即用户下次登录系统时应更改密码。
minimum password age
	密码的最小生存周期;0表示可以立刻修改密码;如果是3,则表示3天后才能更改密码
maximum password age
	密码的最大生存周期;如果30表示每隔30天需要更新一次密码
password warning period 密码过期前几天发出警告;
	7表示过期前7天开始警告
password inactivity period
	密码的宽限期;如果3表示允许密码过期3天,3天内还能登录系统,但是要求修改密码。3天后(密码过期3天后账户被封锁,
	需要联系管理员)
account expiration date
	账户过期的时间,账户过期的用户不能登录;密码过期用户不能用原来的密码登录。以1970年1月1日算起。
reserved field
	保留

② 更改用户的账号信息(chage)

chage --help
-d 修改用户最后一次更改密码的时间
-m 修改密码的最小存活期(几天后才能修改密码)
-M 修改密码的最大存活期(每隔多少天更新一次密码)
-W 修改密码过期前警告(过期前几天发出警告)
-I 修改允许密码过期几天
-E 修改账户过期时间
-l 列出账户的信息


举例说明:
查看用户账号的相关信息命令:chage -l stu1
[root@heima ~]# chage -l stu1
Last password change : Mar 04, 2019
Password expires : never
Password inactive : never
Account expires : never
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7


修改用户账号的过期时间:2019-03-10过期
[root@heima ~]# chage -E '2019-03-10' stu1
[root@heima ~]# chage -l stu1
Last password change : Mar 04, 2019
Password expires : never
Password inactive : never
Account expires : Mar 10, 2019
Minimum number of days between password change : 0
Maximum number of days between password change : 99999
Number of days of warning before password expires : 7

修改用户账号的过期时间为10天以后:
[root@heima ~]# chage -E $(date +%F -d '+10days') stu1

修改用户登录后需要修改密码
chage -d 0 用户名

image-20231102102351590

# 3、修改用户信息(usermod)
# ① 基本语法选项
usermod [选项] 用户名
常用选项:
-u 指定用户uid,唯一标识,必须唯一
-g 指定用户的默认组(主组)
-G 指定用户附加组(一个用户可以加入多个组,但是默认组只有一个)
-d 指定用户家目录(每个用户都有一个自己的家,并且默认在/home/xxx)
-s 指定用户默认shell
-m 移动用户家目录,和-d一起使用

# ② 举例说明
1. 修改stu3用户的UID为1100
[root@heima ~]# usermod -u 1100 stu3

[root@heima ~]# tail -5 /etc/passwd
yunwei:x:1001:1001::/home/yunwei:/sbin/nologin
stu1:x:1002:1002::/home/stu1:/bin/bash
stu2:x:1003:1003::/rhome/stu2:/bin/bash
stu3:x:1100:1004::/rhome/stu3:/bin/bash
stu4:x:1005:1005::/home/stu4:/sbin/nologin


2.修改stu4用户的默认shell为可登录系统
[root@heima ~]# su - stu4
This account is currently not available.
[root@heima ~]# usermod -s /bin/sh stu4
[root@heima ~]# tail -5 /etc/passwd
yunwei:x:1001:1001::/home/yunwei:/sbin/nologin
stu1:x:1002:1002::/home/stu1:/bin/bash
stu2:x:1003:1003::/rhome/stu2:/bin/bash
stu3:x:1100:1004::/rhome/stu3:/bin/bash
stu4:x:1005:1005::/home/stu4:/bin/sh


3.修改stu5用户的家目录
[root@heima ~]# useradd -d /rhome/stu5 stu5
[root@heima ~]# usermod -md /home/stu5 stu5

# 4、删除用户(userdel)
# ① 基本语法选项
userdel [选项] 用户名
常用选项:
-r 删除用户并且移除其家目录和邮箱
-f 强制删除正在登录的用户

# ② 举例说明
说明:
创建完用户后,家目录默认在/home/用户名下;用户的邮箱在/var/spool/mail/用户名
1. 删除stu4用户以及家目录
[root@heima ~]# userdel -r stu4
[root@heima ~]# id stu4
id: stu4: No such user


2.强制删除一个正在登录的用户
[root@heima ~]# userdel -r stu5
userdel: user stu5 is currently used by process 7998
[root@heima ~]# id stu5
uid=1101(stu5) gid=1101(stu5) 组=1101(stu5)
[root@heima ~]# userdel -rf stu5
userdel: user stu5 is currently used by process 7998
[root@heima ~]# id stu5
id: “stu5”:无此用户


3. 只删除用户user02,不删除其家目录
[root@heima ~]# userdel stu1

# ㈣ 总结

# 1、创建用户(useradd)

1)useradd 用户名——>家目录/home/用户名、邮箱、UID、默认组(GID)[用户主组]

2)useradd [选项] 用户名字——>常用选项:-d/-s/-u/-g/-G

# 2、设置用户密码(passwd)

1)passwd 用户名——>给指定的用户(管理员可以给任何人设置任何密码)

2)echo 密码|passwd --stdin 用户名——>非交互式(用于脚本中)

3)用户基本信息和用户密码信息保存文件——>/etc/passwd和/etc/shadow

4)扩展chage命令——>用来修改用户密码信息(账号过期时间、密码最小生存周期等)

# 3、修改用户信息(usermod)

1)usermod [选项] 用户名——>usermod -md 新家 用户名

# 4、删除用户(userdel)

1)userdel 用户名——>只删除用户,不删除用户家目录、邮箱等信息

2)userdel -r 用户名——>删除用户以及用户其他信息

3)userdel -f 用户名——>强制删除用户(删除正在登录的用户)

# 二、组管理

# ㈠ 组和用户的关系(理解)

image-20231102104849417

**核心:**组的目的是为了方便管理用户

  • 用户是操作系统上管理维护系统或服务的人

  • 组是用户的一个属性信息

  • 任何一个用户默认都会有一个主组(默认组)

  • 一个用户除了主组也可以有多个其他组( 附加组 )

**一问:**用户的主组和附加组到底有啥关系呢?

**答:**用户的主组和附加组半毛钱关系都木有

**二问:**那要这个主组或者附加组有啥用呢?

答: 肯定是 有用 的,组的目的是方便管理用户,用户的目的是管理操作文件,文件就有权限这个属性。

  1. 用户要操作一些文件,文件是由用户创建,不同用户创建的文件的属性信息也就不一样

  2. 文件的属性都有啥呢?比如,文件的创建者,文件属于哪个组,文件大小,文件时间等

  3. 其中,不同用户所创建的文件的属组就是该用户的主组(默认组)

  4. A用户附加组也有可能是其他用户的主组,道理同上(权限章节再细细体会组的作用)

# ㈡ 组的管理(掌握)

# 1、创建组(groupadd)

/etc/group 组信息文件

# ① 基本语法
groupadd [选项] 组名
常用选项:
-g 指定组的GID(编号),默认唯一

# ② 举例说明
1.创建一个组admin
[root@heima ~]# groupadd admin

2.查看组信息
[root@heima ~]# tail -1 /etc/group
admin:x:1005:
说明:关于/etc/group配置文件说明,可以man 5 group找帮助


3.创建一个组sysadmin,指定组的GID为1111
[root@heima ~]# groupadd -g 1001 sysadmin
[root@heima ~]# tail -1 /etc/group
admin:x:1005:
sysadmin:x:1111

# 2、删除组(groupdel)
# ① 基本语法
groupdel 组名

② 举例说明

[root@heima ~]# groupdel admin
[root@heima ~]# groupdel stu2
groupdel: cannot remove the primary group of user 'stu2'
注意:以上信息说明不能删除属于其他用户的主组

# 3、组成员管理(gpasswd)

/etc/gshadow 组文件

# ① 基本语法
gpasswd [选项] 组名
常见选项:
-a 添加用户到组
-d 从组中删除成员
-A 指定管理员
-M 指定组成员(会覆盖),可以批量添加用户到组中
-r 删除密码


gpasswd 组名 给组设置密码

# ② 举例说明
  • 添加用户到组里

    1. 创建3个用户user01~user03
    2. 将user01添加到sysadmin组里
    方法:1:指定user01用户的附加组为sysadmin(站在用户角度)
    # usermod -G sysadmin user01
    
    方法2:使用gpasswd命令添加用户到组里
    # gpasswd -a user01 sysadmin
    -a选项:表示往组里追加用户
    
    # gpasswd -M user02,user03 sysadmin 设置sysadmin组成员为user02,user03
    -M选项:表示覆盖设置组成员(会覆盖原来的成员列表)
    
    # gpasswd -A stu2 admin
    指定admin
    
    
  • 删除组成员

    将user03用户从组sysadmin里移除
    # gpasswd -d user03 sysadmin
    
    

# ㈢ 课堂练习

  1. 创建一个admin组,组id为900

  2. 创建一个用户tom,并且admin组作为tom用户的附加组(要求在建立用户的时候就完成),密码为123

  3. 创建一个用户jack,要求在建立用户之后使用gpasswd把jack加入到该组,密码为123

  4. 给admin组设定一个默认密码为123 (gpasswd命令)

  5. 把tom用户设定为admin组的组管理员(gpasswd命令)

# ㈣ 总结

# 1、创建组(groupadd)

组的信息保存文件——>/etc/group和/etc/gshadow

# 2、删除组(groupdel)

什么样的组不能删除?——>不能删除属于其他用户的主组

# 3、管理组成员(gpasswd)

1)添加用户到组里——>gpasswd -a user1 组名 或 gpasswd -M user1,user2,… 组名

2)从组里移除用户——>gpasswd -d user1 组名

# 任务实施

一、创建coding组

# groupadd coding

二、创建用户

# useradd -G coding lidamao
# useradd -G coding wangergou

三、给用户设置密码

# passwd lidamao
# echo 123|passwd --stdin wangergou

# 作业1

  1. 创建一个公司itcast,3个部门财务(cw),人事(rs),市场(sc)

    说明:实际是创建4个组,分别为itcast、cw、rs、sc,没有包含的关系

  2. 每个部门创建2个用户,如 cw01 cw02,rs01,rs02,sc01,sc02;boss01管理公司所有部门;

    说明:boss01管理所有部门说明,boss01的附加组为财务、人事和市场部门

  3. 所有用户账号有效期3个月<90天>,第一次登录强制修改密码,每隔15天更新一次密码;默认密码为123456

# 作业2

  1. 添加3个用户,用户harry,natasha,sarsh,要求harry,natasha用户的附加组为admin组,sarsh用户的登录shell为非交互式shell。密码均为redhat

  2. 修改harry用户的家目录为/home/heima/redhat/harry

  3. 修改natasha,sarsh用户的主组为heima,并且可以登录系统

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Linux-----13、用户、组 的相关文章

  • 如何在 Vim 中突出显示 Bash 脚本?

    我的 Vim 编辑器自动突出显示 PHP 文件 vim file php HTML 文件 vim file html 等等 但是当我输入 vim file在里面写一个Bash脚本 它不会突出显示它 我如何告诉 Vim 将其突出显示为 Bas
  • 我想在 Red Hat Linux 服务器中执行 .ps1 powershell 脚本

    我有一个在窗口中执行的 ps1 powershell 脚本 但我的整个数据都在 Linux 服务器中 有什么可能的方法可以让我在红帽服务器中执行 powershell 脚本 powershell脚本是 Clear Host path D D
  • Linux 内核使用的设备树文件 (dtb) 可视化工具? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找一个可以图形化表示Linux内核中使用的硬件设备树的工具 我正在尝试了解特定 Arm 芯片组
  • 对于任何真实数据集,数据压缩比的最小可能值是多少

    我在写信ZLIB类似于嵌入式硬件压缩器的 API 它使用 deflate 算法来压缩给定的输入流 在进一步讨论之前 我想解释一下数据压缩率 数据压缩率定义为未压缩大小与压缩大小之间的比率 压缩比通常大于一 这意味着压缩数据通常比未压缩数据小
  • 如何获取与 shell 中的文件名模式匹配的所有文件的总文件大小?

    我正在尝试仅使用 shell 来计算与文件名模式匹配的所有文件 在目录树中 的总大小 以字节为单位 这是我到目前为止所拥有的 find name undo exec stat c s awk 总计 1 END 打印总计 有没有更简单的方法来
  • 在 scapy 中通过物理环回发送数据包

    我最近发现了 Scapy 它看起来很棒 我正在尝试查看 NIC 上物理环回模块 存根上的简单流量 但是 Scapy sniff 没有给出任何结果 我正在做的发送数据包是 payload data 10 snf sniff filter ic
  • 在ubuntu中打开spyder

    我想在ubuntu中打开spyder Python IDE 通常我会在 shell 中编写 spyder 它会打开spyder IDE 现在 当我在shell中编写spyder时 它只是换行 什么也没有发生 类似于按 enter 我如何找回
  • Bash:将字符串添加到文件末尾而不换行

    如何将字符串添加到文件末尾而不换行 例如 如果我使用 gt gt 它将添加到文件末尾并换行 cat list txt yourText1 root host 37 echo yourText2 gt gt list txt root hos
  • Crontab 每 5 分钟一次 [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我如何告诉 crontab 每 5 分钟运行一次 但从每小时的第二分钟开始 换句话说 我想在以下时间执行我的脚本minute 5 2 例如 我的脚本应
  • “git add”返回“致命:外部存储库”错误

    我刚刚进入 git 的奇妙世界 我必须提交我对程序所做的一系列更改 位于名为的目录中 var www myapp 我创建了一个新目录 home mylogin gitclone 从这个目录中 我做了一个git clone针对公共回购 我能够
  • 使用 libusb 输出不正确

    我用libusb编写了一个程序 我怀疑输出是否正确 因为所有条目都显示相同的供应商和产品 ID 以下是代码 include
  • 正则表达式删除块注释也删除 * 选择器

    我正在尝试使用 bash 从 css 文件中删除所有块注释 我有以下 sed 命令的正则表达式 sed r s w s w d 这可以很好地去除块注释 例如 This is a comment this is another comment
  • 嵌入清单文件以要求具有 mingw32 的管理员执行级别

    我正在 ubuntu 下使用 i586 mingw32msvc 交叉编译应用程序 我很难理解如何嵌入清单文件以要求 mingw32 具有管理员执行级别 对于我的例子 我使用了这个hello c int main return 0 这个资源文
  • Ubuntu Python shebang 线不工作

    无法让 shebang 线在 Ubuntu 中为 python 脚本工作 我每次只收到命令未找到错误 test py usr bin env python print Ran which python usr bin python 在 sh
  • 在汇编中使用 printf 会导致管道传输时输出为空,但可以在终端上使用

    无输出 https stackoverflow com questions 54507957 printf call from assembly do not print to stdout即使在终端上 当输出不包含换行符时也有相同的原因
  • ssh 连接超时

    我无法在 git 中 ssh 到 github bitbucket 或 gitlab 我通常会收到以下错误消息 如何避免它 输出 ssh T email protected cdn cgi l email protection i ssh
  • 执行命令而不将其保留在历史记录中[关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在进行软件开发时 经常需要在命令行命令中包含机密信息 典型示例是将项目部署到服务器的凭据设置为环境变量 当我不想将某些命令存储在命令历史记
  • 适用于 Linux 的轻量级 IDE [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • linux下无法创建僵尸进程

    嗯 我有一个奇怪的问题 我无法在我的项目中创建僵尸进程 但我可以在其他文件中创建僵尸进程 有简单的说明 int main if fork 0 printf Some instructions n else sleep 10 wait 0 r
  • 我们真的应该使用 Chef 来管理 sudoers 文件吗?

    这是我的问题 我担心如果 Chef 破坏了 sudoers 文件中的某些内容 可能是 Chef 用户错误地使用了说明书 那么服务器将完全无法访问 我讨厌我们完全失去客户的生产服务器 因为我们弄乱了 sudoers 文件并且无法再通过 ssh

随机推荐

  • 【QT】解决QTableView修改合并单元格内容无法修改到合并范围内的单元格

    问题 修改合并单元格的内容 修改合并单元格的内容时 希望直接修改到合并范围内的单元格 Qt没有实现这个功能 需要自己写出 Delegate来实现 方案 Delegate class EditDelegate public QStyledIt
  • 新年跨年烟花超酷炫合集【内含十八个烟花酷炫效果源码】

    以下展示为全部烟花特效效果 下方仅展示部分代码 源码获取见文末 HTML5烟花喷泉
  • 1005. K 次取反后最大化的数组和 && 增强for循环(foreach循环)遍历数组

    1005 K 次取反后最大化的数组和 原题链接 完成情况 解题思路 参考代码 1005K次取反后最大化的数组和 1005K次取反后最大化的数组和 简洁写法 错误经验吸取 增强for循环 foreach循环 遍历数
  • 关注MCU 开发中的无限循环

    在 MCU 的开发过程中 我们经常会遇到需要使用无限循环的情况 例如 在前后台系统中 我们需要在一个无限循环中处理各种任务 在实时性操作系统中 我们也可能需要在一个无限循环中调度各个任务 那么 处理无限循环的语句有哪些写法呢 目前常见的有两
  • Vue的脚手架

    脚手架配置 脚手架文档 Vue CLI npm config set registry https registry npm taobao org vue config js配置选项 配置参考 Vue CLI ref选项 ref和id类似
  • 不是帆软BI用不起,而是奥威BI更具性价比

    说起BI软件 很多人都要提名帆软BI 但帆软BI虽好 却不一定适合所有企业 对很多预算一般的企业来说 性价比高的BI软件更符合实际情况 而要说起BI软件的性价比之王 那就不得不提奥威BI软件了 这是一款可0开发做企业数据分析的国产自研BI软
  • Try `npm install @types/postcss-plugin-px2rem` if it exists or add a new declaration (.d.ts) file...

    问题 Try npm install types postcss plugin px2rem if it exists or add a new declaration d ts file 这是由于引入第三方库但缺少声明文件的情况 这时 T
  • 项目进度管理:项目经理把控项目进度的技巧

    到项目后期 加班越发频繁 今天我们得加班完成这点工作了 这是在项目里我们听到最多的一句话 王嘉在公司好几年 也参与了几个项目 由于他各方面出色表现 公司分配给他一个小项目 初次成为项目经理的他信心满满 他觉得这不是一件难事 每天只需要监督好
  • Dubbo怎么实现动态感知服务下线的呢?

    Dubbo是一个高性能 轻量级的开源Java RPC框架 用于服务间的远程通信 为了实现动态感知服务下线 Dubbo提供了多种策略 服务监控 Dubbo提供了内置的监控功能 通过在服务提供者上配置监控信息 可以实时监测服务状态 当服务下线时
  • AntDB-T提升查询性能的关键之查询优化解析

    查询优化器 是提升查询效率非常重要的手段 本文将主要介绍 AntDB T数据库查询优化 的相关设计 AntDB T数据库是一款企业级通用分布式关系型数据库 而查询是AntDB T数据库管理系统中最关键 最吸引人的功能之一 每个生产数据库系统
  • FAM amine, 6-isomer,1313393-44-0,含有纯6-异构体的荧光团,6-FAM NH2

    产品名称 FAM amine 6 isomer 6 FAM NH2 中文名称 6 羧基荧光素 氨基 CAS 1313393 44 0 分子式 C27H26N2O6 分子量 474 51 纯度 95 结构式 产品描述 荧光素衍生物具有胺基 含
  • 自定义WheelView

    项目中用到一个比较觉得不错的控件 WheelView 即上下滚动View 它是继承ScrollView实现 在Android各版本上的效果都是如下 也许在git上有许多这样功能的控件 但个人认为这个控件实现的方式简单 比较让人容易理解 对自
  • Zookeeper 和 Dubbo 的关系?

    Zookeeper的作用 zookeeper用来注册服务和进行负载均衡 哪一个服务由哪一个机器来提供必需让调用者知道 简单来说就是ip地址和服务名称的对应关系 当然也可以通过硬编码的方式把这种对应关系在调用方业务代码中实现 但是如果提供服务
  • java 员工绩效管理系统Myeclipse开发mysql数据库MVC结构serlvet编程计算机网页项目

    一 源码特点 java 员工绩效管理系统是一套完善的java web信息管理系统 对理解JSP java编程开发语言有帮助 系统采用serlvet dao bean 系统具有完整的源代码和数据库 系统主要采用B S模式开发 开发工具myec
  • 64.Oracle19cPDB的创建和删除

    1 创建PDB CREATE PLUGGABLE DATABASE DB CROSS ADMIN USER pdbadmin IDENTIFIED BY enmo 2023 ROLES dba DEFAULT TABLESPACE CROS
  • Linux中seLinux是什么?关闭会造成哪些影响?

    seLinux是一种安全增强型的Linux操作系统 其主要作用是强化系统的安全性和保护系统资源免受未经授权的访问和攻击 其提供了三种工作模式 分别是Disabled工作模式 Permissive工作模式和Enforcing工作模式 那么Li
  • CNN和TCN的区别和联系

    CNN 卷积神经网络 和TCN 时间卷积网络 都是神经网络的变体 用于处理不同类型的数据 以下是它们的主要区别和联系 区别 应用领域 CNN 主要用于处理图像数据 具有在空间维度上捕捉局部特征的能力 常用于计算机视觉任务 TCN 主要用于处
  • Python中的定时器用法:Timer定时器和schedule库

    目录 一 引言 二 Timer定时器 1 Timer定时器的原理 2 Timer定时器的使用方法 3 Timer定时器的实际应用案例 三 schedule库 1 schedule库的原理 2 schedule库的使用方法 3 schedul
  • 62.$ORACLE_HOME/.patch_storage是否可以删除

    1 此目录为是Oracle打补丁时被替换的文件的备份 是的 即使成功安装了补丁程序 也必须保留 ORACLE HOME patch storage目录 1 将临时补丁应用到Oracle主目录时 OPatch将补丁信息存储在 ORACLE H
  • Linux-----13、用户、组

    用户 组 一 用户管理 用户概念及作用 了解 用户 指的是Linux操作系统中用于管理系统或者服务的人 一问 管理系统到底在 管理什么 答 Linux下一切皆 文件 所以用户管理的是相应的文件 二问 如何管理 文件呢 答 文件基本管理 比如