Cygwin fehlt sudo

Cygwin fehlt sudo

Ich versuche, mit Cygwin ein Linux-Skript auf meinem Windows-Computer auszuführen.

Ich habe die Lösungen von bereits gelesen und ausprobiertEs gibt keinen 'sudo'-Befehl in Cygwin, ohne Erfolg.

Ich habe ein Skript, das sudo in der normalen Linux-Umgebung verwendet. Aber wenn ich das Skript unter Cygwin ausführe, wird diese Fehlermeldung ausgegeben:

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

Ich weiß, dass Cygwin kein Sudo hat, und in der zuvor erwähnten Frage wurde Folgendes gesagt:

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

Ich habe versucht, diesen Befehl auszuführen, bevor ich das Skript ausgeführt habe. Und ich habe auch versucht, den Befehl in das Skript einzubetten. Nichts davon hat geholfen. Ich bin mir also nicht sicher, was ich übersehe.

Antwort1

Entfernen Sie alle sudo's in der Datei und führen Sie das Skript als Administrator aus.

Allerdings rootstimmen die Vorstellungen von Administratoren unter Linux und Windows nicht genau überein. Möglicherweise treten weiterhin Berechtigungsprobleme auf, die manuell oder durch weitere Änderungen am Skript behoben werden müssen, insbesondere unter Windows Vista/7.

Übrigens wollte die referenzierte Frage, dass Sie

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

in einer Datei namens sudo, geben Sie ihr mit Ausführungsberechtigung chmodund legen Sie sie dann in einem Verzeichnis in Ihrem ab $PATH, z. B. /sbin. Die resultierende Datei wird nichts tun, außer die Parameter auszuführen, die Sie ihr als Befehl geben. Die Idee war, ein „falsches“ sudo zu erstellen, das nichts tut. Sie können auch einfach die sudo's aus der Datei löschen.

Antwort2

Versuche dies:

#!/usr/bin/env bash

cygstart --action=runas "$@"

Es funktioniert ähnlich wie sudo, der Nachteil ist, dass man den UAC-Dialog manuell bestätigen muss. Dieses Skript ist Teil meinesPunkt-Repo.

Antwort3

Es gibt weitere Antworten aufPaketüberflussUndSuperuserzeigt, wie man einen Befehl mit erhöhten Rechten von einer Cygwin-Eingabeaufforderung aus ausführt. Ich verwende einen Alias:

alias sudo="cygstart --action=runas"

Funktioniert als Charm für externe Programme (allerdings nicht für Shell-Built-Ins):

sudo chown User:Group <file>

verwandte Informationen