如何修改服务器管理员账号名和密码(1)

命令解析sudo useradd -m -s /bin/bash 新用户名

1. sudo

作用:以超级用户(root)权限执行命令
为什么需要:创建用户需要修改系统文件(/etc/passwd, /etc/shadow等),普通用户没有这个权限
替代方案:如果已经是root用户,可以不加sudo

2. useradd

作用:Linux系统添加用户的核心命令
相关命令:
adduser:某些发行版(如Debian)提供的更友好的交互式工具
newusers:批量创建用户的工具

3. -m 选项

全称:–create-home
作用:为用户创建家目录(home directory)
目录位置:通常在/home/用户名
包含的文件:会从/etc/skel目录复制默认配置文件(bashrc、profile等)
如果不加:用户将没有家目录,登录后可能遇到问题

4. -s /bin/bash 选项

全称:–shell
作用:指定用户的默认登录shell
/bin/bash:Bourne-Again Shell,功能最丰富的常用shell
其他常见shell:
/bin/sh:Bourne Shell,更轻量
/bin/zsh:Z Shell,功能更强大
/sbin/nologin:禁止登录的shell(常用于系统账户)

5. 新用户名

命名规则:
通常小写字母开头
可以包含数字和下划线
长度一般不超过32字符
避免使用特殊字符和空格
系统保留名:避免使用root、daemon、bin等系统保留名称

命令执行后的系统变化
/etc/passwd:添加一行用户记录
新用户名❌UID:GID:用户描述:/home/新用户名:/bin/bash
/etc/shadow:创建密码记录(初始无密码)
/etc/group:创建与用户名相同的私有组
文件系统:创建/home/新用户名目录
完整用户创建流程示例

1. 创建用户

sudo useradd -m -s /bin/bash john

2. 设置密码(会提示输入两次)

sudo passwd john

谨慎操作!!!!!!

3. 可选:将用户加入sudo组(授予管理员权限)

sudo usermod -aG sudo john

4. 验证用户

id john

应显示类似: uid=1001(john) gid=1001(john) groups=1001(john),27(sudo)

5. 常见问题解决

(1)用户已存在错误:

useradd: user 'john' already exists

解决方案:先删除旧用户sudo userdel -r john,或选择其他用户名

(2)家目录未创建:
检查是否遗漏了-m选项,可以手动创建:
sudo mkdir /home/john
sudo cp -r /etc/skel/. /home/john
sudo chown -R john:john /home/john
(3)shell不可用:
确保指定的shell存在于/etc/shells文件中

6. 安全建议

创建用户后立即设置强密码
对于不需要登录的账户(如服务账户),使用-s /sbin/nologin
定期审查用户列表cat /etc/passwd
考虑使用-u选项明确指定用户ID,避免自动分配冲突
这条命令是Linux系统管理中最基础也是最重要的命令之一,掌握它可以有效管理系统用户权限。

命令解析sudo usermod -aG sudo 新用户名

1. usermod

全称:user modify(用户修改)
功能:修改现有用户账户属性
相关命令:
useradd:创建新用户
userdel:删除用户
passwd:修改密码

2. -aG 选项组合

-a (append):
保持用户现有的所属组不变
只追加新的组关系
如果不加此选项,用户会被移出其他所有次要组
-G (groups):
指定要修改的附加组(secondary groups)
可以同时指定多个组,用逗号分隔

3. sudo

目标组名:通常指管理员权限组
不同发行版差异:
Ubuntu/Debian:sudo组
RHEL/CentOS:wheel组
其他发行版可能使用admin或operators

4. 新用户名

要求:必须是已存在的用户账户
验证方法:id 新用户名 或 grep 新用户名 /etc/passwd

5. 命令执行效果

(1)/etc/group文件修改:
sudo❌27:user1,user2,新用户名
在sudo组的用户列表末尾追加新用户名
(2)用户权限变化:
获得使用sudo命令的权限
可以执行需要root权限的操作
(3)立即生效:
修改后不需要重启或重新登录即可使用新权限

完整示例流程

1. 创建用户(如果不存在)

sudo useradd -m -s /bin/bash testuser

2. 授予sudo权限

sudo usermod -aG sudo testuser

3. 验证权限

sudo -l -U testuser
#应显示:User testuser may run the following commands on this host:
#   (ALL : ALL) ALL

4. 检查组成员

groups testuser
# 应显示:testuser : testuser sudo

5. 常见问题解决

(1)"group ‘sudo’ does not exist"错误:
CentOS/RHEL系统应使用wheel组:
sudo usermod -aG wheel 新用户名
或者创建sudo组:sudo groupadd sudo
(2)权限不生效:
检查/etc/sudoers文件是否允许该组:
sudo grep '%sudo' /etc/sudoers
应有类似:%sudo ALL=(ALL:ALL) ALL
(3)误移除其他组:
确保使用了-a选项,否则用户会被移出其他所有次要组

6. 安全最佳实践

(1)最小权限原则:只给真正需要管理员权限的用户sudo权限
(2)定期审计:检查sudo权限用户列表:grep '^%sudo' /etc/group
(3)使用visudo:修改sudoers文件时永远使用:sudo visudo而不是直接编辑/etc/sudoers
(4)限制sudo权限:可以为特定用户限制可执行的命令:
新用户名 ALL=(ALL) /usr/bin/apt, /usr/bin/systemctl
这条命令是Linux系统管理中赋予用户管理员权限的标准方法,正确使用可以既保证系统安全又提供必要的管理灵活性。

[root@localhost home]# ls
user  wulu1  XAlab_F16_1
[root@localhost home]# cd XAlab_F16_1/
[root@localhost XAlab_F16_1]# ls
[root@localhost XAlab_F16_1]# cd ../
[root@localhost home]# ls
user  wulu1  XAlab_F16_1
[root@localhost home]# rm -rf XAlab_F16_1/
[root@localhost home]# ls
user  wulu1
[root@localhost home]# sudo whoami
root
[root@localhost home]# cd ~
[root@localhost ~]# visudo
visudo: /etc/sudoers.tmp 未更改

只有root用户可以访问home目录下的所有文件夹

[root@localhost ~]# sudo useradd -m -s /bin/bash yhm #添加用户
[root@localhost ~]# sudo passwd yhm
更改用户 yhm 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 不包括足够不同的字符
重新输入新的 密码:
抱歉,密码不匹配。
passwd: 鉴定令牌操作错误
[root@localhost ~]# sudo passwd yhm
更改用户 yhm 的密码 。
新的 密码:
重新输入新的 密码:
抱歉,密码不匹配。
passwd: 鉴定令牌操作错误
[root@localhost ~]# sudo passwd yhm
更改用户 yhm 的密码 。
新的 密码:
无效的密码: 密码未通过字典检查 - 它基于一个字典中的词
重新输入新的 密码:
[root@localhost ~]# sudo whoami
root
[root@localhost ~]# sudo passwd yhm
更改用户 yhm 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# sudo whoami
root
[root@localhost ~]# sudo useradd -m -s /bin/bash XAlab_F16_1
useradd:用户“XAlab_F16_1”已存在
[root@localhost ~]# sudo passwd XAlab_F16_1
更改用户 XAlab_F16_1 的密码 。
新的 密码:
重新输入新的 密码:
抱歉,密码不匹配。
passwd: 鉴定令牌操作错误
[root@localhost ~]# sudo passwd XAlab_F16_1
更改用户 XAlab_F16_1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# sudo usermod -aG sudo XAlab_F16_1
usermod:“sudo”组不存在
[root@localhost ~]# sudo usermod -aG sudo yhm
usermod:“sudo”组不存在
[root@localhost ~]# sudo visudo
visudo: /etc/sudoers.tmp 未更改
[root@localhost ~]# sudo usermod -aG sudo XAlab_F16_1
usermod:“sudo”组不存在
[root@localhost ~]# lsb_release -a
bash: lsb_release: 未找到命令...
安装软件包“redhat-lsb-core”以提供命令“lsb_release”? [N/y] y* 正在队列中等待... 
下列软件包必须安装:mailx-12.5-29.el8.x86_64	Enhanced implementation of the mailx commandncurses-compat-libs-6.1-10.20180224.el8.x86_64	Ncurses compatibility librariesredhat-lsb-core-4.1-47.el8.x86_64	LSB Core module supportredhat-lsb-submod-security-4.1-47.el8.x86_64	LSB Security submodule supportspax-1.5.3-13.el8.x86_64	Portable archive exchange
下列软件包必须更新:ncurses-6.1-10.20180224.el8.x86_64	Ncurses support utilitiesncurses-base-6.1-10.20180224.el8.noarch	Descriptions of common terminalsncurses-libs-6.1-10.20180224.el8.x86_64	Ncurses libraries
继续更改? [N/y] y* 正在队列中等待... * 正在等待认证... * 正在队列中等待... * 正在下载软件包... * 正在请求数据... * 正在测试更改... * 正在安装更新... * 正在安装软件包... * 正在安装更新... * 正在安装软件包... * 正在安装更新... * 正在清理软件包... 
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Rocky
Description:	Rocky Linux release 8.7 (Green Obsidian)
Release:	8.7
Codename:	GreenObsidian
[root@localhost ~]# lsb_release -a
LSB Version:	:core-4.1-amd64:core-4.1-noarch
Distributor ID:	Rocky
Description:	Rocky Linux release 8.7 (Green Obsidian)
Release:	8.7
Codename:	GreenObsidian
[root@localhost ~]# sudo usermod -l yhm XAlab_F16_1
usermod:用户“yhm”已存在
[root@localhost ~]# sudo usermod -l XAlab_F16_1 yhm
usermod:用户“XAlab_F16_1”已存在
[root@localhost ~]# sudo userdel -r XAlab_F16_1
userdel:未找到 XAlab_F16_1 的主目录“/home/XAlab_F16_1”
[root@localhost ~]# sudo usermod -l XAlab_F16_1 user
usermod: user user is currently used by process 9912
[root@localhost ~]# [root@localhost ~]# sudo usermod -l XAlab_F16_1 user
bash: [root@localhost: 未找到命令...
[root@localhost ~]# usermod: user user is currently used by process 9912
bash: usermod:: 未找到命令...
相似命令是: 'usermod'
[root@localhost ~]# [root@localhost ~]# sudo pkill -u user
bash: [root@localhost: 未找到命令...
[root@localhost ~]# [root@localhost ~]# sudo pkill -9 -u user
bash: [root@localhost: 未找到命令...
[root@localhost ~]# ps -u userPID TTY          TIME CMD9912 ?        00:00:01 systemd9916 ?        00:00:00 (sd-pam)9932 ?        00:00:00 pulseaudio9937 ?        00:00:00 gnome-keyring-d9946 tty2     00:00:00 gdm-x-session9977 ?        00:00:32 dbus-daemon10033 tty2     00:00:02 gnome-session-b10133 ?        00:00:00 at-spi-bus-laun10138 ?        00:00:00 dbus-daemon10141 ?        00:00:00 at-spi2-registr10224 tty2     00:29:03 gnome-shell10263 ?        00:00:00 gvfsd10268 ?        00:00:00 gvfsd-fuse10285 tty2     00:00:33 ibus-daemon10289 tty2     00:00:00 ibus-dconf10290 tty2     00:00:00 ibus-extension-10292 tty2     00:00:00 ibus-x1110295 ?        00:00:00 ibus-portal10299 ?        00:00:00 xdg-permission-10312 ?        00:00:00 gnome-shell-cal10317 ?        00:00:00 evolution-sourc10324 ?        00:00:30 goa-daemon10336 ?        00:00:00 gvfs-udisks2-vo10345 ?        00:00:00 gvfs-mtp-volume10349 ?        00:00:00 gvfs-gphoto2-vo10353 ?        00:00:00 gvfs-goa-volume10361 ?        00:02:25 goa-identity-se10368 ?        00:00:00 gvfs-afc-volume10381 tty2     00:00:25 gsd-power10383 tty2     00:00:00 gsd-print-notif10384 tty2     00:00:11 gsd-rfkill10385 tty2     00:00:00 gsd-screensaver10386 tty2     00:00:40 gsd-sharing10388 tty2     00:00:00 gsd-sound10395 tty2     00:00:00 gsd-xsettings10396 tty2     00:00:00 gsd-wacom10398 tty2     00:02:00 gsd-smartcard10401 tty2     00:00:02 gsd-account10415 tty2     00:00:00 gsd-a11y-settin10416 tty2     00:00:00 gsd-clipboard10417 tty2     00:00:22 gsd-color10421 tty2     00:00:00 gsd-datetime10424 tty2     00:01:25 gsd-housekeepin10426 tty2     00:00:00 gsd-keyboard10429 tty2     00:00:00 gsd-media-keys10431 ?        00:00:00 evolution-calen10434 tty2     00:00:00 gsd-mouse10479 tty2     00:00:00 gsd-disk-utilit10484 tty2     01:57:19 gnome-software10495 ?        00:00:00 tracker-store10509 tty2     00:00:00 ibus-engine-sim10516 tty2     00:00:00 tracker-miner-a10522 tty2     00:00:00 tracker-miner-f10546 ?        00:00:32 evolution-calen10583 ?        00:00:31 dconf-service10588 ?        00:00:00 evolution-addre10607 ?        00:00:33 evolution-addre10634 tty2     00:00:00 gsd-printer10829 tty2     00:00:00 ibus-engine-lib11288 ?        00:00:00 gvfsd-metadata11432 ?        00:01:28 xdg-desktop-por11436 ?        00:00:00 xdg-document-po11445 ?        00:00:03 xdg-desktop-por11456 ?        00:00:00 pipewire11458 ?        00:00:00 pipewire-media-
3418164 ?        00:00:00 sshd
3418176 pts/1    00:00:00 bash
3418244 ?        00:00:00 dbus-daemon
3418247 ?        00:00:00 dbus-kill-proce
3418253 ?        00:00:00 gio
3418262 ?        00:00:00 gvfsd
3425019 ?        00:00:00 sshd
3425031 pts/3    00:00:00 bash
3425104 ?        00:00:00 dbus-daemon
3425107 ?        00:00:00 dbus-kill-proce
3425114 ?        00:00:00 gio
3425122 ?        00:00:00 gvfsd
[root@localhost ~]# sudo kill -9 9912
[root@localhost ~]# sudo usermod -l XAlab_F16_1 user
usermod: user user is currently used by process 3418164
[root@localhost ~]# sudo kill -9 3418164
Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(翔安) at 17:50:17.Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 10.26.248.239:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Activate the web console with: systemctl enable --now cockpit.socketLast login: Thu May 15 05:35:32 2025 from 10.26.255.81
(base) [user@localhost ~]$ su -
密码:
[root@localhost ~]# sudo usermod -l XAlab_F16_1 user
usermod: user user is currently used by process 3425019
[root@localhost ~]# sudo pkill -u user
Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(翔安) at 17:53:38.Type `help' to learn how to use Xshell prompt.
[C:\~]$ 
Connecting to 10.26.248.239:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Activate the web console with: systemctl enable --now cockpit.socketLast login: Thu May 15 05:51:17 2025 from 10.26.255.81
(base) [user@localhost ~]$ sudo pkill -u user
[sudo] user 的密码:
user 不在 sudoers 文件中。此事将被报告。
(base) [user@localhost ~]$ su -
密码:
[root@localhost ~]# sudo pkill -u user
Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(翔安) at 18:41:52.Type `help' to learn how to use Xshell prompt.
[C:\~]$ 
Connecting to 10.26.248.239:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Activate the web console with: systemctl enable --now cockpit.socketLast login: Thu May 15 06:40:01 2025 from 10.26.255.81
(base) [user@localhost ~]$ su -
密码:
su: 鉴定故障
(base) [user@localhost ~]$ su -
密码:
[root@localhost ~]# nohup sudo pkill -u user &
[1] 3469106
[root@localhost ~]# nohup: 忽略输入并把输出追加到'nohup.out'
Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(翔安) at 18:46:13.Type `help' to learn how to use Xshell prompt.
[C:\~]$ 

Connecting to 10.26.248.239:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Activate the web console with: systemctl enable --now cockpit.socketLast login: Thu May 15 06:42:30 2025 from 10.26.255.81
(base) [user@localhost ~]$ who
wulu1    pts/0        2025-05-15 03:47 (10.26.248.44)
user     pts/1        2025-05-15 06:46 (10.26.255.81)
yhm      pts/2        2025-05-15 05:24 (10.26.255.81)
(base) [user@localhost ~]$ su -
密码:
[root@localhost ~]# who
wulu1    pts/0        2025-05-15 03:47 (10.26.248.44)
user     pts/1        2025-05-15 06:46 (10.26.255.81)
yhm      pts/2        2025-05-15 05:24 (10.26.255.81)
[root@localhost ~]# sudo pkill -u user
Connection closing...Socket close.Connection closed by foreign host.Disconnected from remote host(翔安) at 18:48:56.Type `help' to learn how to use Xshell prompt.
[C:\~]$ ssh root@10.26.248.239

Connecting to 10.26.248.239:22...
Connection established.
To escape to local shell, press 'Ctrl+Alt+]'.Activate the web console with: systemctl enable --now cockpit.socketLast login: Thu May 15 06:48:04 2025
/usr/bin/xauth:  file /root/.Xauthority does not exist
[root@localhost ~]# sudo pkill -u user
[root@localhost ~]# sudo usermod -l XAlab_F16_1 user
usermod: user user is currently used by process 3469143
[root@localhost ~]# sudo pkill -u user
[root@localhost ~]# sudo usermod -l XAlab_F16_1 user
usermod: user user is currently used by process 3469143
[root@localhost ~]# sudo kill -9 3469143
[root@localhost ~]# sudo usermod -l XAlab_F16_1 user
[root@localhost ~]# who
wulu1    pts/0        2025-05-15 03:47 (10.26.248.44)
root     pts/1        2025-05-15 06:49 (10.26.255.81)
yhm      pts/2        2025-05-15 05:24 (10.26.255.81)
[root@localhost ~]# sudo passwd XAlab_F16_1
更改用户 XAlab_F16_1 的密码 。
新的 密码:
重新输入新的 密码:
抱歉,密码不匹配。
passwd: 鉴定令牌操作错误
[root@localhost ~]# sudo passwd XAlab_F16_1
更改用户 XAlab_F16_1 的密码 。
新的 密码:
重新输入新的 密码:
passwd:所有的身份验证令牌已经成功更新。
[root@localhost ~]# who
wulu1    pts/0        2025-05-15 03:47 (10.26.248.44)
root     pts/1        2025-05-15 06:49 (10.26.255.81)
yhm      pts/2        2025-05-15 05:24 (10.26.255.81)
[root@localhost ~]# who
wulu1    pts/0        2025-05-15 03:47 (10.26.248.44)
root     pts/1        2025-05-15 06:49 (10.26.255.81)
yhm      pts/2        2025-05-15 05:24 (10.26.255.81)
XAlab_F16_1 pts/3        2025-05-15 07:05 (10.26.255.81)
XAlab_F16_1 pts/4        2025-05-15 07:20 (10.26.255.81)
[root@localhost ~]# who
wulu1    pts/0        2025-05-15 03:47 (10.26.248.44)
root     pts/1        2025-05-15 06:49 (10.26.255.81)
yhm      pts/2        2025-05-15 05:24 (10.26.255.81)
XAlab_F16_1 pts/3        2025-05-15 07:05 (10.26.255.81)
XAlab_F16_1 pts/4        2025-05-15 07:20 (10.26.255.81)
[root@localhost ~]# sudo visudo
visudo: /etc/sudoers.tmp 未更改
[root@localhost ~]# 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.pswp.cn/bicheng/81960.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux shell 正则表达式高效使用

Linux正则表达式高效使用教程 正则表达式是Linux命令行中强大的文本处理工具,能够极大提高搜索和匹配效率。下面为新手提供一个简单教程,介绍如何在grep和find命令中使用正则表达式。 使用建议:使用grep时要加-E选项使其支持扩展正则表达式&…

你通俗易懂的理解——线程、多线程与线程池

一:异常处理 1.1 异常概述 (1)场景 (2)定义 (3)异常抛出机制 Java把不同的异常用不同的类表示 (4)如何对待异常 1.2 常见异常类 (1)Throwable &am…

w~自动驾驶~合集13

我自己的原文哦~ https://blog.51cto.com/whaosoft/13933252 # 小米智能驾驶技术的一些猜测 来蹭一下小米汽车智能驾驶的热度,昨晚听了雷总小米汽车的发布,心潮澎湃寻思下单一辆奈何现实不允许hhh。 言归正传吧, 本来是想主要听一下小米…

AI 面试帮 开发日志

项目源码 https://cnb.cool/szu/TravelBest/Platform/-/tree/main 文章目录 架构微服务网络通信延迟 中间件redisMongoDB 架构 微服务 优点: 模块间解耦、职责清晰,独立部署与扩展,单个服务故障不会影响整个系统,便于持续交付与…

论文阅读(四):Agglomerative Transformer for Human-Object Interaction Detection

论文来源:ICCV(2023) 项目地址:https://github.com/six6607/AGER.git 1.研究背景 人机交互(HOI)检测需要同时定位人与物体对并识别其交互关系,核心挑战在于区分相似交互的细微视觉差异&#…

部署java项目

1.编写shell脚本部署服务 restart.sh #!/bin/bash # # start the user program # echo "-------------------- start jk service --------------------" LOG_DIR"/home/joy/usr/app/ers-log" LOG_FILE"$LOG_DIR/log_$(date "%Y%m%d").txt&…

第18天-NumPy + Pandas + Matplotlib多维度直方图

示例1:带样式的柱状图 python 复制 下载 import numpy as np import pandas as pd import matplotlib.pyplot as plt# 生成数据 df = pd.DataFrame(np.random.randint(10, 100, size=(8, 4)),columns=[Spring, Summer, Autumn, Winter],index=[2015, 2016, 2017, 2018, 20…

关于 Web 安全实践:4. 文件上传功能的风险分析与防护

定义:文件上传风险点是指应用程序允许用户上传文件,但没有严格校验上传文件的类型、内容、路径等属性,导致攻击者可以上传并执行恶意代码。 绕过方式: 前端绕过 1. 前端限制的原理 前端限制上传文件类型的常见方式有三种&#…

升级SpringBoot2到3导致的WebServices升级

背景 WebServices 是基于开放标准(XML、SOAP、HTTP 等)的 Web 应用程序,它们与其他 Web 应 用程序交互以交换数据。WebServices 可以将您现有的应用程序转换为 Web 应用程序。 老代码中有一个19年前的包,由于漏洞原因,…

Vue3中插槽, pinia的安装和使用(超详细教程)

1. 插槽 插槽是指, 将一个组件的代码片段, 引入到另一个组件。 1.1 匿名插槽 通过简单的案例来学习匿名插槽,案例说明,在父组件App.vue中导入了子组件Son1.vue,父组件引用子组件的位置添加了一个片段,比如h2标签,然…

【Redis】AOF日志

目录 1、背景2、工作原理3、核心配置参数4、优缺点5、AOF文件内容 1、背景 AOF(Append Only File)是redis提供的持久化机制之一,它通过记录所有修改数据库状态的写命令来实现数据库持久化。与RDB(快照)方式不同&#…

【HTTP】connectionRequestTimeout与connectTimeout的本质区别

今天发现有的伙伴调用第三方 httpclient 的配置中 connectTimeout 和 connectionRequestTimeout 配置的不到 1 S,问了一下他,知不知道这两个参数的意思,他说不知道。那我们今天就来了解一下这两个参数的区别 一、核心概念解析 1.1 connectT…

react中运行 npm run dev 报错,提示vite.config.js出现错误 @esbuild/win32-x64

在React项目中运行npm run dev时,如果遇到vite.config.js报错,提示esbuild/win32-x64在另一个平台中被使用,通常是由于依赖冲突或缓存问题导致的。解决方法是删除node_modules文件夹,并重新安装依赖。 如下图: 解决办…

EMQX开源版安装指南:Linux/Windows全攻略

EMQX开源版安装教程-linux/windows 因最近自己需要使用MQTT,需要搭建一个MQTT服务器,所以想到了很久以前用到的EMQX。但是当时的EMQX使用的是开源版的,在官网可以直接下载。而现在再次打开官网时发现怎么也找不大开源版本了,所以…

Python:操作Excel按行写入

Python按行写入Excel数据,5种实用方法大揭秘! 在日常的数据处理和分析工作中,我们经常需要将数据写入到Excel文件中。Python作为一门强大的编程语言,提供了多种库和方法来实现将数据按行写入Excel文件的功能。本文将详细介绍5种常见的Python按行写入Excel数据的方法,并附上…

vue3中RouterView配合KeepAlive实现组件缓存

KeepAlive组件缓存 为什么需要组件缓存代码展示缓存效果为什么不用v-if 为什么需要组件缓存 业务需求&#xff1a;一般是列表页面通过路由跳转到详情页&#xff0c;跳转回来时&#xff0c;需要列表页面展示上次展示的内容 代码展示 App.vue入口 <script setup lang"…

【JAVA】比较器Comparator与自然排序(28)

JAVA 核心知识点详细解释 Java中比较器Comparator的概念和使用方法 概念 Comparator 是 Java 中的一个函数式接口,位于 java.util 包下。它用于定义对象之间的比较规则,允许我们根据自定义的逻辑对对象进行排序。与对象的自然排序(实现 Comparable 接口)不同,Comparat…

浪潮服务器配置RAID和JBOD

目录 1 配置RAID2 设置硬盘为JBOD模式3 验证结果 1 配置RAID 进入 bios 界面 选择 “高级” - “UEFI-HII配置” 选择 raid 卡 进入 Main Menu 点击 Driver Management&#xff0c;可以查询当前硬盘 返回上一级&#xff0c;点击 Configuration Management - Create virtu…

mongodb管理工具的使用

环境&#xff1a; 远程服务器的操作系统&#xff1a;centOS stream 9; mongoDB version:8.0; 本地电脑 navicat premium 17.2 ; 宝塔上安装了mongoDB 目的&#xff1a;通过本地的navicat链接mongoDB,如何打通链接&#xff0c;分2步&#xff1a; 第一步&#xff1a;宝塔-&…

03-Web后端基础(Maven基础)

1. 初始Maven 1.1 介绍 Maven 是一款用于管理和构建Java项目的工具&#xff0c;是Apache旗下的一个开源项目 。 Apache 软件基金会&#xff0c;成立于1999年7月&#xff0c;是目前世界上最大的最受欢迎的开源软件基金会&#xff0c;也是一个专门为支持开源项目而生的非盈利性…