Я пытаюсь запустить скрипт Linux на моей машине с Windows, используя Cygwin.

Я уже прочитал и попробовал решения из « Нет команды sudo» в Cygwin, но безуспешно.

У меня есть скрипт, который использует sudo в обычной среде Linux. но когда я запускаю scirpt на cygwin, он выдает следующее сообщение об ошибке:

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

Я знаю, что у cygwin нет sudo, и упомянутый ранее вопрос, о котором говорилось, использует:

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

Я попытался выполнить эту команду перед запуском скрипта. а также встраивание команды в скрипт. Ни одна помощь. Так что не уверен, что мне не хватает.

3 ответа3

4

Удалите все sudo из файла и запустите скрипт от имени администратора.

При этом идея root в Linux и идея администратора в Windows не совпадают в точности. У вас все еще могут быть проблемы с разрешениями, которые необходимо устранить вручную или путем дальнейшего изменения сценария, особенно в Windows Vista/7.

Кстати, упомянутый вопрос хотел, чтобы вы поставили

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

в файле с именем sudo дайте ему разрешение на выполнение с помощью chmod , а затем поместите его в какой-то каталог в вашем $PATH , например /sbin . Полученный файл не будет ничего делать, кроме как выполнить параметры, которые вы зададите в качестве команды. Идея заключалась в том, чтобы сделать "поддельное" судо, которое ничего не делает. Вы также можете просто удалить sudo из файла.

0

Есть другие ответы на Stackoverflow и суперпользователе , который показывает , как выполнить команду с повышенным priviliges из подсказки Cygwin. Я использую псевдоним:

alias sudo="cygstart --action=runas"

Работает как брелок для внешних программ (но не встроенных в оболочку):

sudo chown User:Group <file>
0

Попробуй это:

#!/usr/bin/env bash

cygstart --action=runas "$@"

Он работает аналогично sudo, недостаток в том, что вам нужно подтвердить диалог UAC вручную. Этот скрипт является частью моего точечного репо.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .