Benutzer ohne Gruppen-Rechte kann sich selbst zum Admin machen

Allgemeine Fragen und Info rund um ioBroker
Antworten
drefree
Beiträge: 3
Registriert: 25.09.2018, 11:26

Benutzer ohne Gruppen-Rechte kann sich selbst zum Admin machen

Beitrag von drefree » 25.09.2018, 11:58

Hallo allerseits,

nachdem ich schon einige Wochen mit ioBroker arbeite und ich bislang im Forum immer eine Lösung gefunden hab, musste ich mich jetzt mal auch registrieren um ein neues Problem lösen zu können :D

Ich habe einen Benutzer "test" erstellt, dieser hat nur die Standard "User"-Rechte (siehe Bild). Ich kann keine Gruppen erstellen oder löschen, soweit scheint es zu funktionieren, allerdings kann ich neue Nutzer erstellen (diese aber nicht wieder löschen) und Usern neue Gruppen zuweisen bzw. vorhandene löschen. Damit kann ich zum Beispiel einem vorhandenen Admin diese Rechte entziehen oder mir selbst Admin-Rechte geben. Nach einem Relog bin ich nun vollwertiger Admin und kann jetzt auch Gruppen und Nutzer löschen.

Gefühlt liegt das Problem bei den "Standard ACL", die in Objekte gesetzt sind. Da ich vorher Probleme hatte mit einem Benutzer in der Gruppe "User" Vis zu bedienen (Permission-Error um z.B. Licht zu schalten), habe ich das problem gelöst indem ich "Jeder" Schreibrechte gegeben habe, sowohl für Objekte, Zustände und Dateien (siehe Bild). Überschreibt dieser Zugriff wirklich die Zugriffsrechte, die bei Benutzer->Gruppen gesetzt sind oder liegt woanders der Fehler?

Ich hoffe ihr könnt mir helfen was ich wie konfigurieren muss, am liebsten wärs mir ja wenn nur der Benutzer admin Zugriff auf 8081 hat um all das zu vermeiden.

MfG drefree
Dateianhänge
User Rechte 2.png
User Rechte 1.png
Standard ACL.png

Benutzeravatar
apollon77
guru
Beiträge: 6558
Registriert: 10.04.2015, 12:27

Re: Benutzer ohne Gruppen-Rechte kann sich selbst zum Admin machen

Beitrag von apollon77 » 25.09.2018, 19:57

Welche js-Controller Version hast du im Einsatz?


Gesendet vom Handy ...
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

Benutzeravatar
Bluefox
Site Admin
Beiträge: 8102
Registriert: 13.07.2014, 14:42
Kontaktdaten:

Re: Benutzer ohne Gruppen-Rechte kann sich selbst zum Admin machen

Beitrag von Bluefox » 25.09.2018, 22:30

Ich habe da was schon im August gefixt.
Kannst du 2.0.0 branch ausprobieren?

Code: Alles auswählen

cd /opt/iobroker
iobroker stop
npm i https://github.com/ioBroker/ioBroker.js-controller/tarball/1.6.0-dev --production
iobroker start
Nach dem test kannst du dann wieder aktuelle Version herstellen:

Code: Alles auswählen

cd /opt/iobroker
iobroker stop
npm i iobroker.js-controller --production
iobroker start

Marty56
professional
Beiträge: 353
Registriert: 18.05.2017, 15:25

Re: Benutzer ohne Gruppen-Rechte kann sich selbst zum Admin machen

Beitrag von Marty56 » 26.09.2018, 05:31

Eine Frage, die vielleicht nicht in diesen Thread gehört.

Welchen Sinn hat diese Nutzerverwaltung?
Ich kann mir überhaupt kein Szenario vorstellen, bei dem es sinnvoll ist, mehrer Nutzer anzulegen oder Nutzer mit eingeschränkten Rechten.

Ok bei einer großen industriellen Steuerung könnte ich mir das schon vorstellen, aber ich sehe nicht, das ioBroker dazu geeignet wäre und habe auch noch nie davon gelesen.
Bei mir zuhause haben meine Angehörigen schon keinen Nerv die einfache VIS Website anzuschauen und sich damit auseinander zu setzen.
Eine Benutzung der Admin Oberfläche mit eingeschränkten Rechten ist völlig undenkbar.

Die Frage ist nicht polemisch gemeint. Mich würden wirklich die Anwendung interessieren.

Benutzeravatar
Jey Cee
guru
Beiträge: 1629
Registriert: 22.12.2014, 17:00

Re: Benutzer ohne Gruppen-Rechte kann sich selbst zum Admin machen

Beitrag von Jey Cee » 26.09.2018, 06:30

Es gibt mindestens einen User hier im Forum der iobroker für Firmenkunden(Industrie?) einsetzt.

Das Rechtesystem schützt nicht nur den Admin sondern global die Interaktion mit iobroker. Das heißt hat ein User kein recht einen Wert zu setzen kann er das nicht von vis, simpleApi oder sonst wo.
Das ist mein Verständnis des Rechte Systems in iobroker.

Gesendet von meinem m8 mit Tapatalk


Benutzeravatar
apollon77
guru
Beiträge: 6558
Registriert: 10.04.2015, 12:27

Re: Benutzer ohne Gruppen-Rechte kann sich selbst zum Admin machen

Beitrag von apollon77 » 26.09.2018, 07:24

Wie @Jey Cee korrekt schreibt gibt es diese "Professionellen" Anwensungsfälle bereits. Es gibt auch einige Integratoren die ioBroker für Kunden inkl. Visualisierung bereitstellen und später auch Warten. Dafür wird das gebraucht.

Ich persönlich setze es ein um Simple-API abzusichern sodass die Clients die Daten liefern nur das ändern dürfen was Sie auch sollen.
Auch einige User haben die "Konfigurationsbereiche" in Ihren Vis-Oberflächen mit einem eigenen User abgesichert das die Kids die ggf drin rum Klicken nichts verstellen können (aber ggf dennoch das Licht schalten können).

Am Ende muss man Deine Frage meiner Meinung nach genau rumdrehen: Könnte ioBroker in Professionelle/Industrielle Bereiche überhaupt gelangen wenn es keine User- und Rechteverwaltung hätte? Die Antwort ist ein Klares Nein. (nd (glaub mir, aus eigener Erfahrung): Keiner will in ein bestehendes Software-System so etwas nachrüsten :-)

Es ist korrekt das viele Heim-Anwender den "My network is 100% trusted" verfolgen und das muss jeder Risikomäßig für sich entscheiden ... Ich glaube aber das die Zeit kommen wird wo sich das auch für "normale" Anwender ändern wird. und dann ist das Feature schon da. Andere Home-Automation Lösungen müssen sowas jetzt aufwändig nachrüsten.

Aber auch wahr: Wenn es mehr User nutzen würden, würden wir solche Bugs schneller finden und fixen können :-) Die Automatischen tests machen da schon viel, aber alles abzudecken ist hier nahezu unmöglich :-(
How-to:
* Debug-Log für einen Adapter/Instanz einschalten? -> Instanzen -> Expertenomodus -> Spalte Loglevel/Log-Stufe

drefree
Beiträge: 3
Registriert: 25.09.2018, 11:26

Re: Benutzer ohne Gruppen-Rechte kann sich selbst zum Admin machen

Beitrag von drefree » 26.09.2018, 09:16

@apollon77: War die 1.4.1, bin grad wie von Bluefox vorgeschlagen am updaten, melde mich dann mal sobald es fertig ist.

@Marty56: Spiele im Moment als Student mit ioBroker in meinem Praktikum rum und da soll ich auch n bisschen zeigen was die Software so kann, und ein gutes Nutzer-System kann da schon sinnvoll sein, vor allem weil einige Leute bei mir definitiv Unfug treiben würden wenn sies könnten :lol: :roll:

drefree
Beiträge: 3
Registriert: 25.09.2018, 11:26

Re: Benutzer ohne Gruppen-Rechte kann sich selbst zum Admin machen

Beitrag von drefree » 26.09.2018, 10:18

So, habe soweit mal alles getestet was mir eingefallen ist, Gruppen setzen/bearbeiten etc funktioniert nicht mehr (permission error), auch bei Skripts/Adapter starten oder stoppen das selbe, Objekte löschen ebenfalls. Ein einziger "Fehler" der mir aufgefallen ist, wenn ich unter Objekte den State editieren will (bspw. "false" auf "true") hängt sich admin.0 ca. 30s auf und ist nicht mehr erreichbar, es findet aber keine änderung statt (das Licht ging nicht an, was ja auch gewollt ist).

Ein anderer Fehler scheint zu sein, dass ich unter "Objekte" ohne die zugehörigen Rechte neue Objekte erstellen konnte, diese dann aber ebenfalls nicht editieren kann. Habe der Gruppe "User" bei Zustands-Rechte keine "create"-Erlaubnis mehr gegeben (auch wenn das ja sowieso ein Objekt ist oder?) nachdem ich gestern abend noch etwas rumprobiert hab, daran liegts also wohl nicht.

Im Vis funktioniert das schalten übrigens einwandfrei, also ich muss da echt ein großes Lob an dich aussprechen @Bluefox wie schnell du reagierst, da findet man mal einen Bug und der ist in der dev-Version schon gefixt :D Ich hätte da noch eine letzte kurze Frage, als ich vorhin den dev-Build installiert hab habe ich einfach deine Befehlte copy-pastet, ohne darauf zu achten ob ich die Rechte hab (keine sudo am Anfang). Das heißt dass er versucht hat iobroker zu stoppen und bei laufendem iobroker versucht hat zu updaten, auch ohne Rechte. Da war er dann in einer Endlosschleife mit dem sich wiederholenden Fehler

Code: Alles auswählen

gyp WARN EACCES user "root" does not have permission to access the dev dir "/opt/iobroker/node_modules/diskusage/.node-gyp/8.11.4"
gyp WARN EACCES attempting to reinstall using temporary dev dir "/opt/iobroker/node_modules/diskusage/.node-gyp"
habe abgebrochen, iobroker gestoppt und dann die Installation nochmal gestartet und alles hat einwandfrei funktioniert. Wenn ich aber mit

Code: Alles auswählen

sudo iobroker stop
weitermache kommt jetzt folgende Meldung:

Code: Alles auswählen

pi@All-In-One_RasPi:/opt/iobroker $ sudo iobroker stop
Stopping iobroker controller daemon...
iobroker controller daemon stopped.
No "killall.sh" script found. Just stop.
killall.sh ist noch im Ordner vorhanden, liegt das Problem an dem neuen js-Controller oder hat die fehlerhafte Installation etwas kaputt gemacht?

EDIT: Habe grad die alte Version nochmal draufgespielt, killall.sh wird immer noch nicht gefunden, liegt also nicht direkt am neuen js-controller.

EDIT2: Die neue "alte" Version ist anscheinend trotzdem etwas höher, 1.5.0 anstatt 1.4.1, und alles mit den Rechten und den "Bugs" scheint hier bereits wie in der dev-Version zu funktionieren, inlusive meinem killall.sh Fehler.

EDIT3: Hab grad nochmal geschaut, anscheinend installiert er mit beiden Befehlen die 1.5.0 Version, hier die Konsolenlogs bei der Installation:

Code: Alles auswählen

pi@All-In-One_RasPi:/opt/iobroker $ sudo iobroker stop
Stopping iobroker controller daemon...
iobroker controller daemon stopped.
No "killall.sh" script found. Just stop.
pi@All-In-One_RasPi:/opt/iobroker $ sudo npm i https://github.com/ioBroker/ioBroker.js-controller/tarball/1.6.0-dev --production

> iobroker.js-controller@1.5.0 preinstall /opt/iobroker/node_modules/iobroker.js-controller
> node lib/preinstallCheck.js

NPM version: 6.1.0
npm version >= 5: disabling package-lock
Could not check npm version: Error: EACCES: permission denied, open '/opt/iobroker/.npmrc'
Assuming that correct version is installed.

> iobroker.js-controller@1.5.0 install /opt/iobroker/node_modules/iobroker.js-controller
> node iobroker.js setup first

+ iobroker.js-controller@1.5.0
updated 1 package and audited 2881 packages in 37.961s
found 51 vulnerabilities (36 low, 1 moderate, 14 high)
  run `npm audit fix` to fix them, or `npm audit` for details
Ich hoffe mal dass ich mir jetzt nicht den ioBroker zerschossen hab, eigentlich klappt alles im ioBroker selbst einwandfrei :lol:

Antworten