Cygwin 缺少 sudo

Cygwin 缺少 sudo

我正在尝试使用 cygwin 在我的 Windows 机器上运行 Linux 脚本。

我已经阅读并尝试了以下解决方案Cygwin 中没有“sudo”命令,但没有成功。

我有一个在常规 Linux 环境中使用 sudo 的脚本。但是当我在 cygwin 上运行该脚本时,它会抛出此错误消息:

project_common.sh: line 604: sudo: command not found

我知道 cygwin 没有 sudo,并且前面提到的参考问题说使用:

>#!/usr/bin/bash
>"$@"

我尝试在运行脚本之前执行该命令,并将该命令嵌入到脚本中。但都没有帮助。所以不确定我遗漏了什么。

答案1

删除sudo文件中的任何并以管理员身份运行脚本。

话虽如此,Linuxroot和 Windows 中管理员的概念并不完全对应。您可能仍存在需要手动纠正或通过进一步修改脚本来纠正的权限问题,尤其是在 Windows Vista/7 上。

顺便说一句,引用的问题希望你提出

>#!/usr/bin/bash
>"$@"

在名为 的文件中sudo,使用 赋予其可执行权限chmod,然后将其放在 中的某个目录中$PATH,例如/sbin。生成的文件除了执行您作为命令提供的参数外不会执行任何操作。这个想法是制作一个不执行任何操作的“假” sudo。您也可以sudo从文件中删除 。

答案2

尝试这个:

#!/usr/bin/env bash

cygstart --action=runas "$@"

它的工作方式与 sudo 类似,缺点是,您需要手动确认 UAC 对话框。此脚本是我的一部分点回购

答案3

还有其他答案堆栈溢出超级用户它显示了如何从 Cygwin 提示符中以提升的权限执行命令。我使用别名:

alias sudo="cygstart --action=runas"

可以作为外部程序的魅力(但不是 shell 内置程序):

sudo chown User:Group <file>

相关内容