Ubuntu 上的 PowerShell 中是否有等效的“sudo”命令?

Ubuntu 上的 PowerShell 中是否有等效的“sudo”命令?

我想尝试使用 PowerShell 作为 Ubuntu 18.04 上的默认 shell,但是使用 bash 我可以选择运行某些命令,但sudo我不确定如何使用 PowerShell 来做到这一点,因为它没有sudo概念。

在 Windows 上的 PowerShell 中,您必须以管理员身份运行 shell。如果我将默认 shell 设置为 PowerShell,我担心如果没有 sudo,我将无法运行我可能需要的命令,我是否必须进入 bash?我不想默认以管理员身份运行默认 shell。

答案1

如果我理解正确的话,您希望在 Ubuntu 中使用 PowerShell,但您需要 sudo 命令。您可以执行bash -c "sudo <bash command>".sudo通常在 PowerShell 中不起作用,因为它是 Unix 可执行文件,因此您需要将 sudo 与 Bash 命令一起使用。正如其他人指出的那样,runas这是您在 PowerShell 中的最佳选择。请注意,您需要安装 Ubuntu 或使用其他方法在 CMD/PowerShell 中访问 Bash。我认为您已经使用 WSL 安装了 Ubuntu 命令行,所以如果是这样的话,您应该没问题。

答案2

PowerShell 本身没有 sudo。这就是 -RunAs 的作用,但通常也不是一回事。

有些模块是包装器,试图模拟它。但不是一回事。这些模块在 PSCore 之前就已经存在(PowerShellv6/7 已经存在),因此不能保证它们在这些版本中可以工作。

Find-Module -Name '*sudo*' | Format-Table -AutoSize
<#
# Results

Version Name   Repository Description                                                                            
------- ----   ---------- -----------                                                                            
2.1.0   Sudo   PSGallery  Use functionality similar to sudo in PowerShell. GitHub: https://github.com/pldmgg/Sudo
1.4.0   PSSudo PSGallery  Function for executing programs with adminstrative privileges  
#>

相关内容