当前位置:网站首页 > 更多 > 玩电脑 > 正文

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

作者:精品下载站 日期:2024-12-14 13:14:04 浏览:14 分类:玩电脑

如何集成 Linux Sudo Windows 端口和 PowerShell


您是使用以 Windows 为中心的客户端、服务器和网络服务的系统和网络管理员吗?如果是这样,您很可能已经见过流行的 Linux 命令行工具 Sudo。但是 Linux Sudo Windows 端口如何在 PowerShell 中工作呢?

在本教程中,您将学习如何在 PowerShell 中安装 Linux Sudo Windows 端口。为您的日常运营获取强大的资源和优势。

准备好?潜入其中以获得两全其美的效果!

先决条件

本教程包括动手演示。确保您已做好以下准备:

  • 安装了 PowerShell 的 Windows 系统 - 本教程使用安装了 PowerShell 7 的 Windows 10。
  • 安装了 Scoop 和 Git。

安装 Linux Sudo Windows 端口

近年来,Sudo 这一重要的开源工具的强大功能已被移植到 Windows 上。因此,针对日常 IT 任务创建了一套更全面的工具。但默认情况下,Sudo 并未随 Windows 系统一起安装。

要安装 Windows 版 Sudo,请按照下列步骤操作:

1. 启动 PowerShell,然后执行以下 scoop 命令来更新 Scoop。

此命令可确保 Windows 的包管理器 Scoop(如 Ubuntu 的 apt)保持最新状态,包含最新的包和依赖项。

scoop update

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

2. 更新后,运行以下命令安装 sudo(适用于 Windows)。

scoop install sudo

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

3. 最后,运行下面不带参数的 sudo 命令来验证安装。

sudo

下面的 sudo 使用语句的输出确认 Sudo 已成功安装。

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

在 PowerShell 中使用 Sudo 提升权限

在 Windows 系统上安装 Sudo 后,您现在可以在 PowerShell 脚本中使用其功能。在执行需要管理权限的命令时,Sudo 会派上用场,但 shell 目前以常规用户权限运行。

在这种情况下,您需要以管理员身份重新启动 PowerShell 才能继续。但使用 Sudo,您可以使用提升的权限执行命令,而无需重新启动 shell。这种效率类似于 Linux 中 sudo 命令提供的功能。

要了解 Sudo 在 PowerShell 中的工作原理,下面是一些示例,可让您使用管理员权限调用 PowerShell 命令:

1. 以普通用户身份执行以下Set-Content命令。

此命令将 127.0.0.1 localhost 的内容值附加到 C:\Windows\System32\drivers 中名为 hosts2 的文件中\etc 目录。

Set-Content -Path C:\Windows\System32\drivers\etc\hosts2 -Value "127.0.0.1 localhost"

下面,该命令失败并给出“访问被拒绝”错误。由于打开和编辑 C:\Windows\System32\drivers\etc 中的 hosts2 文件需要管理员权限,因此会出现此错误。

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

2. 接下来,执行下面相同的命令,但这次以管理员身份附加 sudo

sudo Set-Content -Path C:\Windows\System32\drivers\etc\hosts2 -Value "127.0.0.1 localhost"

请注意,该命令没有提供任何输出,这表明执行成功,并且所需的内容已附加到 hosts2 文件中,没有错误。

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

3. 现在,运行下面的Get-Content命令来查看hosts2文件的内容。

Get-Content -Path C:\Windows\System32\drivers\etc\hosts2

您将看到 127.0.0.1 localhost 行已添加到 hosts2 文件中,如下所示。

此输出确认当您运行 PowerShell 命令时,Sudo 按预期提升权限。

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

安装并使用 gsudo 作为 sudo 的替代方案

到目前为止,使用 sudo 了吗?此外,名为 gsudosudo 替代方案也提供了一些优势。例如,gsudo 可以检测您当前的 shell 并相应地提升权限,将命令视为本机 shell 命令。

此功能使 gsudo 与各种 shell 兼容,例如 CMD、PowerShell、WSL、git-bash 等。但与 sudo 一样,您必须先安装 gsudo 才能使用它来提升权限。

要在 Windows 上安装和使用 gsudo,请按照以下步骤操作:

1. 运行以下命令将执行策略设置为 RemoteSigned(如果尚未设置)。

此命令确保使用 TLS 1.2 协议 (Tls12),从指定的位置下载并执行 gsudo 安装脚本 (installgsudo.ps1)网址。

PowerShell -Command "Set-ExecutionPolicy RemoteSigned -scope Process; [Net.ServicePointManager]::SecurityProtocol = 'Tls12'; iwr -useb https://raw.githubusercontent.com/gerardog/gsudo/master/installgsudo.ps1 | iex"

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

2. 接下来,执行以下 gsudo 命令来检查安装的版本。

gsudo --version

下面的输出确认您已在 Windows 系统上安装了 gsudo。此时,您已经可以使用 gsudo 作为 sudo 的替代方案。

但是,您仍然必须测试 gsudo 是否按预期工作(第三步)。

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

3. 执行以下命令在记事本中打开hosts2文件。

当您运行该命令时,gsudo 会自动检测您当前的 shell 并相应地提升该命令。

gsudo notepad C:\Windows\System32\drivers\etc\hosts2

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

4. 最后,编辑hosts2 文件并保存更改。

如果您使用提升的权限打开文件,则保存更改会顺利进行,如下所示。

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

但如果不使用 gsudo 打开文件,保存更改时会弹出以下消息。

[玩转系统] 如何集成 Linux Sudo Windows 端口和 PowerShell

结论

在本教程中,您学习了如何在 PowerShell 中安装和配置 Linux Sudo Windows 端口。安装 Sudo 后,您现在可以轻松地从常规用户 shell 执行管理命令,无需以管理员身份重新启动。

除了 sudo 之外,您还学习了使用 gsudo 作为替代命令,该命令提供高级功能,例如自动 shell 检测和将命令视为本机 shell 命令。

本教程只是您旅程的开始。继续扩展您的专业知识。为什么不为 sudogsudo 命令创建 PowerShell 别名以使其更易于使用?

您需要 登录账户 后才能发表评论

取消回复欢迎 发表评论:

关灯