Ohne sudo verwalten

Jedes Gerät kann einen Operator haben, also einen lokalen Benutzer, der dort jeden juist-Befehl ohne sudo ausführen darf. Du legst ihn einmal als root fest.

Wer was darf #

Auf jedem Gerät erledigt der Daemon juistd die Arbeit, und der Befehl juist schickt ihm Anfragen. Der Daemon entscheidet, wer was darf:

WerDarf
rootalles, auch den Operator festlegen
der Operatoralles andere, etwa Geräte auflisten, einladen, Änderungen bestätigen oder einen Exit-Node nutzen
jeder andere lokale Benutzernur juist status und juist health, die andere Geräte als member 1, member 2 usw. zeigen

Der Operator ist der lokale Benutzer, der für dieses Gerät festgelegt ist, meist du, also die Person, die das Gerät benutzt. Gibt es einen Operator, musst du nicht mehr vor jeden Befehl sudo schreiben.

Änderungen am Netz, etwa die Aufnahme eines Geräts, brauchen außerdem einen Admin-Schlüssel. Er liegt in deinem eigenen Keystore ~/.config/juist, also führst du diese Befehle als du selbst aus, nicht mit sudo.

Den Operator festlegen #

Meist musst du gar nichts tun:

  • Führst du juist create als du selbst aus, fragt es einmal, ob es sudo juist set ausführen soll, und macht dich zum Operator.
  • sudo juist join … macht den Benutzer, der sudo aufgerufen hat, zum Operator, es sei denn, du nennst mit --operator einen anderen.

Hat das Gerät noch keinen Operator oder willst du ihn ändern, legst du ihn von Hand fest.

1auf laptop

Mach deinen Benutzer zum Operator:

sudo juist set --operator=$USER

Die Ausgabe lautet operator alice. Ab jetzt funktioniert jeder juist-Befehl auf diesem Gerät ohne sudo.

So entfernst du den Operator wieder:

sudo juist set --operator=""

Die Ausgabe lautet operator cleared.

Gut zu wissen #

  • Jedes Gerät hat pro Netz genau einen Operator. Nur root kann ihn mit juist set --operator festlegen. Die übrigen Einstellungen von juist set, etwa die für Netze, die nur HTTPS durchlassen, darf der Operator ändern.
  • Ein Befehl, der den Operator braucht, fragt im Terminal not the operator; run sudo juist set --operator=alice? [Y/n] und führt den angezeigten Befehl aus, wenn du zustimmst.
  • Unter Linux fragen einige Befehle, die den Rechner selbst verändern, weiterhin einmal nach sudo: juist exit serve, juist subnet serve und das Anlegen oder Beitreten eines zweiten Netzes auf demselben Gerät.
  • Ist ein Gerät in mehreren Netzen, gibst du das Netz an: sudo juist set work --operator=$USER.
  • juist reset löscht den Operator zusammen mit dem Netz.

Fehlersuche #

Ruft jemand juist health auf, der nicht Operator ist, endet die Ausgabe so:

$ juist health
…
hint: read-only; to manage this device: sudo juist set --operator=alice

Führe diesen Befehl einmal aus. Kann ein Befehl nicht nachfragen, etwa in einem Skript, bricht er mit juist: operator only und demselben Hinweis ab.

Siehe auch Status und Geräte und Fehlersuche.