Gibt es ein BSD-Äquivalent zu „!!“?

Gibt es ein BSD-Äquivalent zu „!!“?

Es kommt häufig vor, dass ich einen Befehl erteile, für den ich nicht über die erforderlichen erhöhten Berechtigungen verfüge.

Unter Ubuntu könnte ich verwenden

sudo !!

Dies würde denselben Befehl mit Sudo-Berechtigungen ausgeben. Gibt es ein Äquivalent unter OpenBSD?

Bearbeiten: Ich hätte genauer angeben sollen, welche Version von OpenBSD ich verwende. Ich verwende OpenBSD 4.8, wo sudo standardmäßig installiert zu sein scheint. Ich habe bereits einen Benutzer neben root erstellt und meine sudoers-Datei bearbeitet, damit dieser Benutzer sudo verwenden kann.

Meine Frage ist, ob es bereits eine integrierte Tastenkombination für „!!“ gibt, um den vorherigen Befehl zu verwenden.

Antwort1

sudoist ein unabhängiges Softwarepaket, dessen Entwicklung mindestens ein Jahrzehnt vor Ubuntu oder OpenBSD begann.

Ich würde vorschlagen, dass Sie OpenBSDs pkg_add verwenden, um dies auf Ihr System zu bekommen, aber OpenBSDs eigene FAQ fürInstallieren eines neuen Paketshat ein Beispiel, das verwendet sudo, also sollte es bereits installiert sein.

Funktioniert !!es alleine (also ohne sudo)? Falls nicht, ist möglicherweise die Verwendung einer anderen Shell als der unter Ubuntu eingerichtet.

Antwort2

Um das bei allen anderen Antworten klarzustellen: Dies !!ist Teil des Shell-Verlaufsmechanismus. Ich denke, das Problem liegt nicht bei sudo, sondern bei Ihrer Shell, oder genauer gesagt bei Ihrer Shell, wenn Sie Root sind.

Es ist lange her, dass ich mit einem der BSDs gespielt habe, aber sie sind eher „traditionelle“ UNIX-Systeme, d. h. sie verwenden immer noch eine echte Bourne-Shell (sprich: nicht so viele Funktionen wie Bash) als Root-Shell. „Echte“ Bourne-Shell bedeutet in diesem Fall, dass es keinen Verlaufsmechanismus gibt. Dies dient der Systemwiederherstellung.(*)

Wenn Sie sich als Root anmelden, können Sie eine Shell mit Verlauf ausführen, entweder „do“ exec /bin/bashoder exec /bin/tcshwie Sie möchten.

Der alte Trick bestand darin, ein Root-Äquivalentkonto zu haben, das normalerweise „toor“ genannt wurde und eine Tcsh- oder Bash-Login-Shell, dasselbe Home-Verzeichnis und die UID 0 hatte. Sie würden nicht sudo verwenden, um Root zu werden, sondern sudo toor, und dann in Bash sein. Ich bin mir nicht sicher, was das neue Hot ist, vielleicht

(*) Der Grund: Die Shell von root ist /sbin/sh und statisch verknüpft. Das bedeutet, dass sie die Mindestanzahl an Abhängigkeiten hat. Wenn Ihre Shell /bin/bash ist und Bibliotheksabhängigkeiten von /usr hat und /usr jetzt gegorken ist, haben Sie keine Shell. Wenn Ihre Shell /sbin/sh ist und /sbin zumindest einhängbar ist, können Sie einige Arbeiten erledigen.

Antwort3

Diese Seite sollte Ihnen eine Hilfe sein:http://linux-bsd-sharing.blogspot.com/2009/03/howto-using-sudo-on-freebsd.html

Außerdem werden Administratoraufgaben unter BSD im Allgemeinen direkt vom Root-Benutzerkonto aus erledigt. Unter Ubuntu ist das Root-Administratorkonto deaktiviert und alle Administratoraufgaben werden über das Benutzerkonto ausgeführt und vom Sudo-Programm auf ihre Richtigkeit überprüft.

Bei der Installation von BSD sollte Sie das Root-Passwort gefragt haben. Sie sollten sich mit dem angegebenen Passwort als Root anmelden können. Wenn die lokale Root-Anmeldung in Gnome (oder was auch immer Sie als Desktop verwenden) deaktiviert ist, können Sie sich mit dem Befehl „su -“ in einem Terminal als Root anmelden und Sie sollten nach Ihrem Root-Passwort gefragt werden. Sobald Sie als Root angemeldet sind, können Sie alles tun, was Sie möchten, da dieses Konto über alle Berechtigungen verfügt.

Aus Sicherheitsgründen wird generell davon abgeraten, sich als Root anzumelden und alles auf diese Weise auszuführen. Jedes Programm, das Sie als Root ausführen, verfügt über Root-Berechtigungen. Das bedeutet, dass ein Programm, das alles auf Ihrer Festplatte löschen soll, die Berechtigung dazu hat. Deshalb sollten Sie beim Anmelden als Root immer vorsichtig sein. Melden Sie sich einfach an und tun Sie, was Sie tun müssen. Wenn Sie fertig sind, kehren Sie sicherheitshalber zu Ihrem Benutzerkonto zurück.

Antwort4

OpenBSD verfügt über eine eigene Implementierung, die in das Basissystem integriert ist. Wenn sich Ihr Benutzer also in der /etc/sudoersDatei befindet, liegt das Problem möglicherweise daran, dass Ihre Shell die Standard-Shell „Bourne“ ist sh, die nicht die gleiche Funktionalität bietet, die Sie möglicherweise von Ubuntu gewohnt sind.

Ich glaube, Sie können Bash mit dem Befehl installieren pkg_add -r bashund es dann mit festlegen chsh -s /usr/local/bin/bash (ich glaube, das ist der richtige Pfad, ich kenne mich besser mit FreeBSD aus, aber ich denke, das Ports/Paketsystem ist bei beiden ähnlich).

verwandte Informationen