NEWS
Warum nutzt IOBroker ACLs?
-
Heute habe ich innerhalb von zwei Tagen den zweiten Nutzer von raspiBackup der Probleme hat ein Backup von einem IOBroker Image mit raspiBackup auf eine NFS3 gemountete Backuppartition einer Synology zu erstellen. Die Ursache liegt darin dass der IOBroker ACLs nutzt die leider von Synology nicht unterstuetzt werden und rsync mit einer entsprechenden Fehlermeldung abbricht.
Man kann die Option -A von rsync weglassen die dafuer sorgt dass ACLs gesichert werden. Ein Nutzer hat auf diese Art ein Backup erstellt, dann wieder restored ohne ACLs und keine Probleme soweit mit dem restorten IOBroker festgestellt.
Was ist der Grund warum IOBroker ACLs nutzt und was passiert wenn man wie eben beschrieben keine ACLs ins Backup sichert? Ist dann irgendeine Funktionalitaet von IOBroker broken und wenn ja welche?
Ich nutze kein IOBroker aber dadurch dass immer wieder Nutzer von IOBroker raspiBackup nutzen und an der fehlenden Unterstuetzung von ACLs bei Synology verzweifeln wuerde ich gerne wissen was ich den armen IOBroker Nutzern fuer eine Loesungsmoeglichkeit nennen soll wie sie ihr IOBrokersystem mit raspiBackup sichern koennen.
-
@framp welche Acls sind denn problematisch und was ist raspiBackup?
Iobroker nutzt meines Wissens nach ganz normale Linux Rechte.
Warum um nutzen die User nicht ganz normal das offizielle iobroker Backup Bzw backitup zum sichern und restoren?
-
echad@chet:~ $ ls -la /opt/iobroker/ total 708 drwxrwxr-x+ 6 iobroker iobroker 4096 May 6 18:45 . drwxr-xr-x 4 root root 4096 Apr 23 00:53 .. drwxrwxr-x+ 2 iobroker iobroker 4096 Apr 25 22:21 backups -rwxrwxrwx+ 1 iobroker iobroker 2109 May 6 18:45 INSTALLER_INFO.txt lrwxrwxrwx 1 iobroker iobroker 22 May 6 18:45 iob -> /opt/iobroker/iobroker -rwxr-xr-x+ 1 iobroker iobroker 309 May 6 18:45 iobroker drwxrwxr-x+ 12 iobroker iobroker 4096 May 17 06:10 iobroker-data drwxrwxr-x+ 2 iobroker iobroker 4096 May 17 02:57 log drwxrwxr-x+ 675 iobroker iobroker 32768 May 17 00:30 node_modules -rw-rwxr--+ 1 iobroker iobroker 155 May 6 18:43 .npmrc -rw-rwxr--+ 1 iobroker iobroker 1254 May 17 00:30 package.json -rw-rwxr--+ 1 iobroker iobroker 639347 May 17 00:30 package-lock.json -rw-rwxr--+ 1 iobroker iobroker 5693 Feb 6 15:27 reinstall.js echad@chet:~ $ getfacl /opt/iobroker/INSTALLER_INFO.txt getfacl: Removing leading '/' from absolute path names # file: opt/iobroker/INSTALLER_INFO.txt # owner: iobroker # group: iobroker user::rwx group::rwx group:iobroker:rwx mask::rwx other::rwx echad@chet:~ $
Da sind schon ACLs gesetzt. Ich weiß aber nicht warum.
Warum hat denn die Synology überhaupt Probleme damit? Das dürfte doch mit ext4 als Dateisystem (und aktiviertem ACL) eigentlich gar kein Problem geben.
-
@thomas-braun sagte in Warum nutzt IOBroker ACLs?:
Ich weiß aber nicht warum.
Das war wenn ich mich recht erinnere, um sicher zu gehen, dass beim Erstellen von Ordnern und Unterordnern und Dateien darin, etc. die richtigen Berechtigungen mitkommen. Sowohl automatisch als auch manuell auf der Konsole.
-
@alcalzone Exakt aus dem grund (sagt auch meine Erinnerung). Am Ende etwas was nötig ist damit der iobroker als Runtime user geht aber der User mit echten Usern und ggf root auf der Shell rumturnen kann und am Ende alles zusammen irgendwie tut
AM Ende sollte doch ein "Backup ohne ACL" und "iob fix" nach dem restore das problem vllt lösen?
-
Ich würde empfehlen, um die Fehler zu vermeiden, die Option Weck zu lassen aber Allgemein den Usern immer darauf hinweisen das nach einem restore „iob fix“ ausgeführt werden sollte um eventuelle fehlende ACL‘s zu setzen und einfach auch in die ioBroker Installation zu verifizieren
Gründe warum eine ACL gesetzt ist wurde ja bereits von den Kollegen erklärt (und entspricht auch meiner Erinnerung)
Sicherstellen das der ioBroker User (und damit proces) immer Zugang auf alle ioBroker relevanten Elemente hat
-
@alcalzone said in Warum nutzt IOBroker ACLs?:
Das war wenn ich mich recht erinnere, um sicher zu gehen, dass beim Erstellen von Ordnern und Unterordnern und Dateien darin, etc. die richtigen Berechtigungen mitkommen. Sowohl automatisch als auch manuell auf der Konsole.
Ich muss gestehen dass ich mich mit ACLs nicht gut auskenne und sie immer nur als Problemverursacher kenne bei rsync NFS Sicherung auf eine Synology oder QNAP.
Auch verstehe ich nicht warum man dazu bei IOBroker ACLs nutzt. Das geht bestimmt auch mit normalen Linuxberechtigungen ohne ACLs.
Wer wissen will was raspiBackup ist kann im Netz danach suchen. Es gibt genügend Seiten die beschreiben was das Tool kann und wie man es benutzt.
Der Hinweis nach dem Restore noch ein IOBrokertool laufen zu lassen um die fehlenden ACLs wieder anzulegen klingt für mich gut. Das werde ich auf meiner Webseite beim Thema raspiBackup, Synology und QNAP dokumentieren. Allerdings haben die IOBroker Nutzer bei Tests auch herausgefunden dass ACLs offensichtlich nicht notwendig sind. Deshalb meine Frage dazu hier. Kann man die Entwickler von IOBroker dazu direkt Mal fragen? Wenn ja, wie? Ich habe kein Problem die Frage in Englisch zu stellen wenn es notwendig ist.
-
@framp sagte in Warum nutzt IOBroker ACLs?:
Kann man die Entwickler von IOBroker dazu direkt Mal fragen? Wenn ja, wie?
Hast du bereits. Bis auf einen hier im Thema haben dir nur Entwickler geantwortet
Das du keine Konkretere Antwort bekommen hast weshalb ACLs genutzt werden, liegt sicher daran das die Aufgrund einer Fehlermeldung von Usern hinzugefügt wurden. Und das vermutlich schon vor mehr als 2 Jahren.
Das heist die ACLs sind nicht in jedem Fall Notwendig, werden aber halt in bestimmten Situationen oder auf bestimmten Systemen benötigt. -
@framp sagte in Warum nutzt IOBroker ACLs?:
Das geht bestimmt auch mit normalen Linuxberechtigungen ohne ACLs.
Kann man die Entwickler von IOBroker dazu direkt Mal fragen? Wenn ja, wie?
Naja sagen wir mal so ... Meinereiner und @AlCalzone sind zwei der Core-Devs die sich u.a. "nach bestem Wissen und gewissen" für Installer und Fixer verantwortlich zeigen und damit hast Du oben alle Infos.
Wenn es gerade drin ist, auch wenn ich als "Nicht 100%iger Linux Profi" ggf. nicht die exakten Gründe erklären kann, bin ich mir sicher das es nötig war aufgrund der oben genannten Hintergründe. Da wir aber alle keine Linux Profis sind lassen wir uns sehr gern das Gegenteil beweisen.
Der Code ist offen im GitHub und damit ist sehr transparent was wie getan wird.Aber der relevante Code-Teil und die Ausgaben im Fehlerfall dazu beschreiben an sich recht gut wozu es nötig ist/war aus dem aktuellen Kenntnisstand: Primär https://github.com/ioBroker/ioBroker/blob/master/installer_library.sh#L776-L785
Nötig war der ganze Spass auch (wenn ich meinen dunklen Erinnerungen traue) weil npm bestimmte Dinge auf bestimmte Art und weise tut und das teilweise mega meehhh ist ... und user gern so arbeiten wie Sie es gewohnt sind.
Wenn uns einer mit "Ahnung von Linux" (der sicherstellt das es dann auch mit FreeBSD, macos und unter den anderen Linux Derivaten wie Debian, Rasbian, Ubuntu und so läuft) eines besseren belehrt ist das als PR sehr willkommen. So lange gilt in meinen Augen: "zehntausendfach bewährt" ... und ich persönlich sehe aktuell keinen Bedarf aus meiner Sicht diese Baustelle der "experimentellen natur" (nodejs 12,14,16,18, npm 5.7+, 6 , 7, 8 ) auf zu machen - hoffe das ist nachvollziehbar
Verbesserungen sind aber natürlich immer gern gesehen, dafür sind wir ein Community-getriebenes Open-Source Projekt.
Ingo
-
@apollon77 said in Warum nutzt IOBroker ACLs?:
Naja sagen wir mal so ... Meinereiner und @AlCalzone sind zwei der Core-Devs die sich u.a. "nach bestem Wissen und gewissen" für Installer und Fixer verantwortlich zeigen und damit hast Du oben alle Infos.
Alles klar. Vielen Dank fuer die Info. Ich bin wie gesagt ein absoluter Noob bzgl IOBroker. Da ich wie gesagt immer wieder von IOBroker Nutzern git Issues bzw Kommentare auf meiner Webseite zu dem Thema erhalte wollte ich einfach mal verstehen warum ACLs genutzt werden.
@apollon77 said in Warum nutzt IOBroker ACLs?:
Aber der relevante Code-Teil und die Ausgaben im Fehlerfall dazu beschreiben an sich recht gut wozu es nötig ist/war aus dem aktuellen Kenntnisstand: Primär https://github.com/ioBroker/ioBroker/blob/master/installer_library.sh#L776-L785
Leider steht da nicht exakt warum setfacl notwendig ist
@apollon77 said in Warum nutzt IOBroker ACLs?:
Nötig war der ganze Spass auch (wenn ich meinen dunklen Erinnerungen traue) weil npm bestimmte Dinge auf bestimmte Art und weise tut und das teilweise mega meehhh ist ... und user gern so arbeiten wie Sie es gewohnt sind.
@apollon77 said in Warum nutzt IOBroker ACLs?:
und ich persönlich sehe aktuell keinen Bedarf aus meiner Sicht diese Baustelle der "experimentellen natur" (nodejs 12,14,16,18, npm 5.7+, 6 , 7, 8 ) auf zu machen
Ich will hier die Entscheidung ACLs zu nutzen nicht in Frage stellen. Ich dachte nur es gibt eine fuer mich "einfache" Antwort als nicht ACL Kenner
@apollon77 said in Warum nutzt IOBroker ACLs?:
Verbesserungen sind aber natürlich immer gern gesehen, dafür sind wir ein Community-getriebenes Open-Source Projekt.
Ich bin gerne dabei bei OSS Projekten Beitraege zu leisten - aber das macht nur Sinn wenn ich ein IOBroker Nutzer waere.
@dutchman said in Warum nutzt IOBroker ACLs?:
aber Allgemein den Usern immer darauf hinweisen das nach einem restore „iob fix“ ausgeführt werden sollte um eventuelle fehlende ACL‘s zu setzen und einfach auch in die ioBroker Installation zu verifizieren
Das werde ich machen und auch noch auf diesen Thread verlinken.
Vielen Dank fuer Eure Tipps und Hinweise. Da ich IO Broker Nutzer auf diesen Thread von meiner Webseite hinweisen werde kann es sein dass diese zukuenftig noch weitere Kommentare erstellen. Allerdings denke ich dass der Hinweis von @Dutchman ausreichend sein sollte
-
Leider steht da nicht exakt warum setfacl notwendig ist
As said meine Erinnerung sagt:
Iobroker wird als User iobroker ausgeführt. Daher muss so wie npm gestrickt ist und funktioniert alles sauber dem iob User gehören.
Wenn man jetzt aber npm Befehle als zb pi User ausführt entsteht ein bunter User owner mix. Scheinbar ist npm dann aber leider egal irgendwie wie Gruppen und so gestrickt sind die sowas abfangen sollten und dann knallt es bei npm Installationen von Adaptern mit wilden permission issues. Das mit acl war der einzige Weg den wir gefunden haben mit dem das klappt.
Npm ist bei bestimmten Dingen eine bitch und kochen da ihr süppchen
-
Ps: acl sind drin seit dem großen rewrite am 20.1.2019
-
@apollon77 sagte in Warum nutzt IOBroker ACLs?:
Wenn man jetzt aber npm Befehle als zb pi User ausführt entsteht ein bunter User owner mix.
Noch schlimmer: mit
sudo
oder alsroot
Die ACLs waren der einzige (uns bekannte) Weg sicher zu stellen, dass egal was unbedarfte User da auf der Kommandozeile anstellen oder wie alt die Videotutorials sind, denen sie folgen, dass ioBroker trotzdem normal funktionieren kann.
-
Hi
Da ich beide Seiten ein wenig kenne will ich mich hier trotz Urlaub und damit Einschränkung auf Handyzugriff zu Wort melden.
RaspiBackup ist ein tolles Projekt mit dem man den gesammten pi einfach backuppen kann. (Und auch wieder restaurieren). Iob backup sehe ich als paralelles tool weil iob backup mir bei einem crash (soweit ich weiss) nicht das gesammte rspian incl. Setup des raspi restaurieren kann. Natürlich ist rein für die iob daten iob backup erste wahl. Aber ich hab am pi noch andere dinge laufen die mir rasoiBackup mitsichert. Dank rsync erfolgt das sehr platzsparend am remote nas.
Leider versteht synology keine acls. Das ist v synology so confirmed.
Ich lösche mittlerweile alle acls vorab raus. Bisher hab ich damit keine probleme feststellen können. Die option beim rsync kannte ich bis jetzt nicht, werd mir das in bezug auf raspiBackup ansehen.
Was die acls bei iob sollen wollte ich auch schon fragen. Der Grund wurde hier ja nun erläutert. Im prinzip sollte es auch ohne acls gehen. S bit und group rechte bieten da auch möglichkeiten. Aber ich versteh dass es 1000 Möglichkeiten gibt dann die fileprotections abzuschiessen.
Ich würde hier eher bei raspi Backup ansetzen. Wenn rsync mit -A ausreicht acls zu ignorieren dann könnte man das dort als standard setzen. Das mann bei einem full restore noch dinge nacharbeiten muss sollte jedem klar sein. Ev kann man höchstens überlegen den iob fixer automatisch bei problemen zu starten - also beim start von iob mal nen scan mit find auf falsche owner bzw protections machen und wenn was gefunden wird den fixer laufen lassen. Aber das ist wieder systemabhängig und unter windows andrrs als unter linux. Ergo kann ich nicht sagen ob das denkbar ist.
McM
-
@mcm57 said in Warum nutzt IOBroker ACLs?:
Ich würde hier eher bei raspi Backup ansetzen. Wenn rsync mit -A ausreicht acls zu ignorieren dann könnte man das dort als standard setzen.
Ich habe auch laenger damit gehadert ob nun die rsync Optione -A Standard ist oder nicht. Letztendlich habe ich es doch mit aufgenommen denn raspiBackup soll ein Backup welches eine identische Kopie des aktuellen System ist erstellen und dazu gehoeren auch ACLs. Solange eine lokale Backuppartition oder auch eine nfs3 gemountete Backuppartition (leider nicht bei Synology/QNAP) genutzt wird werden auch ACLs gesichert.
ich denke ich werde eine weitere Webseite bei mir erstellen wo Tipps wie man mit bestimmten Anwendungen mit raspiBackup umgehen soll beschrieben sind. IOBroker ist nicht das einzige Tool was ACLs nutzt und bei Synology und QNAP Probleme macht.
Ich habe wie gesagt keine Ahnung von IOBroker. Was ich jetzt mittlerweile gelernt habe ist dass es wohl Sinn macht die -A Option zu entfernen dass keine ACLs gesichert werden und nach dem Restore noch ein Postprocessingstep durchgefuehrt werden sollte um die ACLs wieder zu setzen. Was sollte ich da genau schreiben? Waere nett wenn ich einen Vorschlag dazu von Euch IOBroker Kennern bekommen wuerde was ich bei mir zum IOBroker dokumentieren sollte.
Da in der neuesten Release 0.6.7 auch Restoreplugins unterstuetzt sind koennte man auch ein Restoreplugin fuer IOBroker schreiben welches den o.g. Postprocessingstep automatisch ausfuehrt
-
@alcalzone said in Warum nutzt IOBroker ACLs?:
Die ACLs waren der einzige (uns bekannte) Weg sicher zu stellen, dass egal was unbedarfte User da auf der Kommandozeile anstellen oder wie alt die Videotutorials sind, denen sie folgen, dass ioBroker trotzdem normal funktionieren kann.
Ich kann mit Euch fuehlen. Wenn man auf andere Tools und deren Befindlichkeiten Ruecksicht nehmen muss ist man froh wenn man das geschafft hat. Darum will ich auch in keiner Weise an den ACLs ruetteln. Ich dachte nur ich koennte von Euch etwas ueber ACLs lernen
-
Kennst du den Artikel von stka?
-
@thomas-braun said in Warum nutzt IOBroker ACLs?:
Kennst du den Artikel von stka?
Stefan kenne ich - aber nicht diesen Artikel. Sehr interessant ist dass man ACLs in einer Datei sichern und wieder restoren kann wenn das Dateisystem keine ACLs unterstuetzt. Das waere z.B. ein Workaround den ich in raspiBackup einbauen koennte. Beim Backup wird eine ACL Sicherungsdatei im Backup erstellt und beim Restore wieder restored. Ich werde mir das mal genauer ansehen.
-
@framp Also effektv sollte der ioBroker fixer (ausgeführt mittels "iob fix") das richteh und der muss nach restore und vor restart ausgeführt werden. Wäre auch das was das Plugin machen müsste.
-
@apollon77 Ok. Dann werde ich das so dokumentieren. Wenn ich dann rausgefunden habe wie man ACLs allgemein mit raspiBackup sichern kann auch wenn das Zielbackupsystem das nicht unterstuetzt und in einem der naechsten Releases implementiert habe nehme ich das wieder raus.
Je nachdem wie lange das dauert und wieviel Zeit ich habe schreibe ich vielleicht bis dahin auch noch ein Restoreplugin. Das ist nur eine Zeile Code. Ist iob bei IOBroker im Path verfuegbar oder muss man das als bestimmter User oder sonstwie speziell aufrufen?