Forum Synology Synology Chat Berechtigung

Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
  • Autor
    Beiträge
  • #75222

    Abend meine Gaming und Syno Freunde,

    Hier mal eine Anleitung wie man Rechtesystem von Chatsystem der Synology bearbeiten kann.
    Quelle: https://www.synology-forum.de/threads/chat-rechtevergabe.92237/

    Lösung für Rechtevergabe im Synology Chat

    Im Einzelnen können folgende Rechte vergeben werden:

    acl_id acl_name Meine tolle Beschreibung :D
    1 channel_kick *** Rechte für das Entfernen von Personen aus Kanälen
    2 channel_set *** Rechte für das Bearbeiten des Kanalnamens / der Kanalbeschreibung
    3 channel_invite *** Rechte für das Einladen von Personen in Kanäle
    4 channel_join * (keine Ahnung)
    5 channel_create *** Rechte für das Erstellen von Kanälen
    6 channel_close *** Rechte für das Schließen / Löschen von Kanälen
    7 channel_archive *** Rechte für das Archivieren von Kanälen
    8 channel_anonymous ** Wenn man diese Berechtigung nicht hat, scheint die Standard-Konversation “Mein Speicherplatz” nicht verfügbar zu sein und die Navigation sich auf das zu beschränken worauf man auch wirklich Zugriff hat – ähnlich wie die Ansicht eines Gastes. (Bitte mit Vorsicht verwenden)
    9 channel_disjoin *** Rechte für das Verlassen eines Kanals
    10 channel_public *** Rechte für das Einsehen öffentlicher Kanäle
    11 channel_encryption ** (verbuggt)
    50 webhook_create *** Rechte für das Erstellen eines neuen Webhooks
    51 webhook_read *** Rechte für das Verwenden von Webhooks
    100 guest_manage ** Rechte für das Einladen eines neuen Gasts (Gast-Manager) (Diese Berechtigung besser in Ruhe lassen, da sie auch in der Obfläche der Chat Admin Konsole konfiguriert werden kann!)

    *** getestet und funktionsfähig
    ** Achtung
    * ???

    Um die Rechte-Tabellen bearbeiten zu können, ist es wichtig, dass ihr eine SSH-Verbindung/Telnet-Verbindung zu eurer Disk-Station aufbauen könnt und bei besonderen Anforderungen SQL-Kenntnisse habt. Das Grundlegende werde ich allerdings hier erklären:

    1. Wie gerade erwähnt, muss zuerst eine SSH-Verbindung/Telnet-Verbindung (z. B. mithilfe von PuTTY) zur Disk-Station aufgebaut werden. Wichtig ist sich hierbei mit einem Konto der Administratoren-Gruppe (im DSM die Gruppe “administrators”) anzumelden. (Sollten beim nächsten Schritt Probleme auftretten, kann man es mal mit dem User root versuchen)

    2. Danach kann man sich mithilfe des folgenden Befehls als Datenbank-User “postgres” anmelden (das Passwort sollte, standardmäßig das sein, was man beim Einrichten seiner Synology DS angegeben hat):

    Rich (BBCode):
    sudo -u postgres psql
    

    3. Wenn alles geklappt hat, sollte so etwas in der Art vor dem Cursor stehen: “postgres=#” , wodurch man sich auf dem PSQL-Komandozeilen-Interface befindet.

    4. Nun verbinden wir uns mit der Chat-Datenbank:

    Rich (BBCode):
    \c synochat
    

    Folgendes sollte als Bestätigung erscheint worden sein: “You are now connected to database “synochat” as user “postgres”.”

    5. Jetzt können wir bereits Änderungen in der Datenbanktabelle vornehmen. Hierfür verwendet man einfach normale SQL-Statements.

    Für uns ist die Tabelle “acl_permissions” besonders wichtig, da hier den Berechtigungen (in der oberen Tabelle – ^^siehe oben^^) die Bentzergruppen (System-Admin, Normaler-Benutzer, Gast und Gastmanager) zugeordnet werden.
    (Eigentlich werden die Gruppen – wie ich sie genannt habe – in der Datenbanktabelle “Rollen” (role / roles) genannt – also nicht wundern. Ich denke man kann sich besser etwas unter “Gruppen” als unter “Rollen” vorstellen.)

    roles (Gruppen):

    role_id (Guppen-Id) role_name (Gruppen-Name) Beinhaltet?
    1 System-Admin Alle Benutzer die im DSM der Gruppe “administrators” zugeordnet sind.
    2 Normaler Benutzer Alle Benutzer (außer Gäste)
    3 Gast Alle Gäste
    4 Gastmanager Eine Person, die zum Gastmanager ernannt worden ist.

    In der Datenbanktabelle “acl_permissions” wird die “role_id” der “acl_id” (^^siehe Tabelle oben^^) zugeordnet!

    Beispiel 1:

    Vorhaben:
    Ich möchte allen Nicht-Administratoren das Löschen und Archivieren von Kanälen verbieten.

    Theoretische Umsetzung:
    Die Berechtigungen für das Löschen und Archivieren von Kanälen statt allen “normalen Benutzern” nun nur “System-Admins” zuordnen

    Praktische Umsetzung:
    Mithilfe des folgenden SQL-Befehls die der Berechtigungs-Id (acl_id) zugewiesenen Gruppen-Id (role_id) von 2 (wie sie standardmäßig gesetzt ist) auf 1 ändern:

    Für das Einschränken der Löschfunktion:

    Rich (BBCode):
    UPDATE acl_permissions SET role_id = 1 WHERE acl_id = 6;
    

    Für das Einschränken der Archivierungsfunktion:

    Rich (BBCode):
    UPDATE acl_permissions SET role_id = 1 WHERE acl_id = 7;
    

    Das war’s schon. In der Browserversion sollte nun bei Nicht-Admins in den Kanaleinstellungen der Reiter “Kanalverwaltung” verschwunden sein und in der Chat-App ein Fehler beim Löschen oder Archivieren eines Kanals kommen. Wenn nur die Löschfunktion oder die Archivierungsfunktion eingeschränkt worden ist, sollte die jeweilige Option ausgeblendet worden sein statt dem Verschwinden des Reiters “Kanalverwaltung”.

    __________________________________________________

    Beispiel 2:

    Vorhaben:
    Ich möchte allen Nicht-Administratoren das Erstellen von neuen Kanälen und das Ändern von Kanalnamen und Kanalbeschreibungen verbieten.

    Theoretische Umsetzung:
    Die Berechtigungen für das Erstellen und Ändern von Kanälen statt allen “normalen Benutzern” nun nur “System-Admins” zuordnen.

    Praktische Umsetzung:
    Mithilfe des folgenden SQL-Befehls die der Berechtigungs-Id (acl_id) zugewiesenen Gruppen-Id (role_id) von 2 (wie sie standardmäßig gesetzt ist) auf 1 Ändern:

    Erstellen von Kanälen einschränken:

    Rich (BBCode):
    UPDATE acl_permissions SET role_id = 1 WHERE acl_id = 5;
    

    Ändern (Name und Beschreibung) von Kanälen einschränken:

    Rich (BBCode):
    UPDATE acl_permissions SET role_id = 1 WHERE acl_id = 2;
    

    Das war’s schon. Nicht-Admins sollten nun keinen neuen Kanal mehr erstellen können bzw. nicht mehr den Namen oder die Beschreibung eines bereits existierenden Kanals ändern können.

    __________________________________________________

    Um das Ganze vielleicht besser zu verstehen, kann man sich auch einfach mal die ganzen Datenbank-Tabellen anzeigen lassen, um nachvollziehen zu können wie ich auf die Befehle oben gekommen bin:

    Alle Datenbanktabellen in einer Datenbank anzeigen:

    Rich (BBCode):
    \dt
    

    Inhalt einer Datenbanktabelle ausgeben:

    Rich (BBCode):
    SELECT * FROM ;
    

    Tabellenname ohne <>
    __________________________________________________

    Ich hoffe ich konnte hiermit dem einen oder anderen etwas weiterhelfen. Bei Fragen einfach melden. :)

    Viele Grüße
    Philipp

     

    #75223

    Nur Admins dürfen Mitglieder Entfernen: UPDATE acl_permissions SET role_id = 1 WHERE acl_id = 1;

    Nur Admin dürfen Mitglieder Hinzufügen:

    Nur Admin dürfen Kanäle Löschen: UPDATE acl_permissions SET role_id = 1 WHERE acl_id = 6;

    Nur Admin dürfen Archivieren: UPDATE acl_permissions SET role_id = 1 WHERE acl_id = 7;

    #75224

    WEbhooks nur für Admins

    UPDATE acl_permissions SET role_id = 1 WHERE acl_id = 50;

    UPDATE acl_permissions SET role_id = 1 WHERE acl_id = 51;

Ansicht von 3 Beiträgen - 1 bis 3 (von insgesamt 3)
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.
Hit enter to search or ESC to close