Linux操作系统 中的用户管理,也就是关于用户的相关的操作与理解

目录

  • 1 概念
  • 2 用户管理的类型
  • 3、模板目录
  • 4 查看历史命令
  • 5 相关文件
  • 6 创建用户useradd
  • 7 命令passwd 存储及shadow命令下的用户密码
  • 8 usermod命令(修改属性)
  • 9 密码设置
  • 10 删除命令userdel
  • 11 用户组的操作
  • 12 用户权限
  • 13 创建一个用户组,并且将这个用户组绑定到一个文件夹上
  • 14 创建一个用户,并且将这个用户绑定到一个组上
  • 15 一个用户可以在这个文件夹下新增文件和文件夹,但是不可以删除东西,这个如何实现

1 概念

用户账户:每个可以进行登录的用户都需要拥有一个账户,
账户可以用来识别和验证用户的身份。
账户的创建和管理都由系统管理员来进行。用户组:用户组是用来管理用户权限的组合,
在Linux系统中,用户可以同时属于多个用户组。
每个文件和目录都有一个所有者和一个所属组,
这些属性可以决定用户能否读写文件或目录。权限:
权限用于控制文件和目录的访问权限,
包括读、写、执行等操作。文件或目录的所有者、
所属组和其他人都有不同的权限。文件和目录的所有权和访问权限:Linux系统中,每个文件和目录都有一个所有者和一个所属组,
并且每个文件或目录都有不同的访问权限,
它们可以决定用户是否能够读写文件或目录。添加用户:
添加用户需要使用adduser命令,新用户的信息会保存到系统文件中。删除用户:
删除用户需要使用deluser命令,同时也要记得删除该用户的所有文件。修改密码:
修改密码需要使用passwd命令,需要输入旧密码才能修改新密码。

2 用户管理的类型

1、超级管理员用户

超级管理员主要识别是否是root和#这两个必备的条件来确定当前状态下是否为管理员用户

超级管理员用户的权限的特点是可以使用所有系统及程序命令

在Linux操作系统中,UID是指用户ID(User ID),是Linux系统中用来标识用户的数字ID。

每个用户在Linux系统中都有一个唯一的UID,这个UID是系统内部用来识别不同用户的数字编号,系统管理员可以用这个UID来对不同用户进行管理和授权。

在Linux中,UID为0的用户是超级管理员(也就是root用户),其余用户通常是从1000开始分配的非特权用户。当一个用户创建了一个文件或目录时,该文件或目录的所有者UID就会设置为该用户的UID。

UID也用于系统安全性方面的考虑,因为只有UID为0的超级管理员才能进行关键系统操作,其他用户只能按照分配给他们的权限执行相应的操作。因此,使用UID和权限机制可以保证系统的安全性和稳定性。
2、普通用户

普通用户主要是以#标识来参考当前状态下是否为普通用户,与超级管理员不同的是普通用户只可以使用有限的系统命令和具有使用权限的程序命令。

在Linux系统中,UID从0到999是保留给系统内部特定用户(例如,root用户)和特殊组的,因此,普通用户的UID通常从1000开始。在大多数Linux发行版中,普通用户的UID编号范围通常是1000到65535。
ls/131186633

3、程序用户

程序用户是比较特殊的一种用户、程序用户可以运行指令但不允许登录系统和创建家目录

UID编号范围也与普通用户和超级管理员用户大不相同,程序用户的UID编号范围通常是1到999。

3、模板目录

在Linux系统中,模板目录指的是包含一些常用文件模板的目录,这些模板可以帮助用户快速创建新的文件,并且每个模板都包含了常用的文件结构和格式。Linux系统中的模板目录通常位于用户的主目录下,路径为~/Templates。

模板目录中通常包含了一些预设的文件模板,例如:

空白文本文件模板
空白RTF文件模板
空白ODT文件模板
Shell脚本模板
C程序模板
Python程序模板
LibreOffice Calc电子表格模板
LibreOffice Impress演示文稿模板
用户可以在模板目录中添加或删除自己的文件模板,以满足不同的需求。例如,如果你是一名开发人员,可以在模板目录中添加一个包含了常用文件头注释和函数结构的C程序模板,这样就可以更快地创建一个新的C程序文件并进行编写。

模板目录的主要特点是当用户新建并创建家目录时,复制该目录下的所有内容

主要作用是定义用户登录终端时的显示样式及环境变量设置。

输入该命令~/.bashrc可在模板模式下定义显示样式。

模板目录下的家目录显示异常一般分为两种情况:第一种是用户在使用过程中误删家目录,第二种是在操作家目录迁移过程中出现的异常

模板模式下家目录异常的解决办法:把/etc/skel/的内容移动到/opt(mv /etc/skel/* /opt)

创建用户user03,显示结果异常 -bash-4.2$ 修复 使用user03用户按此路径输入cp /opt/.bashrc /home/user03 输入后再输入exit退出,退出后在输入su - user03进行验证,直至异常结果的不显示-bash-4.2$为结束。

4 查看历史命令

**history命令:**该命令可以列出当前用户在当前终端窗口下所执行的所有命令历史记录。可以使用该命令加上一个数字参数来指定显示最近多少条历史记录,例如,history 10将只显示最近的10条历史记录,默认保留1000条

Ctrl + R快捷键:在命令行下,按下Ctrl + R组合键,将会进入反向搜索模式,可以查找并执行之前执行过的命令。

**!!命令:**该命令可以执行上一条历史命令,即"!"字符后不加参数的形式。例如,执行sudo apt-get update命令之后,可以直接执行sudo !!来再次执行该命令。

**!n命令:**该命令可以执行历史记录中的第n条命令,其中n为命令的序号。例如,执行history命令查看历史记录,然后操作第10条历史命令,可以使用!10来执行。

5 相关文件

/etc/passwd 存储用户信息
在这里插入图片描述

在这个例子中,`root:x:0:0:root:/root:/bin/bash` 是一个用户记录,由冒号分隔的多个字段组成。下面是每个字段的含义:1. `root`:这是用户名,表示该用户的登录名为 "root""root"Linux 系统中的超级用户,具有最高权限。2. `x`:这个字段通常用于存储加密后的密码。在这种情况下,密码被加密并存储在其他文件中,而不是 `/etc/passwd` 文件中。3. `0`:这是用户 IDUID),表示该用户的唯一标识符。在 Linux 系统中,0 是保留给超级用户 "root"UID4. `0`:这是组 IDGID),表示该用户所属的主要组的唯一标识符。在这里,GID 0 表示该用户的主要组也是 "root" 组。5. `root`:这是用户的全名或描述,用于描述该用户的身份。6. `/root`:这是用户的主目录路径,表示 "root" 用户的主目录位于 `/root` 目录下。7. `/bin/bash`:这是用户的登录 shell,表示用户登录后默认使用的命令行解释器为 BashBourne Again SHell)。这个用户记录提供了关于 "root" 用户的基本信息,包括用户名、UIDGID、用户描述、主目录路径和登录 shell 路径。

/etc/shadow 存储用户密码信息

在这里插入图片描述

根据提供的信息,这是一个关于 "root" 用户的密码记录。字段之间使用冒号分隔,具体含义如下:1. `root`:这是用户名,表示该用户的登录名为 "root"2. `$6$IZWx9/g02HOmFM.$Bh1tfeYFQEGpsAY9R0ISjBs5QeTGtdBDj6IAqes3yEGBmWDrXzFyTwSK0EhDV/tefOvQhK9v7WJ7uXoZblgHZ/`:这是加密后的密码字符串。以 `$6$` 开头表示使用 SHA-512 算法进行加密。后面的字符串是密码的盐和哈希值。3. `19670`:这是用户的上次密码更改日期,表示从 197011 日以来的天数。4. `0`:这是密码更改的最小间隔天数。在这种情况下,密码可以立即更改。5. `99999`:这是密码有效期的最大天数。在这里,密码没有过期限制。6. `7`:这是密码到期前的警告天数。在这种情况下,系统会在密码到期前 7 天提醒用户更改密码。其他字段为空,表示没有设置其他限制或配置。请注意,这里提供的密码字符串已经经过加密处理,无法直接还原为明文密码。该密码记录中的密码信息被存储在系统的密码文件(通常是 `/etc/shadow`)中,以保护用户的安全。

/etc/group 存储组信息

在这里插入图片描述
这是关于 “root” 用户在 /etc/group 文件中的记录。字段之间使用冒号分隔,具体含义如下:

  1. root:这是组名,表示该用户所属的组名为 “root”。

  2. x:这是密码字段。通常情况下,密码字段在 /etc/group 文件中是以 “x” 表示,而实际的密码哈希值则存储在 /etc/gshadow 文件中。

  3. 0:这是组标识号(GID)。GID 0 是系统中预留给超级用户组(root)的特殊标识。

其他字段为空,表示没有设置其他限制或配置。

需要注意的是,这里提供的密码字段是以 “x” 表示,实际的密码哈希值存储在 /etc/gshadow 文件中,以保护用户组的安全。

6 创建用户useradd

在Linux中,useradd命令用于创建新的用户账户。该命令的语法如下:

useradd [option] username
其中,option为可选参数,username表示要创建的新用户的用户名。

下面是一些常用的useradd命令选项:

-c:设置用户账户的描述信息。
-d:设置用户的主目录,默认情况下,新用户的主目录会被创建在/home目录下,其名称与用户的用户名相同。
-s:设置用户登录后所采用的默认shell。
-m:自动创建用户主目录。
-g:指定用户的主组group(GID)。
-G:指定用户所属的其他组。
-e:设置账户的过期时间。
-d:指定用户的家目录
-f:密码过期后,账户被彻底禁用之前的天数0表示立即禁用,-1 表示禁用这个功能。
-N:不创建同名的组
-p:加密后的新账户密码
-u:新账户的用户ID
例如,要创建一个名为"john"的新用户,可以执行以下命令:

useradd john
默认情况下,这个新用户不属于任何组,并且没有登录密码。可以使用passwd命令为该用户设置密码,使用usermod命令来修改用户所属的组和其他属性,使用userdel命令来删除该用户。

7 命令passwd 存储及shadow命令下的用户密码

1、根目录下的passwd是存储用户信息

2、在根目录下输入tail -1 /etc/passwd命令,输入后显示以下内容

 user10:x:1014:1014::/home/user10:/bin/bash(该显示为存储用户的信息)显示内容为:用户名:密码占位符:用户ID:组ID:用户描述信息:用户家目录:登录shell

3、根目录下的shadow是存储用户密码信息

  在根目录下输入tail -1 /etc/shadow命令,输入后显示以下内容user2:!!:19522:0:99999:7:::(该显示为储存用户的密码信息)显示内容为:用户名:密码:用户创建时间:密码最短使用期限:密码最长使用期限:密码过期提醒时间:密码过期后的宽容时间:密码过期时间:没用

8 usermod命令(修改属性)

usermod命令(修改属性)
1、usermod

usermod 是一个 Linux 命令,用于修改用户账户信息。它可以用于修改用户的用户名、主目录、用户组等等。一般来说,只有系统管理员才有权利使用这个命令。

使用 usermod 命令需要指定要修改的用户名以及要修改的选项。例如,以下是修改用户密码的命令:

sudo usermod -p PASSWORD USERNAME
其中,PASSWORD是新密码的加密后字符串(可以使用 openssl 生成),USERNAME是要修改密码的用户名。

注意,修改用户账户信息是一项敏感操作,务必小心操作,确保正确性。

-d,–home-dir
修改用户的家目录
usermod -d /path username
-e, --expiredate
修改用户的失效时间
usermod-e YYYY-MM-DD username
-f, --inactive
密码过期后,账户被彻底禁用之前的天数。0表示立即禁用,-1 表示禁用这个功能。
usermod -f n (n为数字) username
-g, --gid
用户初始登录组(基本组)的组名或GID。组名必须已经存在。组号码必须指代已经存在的组。
usermod -g GID username
-G, --groups
修改用户的附加组,该组必须已经存在
usermod -G GID username
-L, --lock
锁定用户密码,账户不能登录系统
usermod -L username
-m, --move-home
与-d选项配合,将老的家目录内容移动到-d指定的新家目录
usermod -m -d /newdirpath username
-p, --password PASSWORD
修改账户密码
usermod -p 加密后的密码 username
-s, --shell SHELL
修改账户的登录 shell
usermod-s shell的路径 username
-u, --uid UID
修改账户的用户 ID
usermod -u 指定的ID号 username

9 密码设置

Linux中密码设置有两种:passwd和chpasswd

1、passwd

用于单个密码设置,输入以下命令和步骤可解除密码锁定

-U, --unlock 解除密码锁定 usermod -U username

主要语法 passwd [选项] username

主要选项有以下几种

-l, --lock
锁定用户密码,账户不能登录系统
passwd -l username

--stdin
读取标准输入的内容作为密码
passwd --stdin  username

-u, --unlock
解除密码锁定
passwd -u username
-d, --delete
删除用户密码
passwd -d username
-e, --expire
设置密码有效期
passwd -e YYYY-MM-DD username
-S, --status
查看给定账户的密码状态(锁定或不锁定)
passwd -S username
非交互式修改密码的步骤:echo a | passwd --stdin user1

2、chpasswd

主要是批量用户设置密码

主要语法

生成用户与密码的对应关系
username:password
echo -e “username1:password1\nusername2:password2” [> filename]

echo -e “username1:password1\nusername2:password2” | chpasswd

chpasswd < filename < 重定向输入

cat filename | chpasswd

10 删除命令userdel

主要语法是:userdel [选项] username

选项只有一种:-r, --remove
用户主目录中的文件将随用户主目录和用户邮箱一起删除。在其它文件系统中的文件必须手动搜索并删除。
userdel -r username

案例流程如下:

现有用户user2 useradd user2

查看/home中的user2文件的属性
drwx------ 5 user2 user2 128 6月 14 11:36 user2

删除user2用户 userdel user2

查看/home中的user2文件的属性
drwx------ 5 1002 1002 128 6月 14 11:36 user2

新建用户user3 useradd user3

查看/home中的user2文件的属性

drwx------ 5 user3 user3 128 6月 14 11:36 user2
drwx------ 3 user3 user3 78 6月 14 11:50 user3

再次创建user2用户 useradd user2

查看/home中的user2文件的属性
drwx------ 5 user3 user3 128 6月 14 11:36 user2
drwx------ 3 user3 user3 78 6月 14 11:50 user3

切换到user2用户 su - user2

发现家目录异常
su: 警告:无法更改到 /home/user2 目录: 权限不够
-bash: /home/user2/.bash_profile: 权限不够
-bash-4.2$

11 用户组的操作

在Linux系统中,您可以使用各种命令来进行用户组的操作。以下是一些常用的用户组管理命令:

  1. groupadd:用于创建新的用户组。例如,要创建名为"mygroup"的用户组,可以执行以下命令:
sudo groupadd mygroup
  1. groupdel:用于删除现有的用户组。例如,要删除名为"mygroup"的用户组,可以执行以下命令:
sudo groupdel mygroup
  1. groupmod:用于修改用户组的属性,如名称或GID(组标识号)。例如,要将名为"mygroup"的用户组的名称修改为"newgroup",可以执行以下命令:
sudo groupmod -n newgroup mygroup
  1. usermod:用于修改用户的属性,包括所属用户组。例如,要将用户名为"myuser"的用户的所属用户组修改为"mygroup",可以执行以下命令:
sudo usermod -g mygroup myuser
  1. gpasswd:用于管理用户组的密码(或称为组密码)。可以使用gpasswd命令设置组密码、添加/删除组成员等。例如,要为名为"mygroup"的用户组设置密码,可以执行以下命令:
sudo gpasswd mygroup

这些命令需要使用超级用户(root)或具有适当权限的用户来执行。您可以使用sudo命令来获取超级用户权限。请注意,在执行这些命令时要小心,以免意外删除或修改重要的用户组或用户信息。

12 用户权限

在Linux中,一个文件夹(目录)的权限由三个不同的权限组成:所有者权限、所属组权限和其他用户权限。每个权限组都可以包含读取(r)、写入(w)和执行(x)权限。以下是所有可能的权限组合:

  • 所有者权限:

    • 读取权限(r):允许查看目录中的文件列表。
    • 写入权限(w):允许在目录中创建、删除和重命名文件。
    • 执行权限(x):允许进入目录。
  • 所属组权限:

    • 读取权限(r):允许查看目录中的文件列表。
    • 写入权限(w):允许在目录中创建、删除和重命名文件。
    • 执行权限(x):允许进入目录。
  • 其他用户权限:

    • 读取权限(r):允许查看目录中的文件列表。
    • 写入权限(w):允许在目录中创建、删除和重命名文件。
    • 执行权限(x):允许进入目录。

这些权限以符号形式表示,可以用数字或符号表示。例如,读取权限(r)用数字4表示,写入权限(w)用数字2表示,执行权限(x)用数字1表示。将这些数字相加,就可以得到一个三位数的权限表示形式。例如,读取和写入权限表示为6(4 + 2),读取和执行权限表示为5(4 + 1),所有权限表示为7(4 + 2 + 1)。

要设置一个文件夹的权限,可以使用chmod命令。例如,要将一个文件夹的所有者权限设置为读取、写入和执行,所属组权限设置为读取和执行,其他用户权限设置为执行,可以使用以下命令:

chmod 750 folder_name

这将为文件夹folder_name设置以下权限:

  • 所有者权限:读取、写入和执行(数字表示为7)。
  • 所属组权限:读取和执行(数字表示为5)。
  • 其他用户权限:执行(数字表示为0)。

请注意,只有文件夹的所有者或具有适当权限的用户才能更改文件夹的权限。

=========================

要设置一个文件夹没有删除权限,但具有其他权限,可以使用以下命令:

chmod 755 folder_name

这将为文件夹folder_name设置以下权限:

  • 所有者权限:读取、写入和执行(数字表示为7)。
  • 所属组权限:读取和执行(数字表示为5)。
  • 其他用户权限:读取和执行(数字表示为5)。

这样设置后,文件夹的所有者和所属组用户可以对其进行读取、写入和执行操作,而其他用户只能进行读取和执行操作,没有删除权限。

13 创建一个用户组,并且将这个用户组绑定到一个文件夹上

要在Linux中创建一个用户组,并将该用户组绑定到一个文件夹上,可以按照以下步骤进行操作:

  1. 创建用户组:
    使用以下命令创建一个新的用户组:

    sudo groupadd group_name
    

    group_name 替换为你想要创建的用户组的名称。

  2. 绑定用户组到文件夹:
    使用以下命令将用户组绑定到指定的文件夹:

    sudo chown :group_name folder_name
    

    group_name 替换为你创建的用户组的名称,将 folder_name 替换为你要绑定用户组的文件夹的路径。

    请注意,chown 命令中的冒号表示将用户组应用于文件夹。

现在,你已经创建了一个用户组并将其绑定到指定的文件夹上。用户组的成员将具有与该文件夹相关联的权限。

14 创建一个用户,并且将这个用户绑定到一个组上

在Linux中创建一个用户并将其绑定到一个组上,可以按照以下步骤进行操作:

  1. 创建用户:
    使用以下命令创建一个新的用户:

    sudo useradd -m username
    

    username 替换为你想要创建的用户的名称。选项 -m 用于同时创建用户的主目录。

  2. 设置用户密码:
    使用以下命令为用户设置密码:

    sudo passwd username
    

    username 替换为你创建的用户的名称。按照提示输入新密码并确认。

  3. 将用户添加到组:
    使用以下命令将用户添加到指定的组:

    sudo usermod -a -G group_name username
    

    group_name 替换为你要将用户添加到的组的名称,将 username 替换为你创建的用户的名称。选项 -a 用于添加用户到组而不覆盖现有组。

现在,你已经创建了一个用户并将其绑定到指定的组上。该用户将成为该组的成员,并具有与该组相关联的权限。

15 一个用户可以在这个文件夹下新增文件和文件夹,但是不可以删除东西,这个如何实现

要实现一个用户可以在文件夹下新增文件和文件夹,但不能删除文件或文件夹,可以通过以下步骤来设置权限:

  1. 创建一个用户组(如果还没有):

    sudo groupadd group_name
    

    group_name 替换为你想要创建的用户组的名称。

  2. 将文件夹的所有者设置为该用户组:

    sudo chown :group_name folder_name
    

    这将把文件夹 folder_name 的所有者设置为用户组 group_name

  3. 将文件夹的权限设置为允许所有者和组成员读、写和执行,但不允许删除:

    sudo chmod 775 folder_name
    

    这将设置文件夹 folder_name 的权限为 rwxrwxr-x。其中,所有者和组成员拥有读、写和执行权限,其他用户只有读和执行权限。

  4. 设置粘贴位权限,以防止其他用户删除文件:

    sudo chmod +t folder_name
    

    这将为文件夹 folder_name 设置粘贴位权限。

通过以上步骤,用户将能够在文件夹下新增文件和文件夹,但不能删除文件或文件夹。只有文件夹的所有者和超级用户才能删除文件。

以上是只有自己创建的东西才可以自己删除,其他人是删除不了的,

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

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

相关文章

ORA-600 kcbzib_kcrsds_1一键恢复

一个19c库由于某种原因redo损坏强制打开库报ORA-600 kcbzib_kcrsds_1错误 SQL> startup mount pfile?/database/pfile.txt; ORACLE instance started. Total System Global Area 859830696 bytes Fixed Size 9034152 bytes Variable Size 5…

我们一起聊一聊JWT的那些事

我们一起聊一聊JWT的那些事 一切美好&#xff0c;如期而至… 什么是JWT JWT&#xff0c;全称为 JSON Web Token&#xff0c;是一种用于在网络上安全地传递信息的开放标准&#xff08;RFC 7519&#xff09;。JWT 是一种紧凑且独立的方式&#xff0c;用于在各方之间以 JSON 对象…

javaTCP协议实现一对一聊天

我们首先要完成服务端&#xff0c;不然出错&#xff0c;运行也要先运行服务端&#xff0c;如果不先连接服务端&#xff0c;就不监听&#xff0c;那客户端不知道连接谁 服务端 import java.awt.BorderLayout; import java.awt.event.ActionEvent; import java.awt.event.Actio…

消费1000返1500元,买了4罐奶粉倒赚商家2000元?商家亏吗?

大家好&#xff0c;我是微三云胡佳东&#xff0c;一个深耕私域电商模式玩法的互联网人&#xff01;&#xff01; 在当前的全球经济环境下&#xff0c;消费增值的概念正逐渐受到广泛的关注。这一模式的崛起&#xff0c;不仅仅是一种商业模式的创新&#xff0c;更代表着我们对经…

[⑦ADRV902x]: JESD204学习笔记

前言 JESD204B/C基于SERDES&#xff08;SERialization/DESerialization&#xff09;技术&#xff0c;也就是串化和解串&#xff0c;在发送端将多位并行的数据转换为1 bit的串行数据&#xff0c;在接收端将串行数据恢复成原始的并行数据。 在JESD204接口出现以前&#xff0c;数…

TOC清洁验证棉签:擦拭取样清洁验证专用的强力助手!

由PP聚丙烯杆聚酯纤维布头构成的TOC清洁验证棉签&#xff0c;用于清洁验证协议的表面采样取样&#xff0c;对难以到达的区域或狭小空间的精密清洗等。 棉签杆使用聚丙烯制作,杆上的缺口能使棉签头在较小的操作及污染下放进小瓶中,具有较好的化学相容性。 有缺口的分离式手柄允许…

class036 二叉树高频题目-上-不含树型dp【算法】

class036 二叉树高频题目-上-不含树型dp code1 102. 二叉树的层序遍历 // 二叉树的层序遍历 // 测试链接 : https://leetcode.cn/problems/binary-tree-level-order-traversal/ code1 普通bfs code2 一次操作一层 package class036;import java.util.ArrayList; import java…

全自动影像仪图像自动匹配对焦,测量一致性好

全自动影像仪使用自动边缘提取、自动匹配、自动对焦、测量合成等先进的机器视觉和人工智能技术&#xff0c;能实现高精度的测量与自动对焦。这些技术提高测量的连贯性和准确性&#xff0c;进而提升生产效率与产品质量。 此外&#xff0c;全自动影像仪还具有多种功能&#xff0…

【二叉树】

文章目录 树形结构注意要点细分概念树在生活中的应用 二叉树什么是二叉树二叉树特点&#xff1a;两种特殊的二叉树二叉树的性质二叉树性质的练习二叉树的存储二叉树的遍历前序遍历中序遍历后序遍历遍历练习 树形结构 树是一种非线性的数据结构&#xff0c;它具有以下的特点&am…

LeetCode 1038. 从二叉搜索树到更大和树:(反)中序遍历

【LetMeFly】1038.从二叉搜索树到更大和树&#xff1a;&#xff08;反&#xff09;中序遍历 力扣题目链接&#xff1a;https://leetcode.cn/problems/binary-search-tree-to-greater-sum-tree/ 给定一个二叉搜索树 root (BST)&#xff0c;请将它的每个节点的值替换成树中大于…

k8s中的Pod网络;Service网络;网络插件Calico

Pod网络&#xff1b;Service网络&#xff1b;网络插件Calico Pod网络 在K8S集群里&#xff0c;多个节点上的Pod相互通信&#xff0c;要通过网络插件来完成&#xff0c;比如Calico网络插件。 使用kubeadm初始化K8S集群时&#xff0c;有指定一个参数–pod-network-cidr10.18.0…

如何让软文更具画面感,媒介盒子分享

写软文这种带有销售性质的文案时&#xff0c;总说要有画面感&#xff0c;要有想象空间。只有针对目标用户的感受的设计&#xff0c;要了解用户想的是什么&#xff0c;要用可视化的描述来影响用户的感受&#xff0c;今天媒介盒子就和大家分享&#xff1a;如何让软文更具画面感。…

2023-12-05 LeetCode每日一题(到达首都的最少油耗)

2023-12-05每日一题 一、题目编号 2477. 到达首都的最少油耗二、题目链接 点击跳转到题目位置 三、题目描述 给你一棵 n 个节点的树&#xff08;一个无向、连通、无环图&#xff09;&#xff0c;每个节点表示一个城市&#xff0c;编号从 0 到 n - 1 &#xff0c;且恰好有 …

Ubuntu之Sim2Real环境配置(坑居多)

不要一上来就复制哦,因为很多下面的步骤让我走了很多弯路,如果可能的话,我会重新整理再发出来 前提: 参考教程 Docs 创建工作空间(不用跟着操作,无用) 1.创建sim2real server container 1.尝试创建sim2real_server容器 后来使用 docker ps -a 发现我已经有sim2real_se…

机器学习 类别特征编码:Category Encoders 库的使用

✅作者简介&#xff1a;人工智能专业本科在读&#xff0c;喜欢计算机与编程&#xff0c;写博客记录自己的学习历程。 &#x1f34e;个人主页&#xff1a;小嗷犬的个人主页 &#x1f34a;个人网站&#xff1a;小嗷犬的技术小站 &#x1f96d;个人信条&#xff1a;为天地立心&…

202350读书笔记|《再别康桥:徐志摩诗选》——微风起,清芬酝藉,不减荼

202350读书笔记|《再别康桥&#xff1a;徐志摩诗选》——微风起&#xff0c;清芬酝藉&#xff0c;不减荼 《再别康桥&#xff1a;徐志摩诗选》我觉得有时候诗人是很狂热的&#xff0c;上头的感觉。 有几首很喜欢&#xff0c;节选如下&#xff1a; 偶然 我是天空里的一片云&…

内测分发平台支持应用的异地容灾的重要性

大家好&#xff0c;我是咕噜-凯撒&#xff0c;随着网络社会的发展&#xff0c;人们对于应用程序的依赖程度越来越高。无论是企业用户还是个人用户&#xff0c;都希望能够随时随地访问到需要使用的应用。所以对于内测分发平台来说保证应用的连续性和可靠性是非常的关键。内侧分发…

推荐一个开源的监控程序-Uptime

先放几张截图介绍一下 现场演示 尝试一下&#xff01; 东京演示服务器&#xff1a;https://demo.uptime.kuma.pet&#xff08;由 Uptime Kuma 赞助商 赞助&#xff09; 这是一个临时的现场演示&#xff0c;所有数据将在10分钟后删除。使用距离您较近的一个&#xff0c;但我建…

LinuxBasicsForHackers笔记 -- BASH 脚本

你的第一个脚本&#xff1a;“你好&#xff0c;黑客崛起&#xff01;” 首先&#xff0c;您需要告诉操作系统您要为脚本使用哪个解释器。 为此&#xff0c;请输入 shebang&#xff0c;它是井号和感叹号的组合&#xff0c;如下所示&#xff1a;#! 然后&#xff0c;在 shebang …

探索SpringBoot发展历程

✅作者简介&#xff1a;大家好&#xff0c;我是Leo&#xff0c;热爱Java后端开发者&#xff0c;一个想要与大家共同进步的男人&#x1f609;&#x1f609; &#x1f34e;个人主页&#xff1a;Leo的博客 &#x1f49e;当前专栏&#xff1a; 循序渐进学SpringBoot ✨特色专栏&…