SSH: Berechtigungen / Zugriffsrechte bestimmter Verzeichnisse

  • Ab sofort steht euch hier im Forum die neue Add-on Verwaltung zur Verfügung – eine zentrale Plattform für alles rund um Erweiterungen und Add-ons für den DSM.

    Damit haben wir einen Ort, an dem Lösungen von Nutzern mit der Community geteilt werden können. Über die Team Funktion können Projekte auch gemeinsam gepflegt werden.

    Was die Add-on Verwaltung kann und wie es funktioniert findet Ihr hier

    Hier geht es zu den Add-ons

Status
Für weitere Antworten geschlossen.

big_deal

Benutzer
Registriert
14. Feb. 2020
Beiträge
9
Reaktionspunkte
0
Punkte
1
Hallo zusammen,

ich melde mich innerhalb von meinem Netzwerk von meinem Ubuntu Rechner über SSH an meiner Synology an und möchte mir gerne im Terminal die Berechtigungen/Zugriffsrechte bestimmter Verzeichnisse inkl. Unterordner anzeigen lassen. D.h. welche User & welche Gruppen haben Zugriff/Berechtigungen für die Ordner. Auf der Synology sind erweitere Berechtigungen aktiviert.

Hätte da jemand einen Tipp, wie ich mir das im Terminal über SSH anzeigen lassen kann?

Vielen Dank!
 
du meldest dich mit ssh mit deinem admin-Account (der Syno an), also so was wie "ssh adminaccount@synoip" und Passwort-Eingabe...
Danach musst du noch mal mit "sudo -i" und erneuter Passworteingabe zu root werden...

Nur: die Berechtigungen siehst du doch auch über die GUI...

Stefan
 
Er meint denke nicht die Posix Rechte sondern jene die via synoacltool verwaltet werden.
 
Es gibt zwei Möglichkeiten:
1. ls -le ${path} -> rekursiv: ls -ler ${path}
2. synoacltool -get ${path} -> rekursiv: find ${path} -exec echo {} \; -exec synoacltool -get {} \;

für beide gilt: ${path} muss natürlich durch den gewollten Pfad ersetzt werden.

Die Erläuterung der gesetzten Felder bzgl. der Berechtigungen kann man synoactltool ohne Parameterangabe entnehmen..
 
Zuletzt bearbeitet:
Nur: die Berechtigungen siehst du doch auch über die GUI...

Stefan
Einige Ordner sind für bestimmte User gesperrt, jedoch ist das nirgends festgehalten worden und ich müsste dann alle Ordner durchklicken. Daher die Anfrage ob das evlt. über die Konsole/SSH geht...


Es gibt zwei Möglichkeiten:
1. ls -le ${path} -> rekursiv: ls -ler ${path}
2. synoacltool -get ${path} -> rekursiv: find ${path} -exec echo {} \; -exec synoacltool -get {} \;

für beide gilt: ${path} muss natürlich durch den gewollten Pfad ersetzt werden.

Die Erläuterung der gesetzten Felder bzgl. der Berechtigungen kann man synoactltool ohne Parameterangabe entnehmen..
Danke für den Tipp, genau das habe ich gemeint. Es werden jedoch nur die Ordner in dem definierten Pfad ausgegeben. Gibt es da evtl. auch noch eine Option, dass automatisch alle Unterordner mit aufgelistet werden?

Oder z.B. welche Ordner sind für User xyz gesperrt?
 
... Gibt es da evtl. auch noch eine Option, dass automatisch alle Unterordner mit aufgelistet werden?
Genau dafür habe ich die "rekursiv" Variante mit angegeben: bei den rekursiven Varianten werden neben dem angegeben Verzeichnis auch alle Unterverzeichnisse ausgegeben.
 
Das ist richtig und auch hilfreich, jedoch wird mir alles auf Datei-Ebene aufgelistet und es dauert dementsprechend länger. Ginge die Ausgabe auch nur auf Ordner-Ebene?

Die Auflistung auf Datei-Ebene werde ich mir aber aufheben, werde es sicher mal benötigen :giggle:
 
Man könnte die Variante mir find "feintunen": find ${path} -type d -exec echo {} \; -exec synoacltool -get {} \

Mit -maxdepth n (n=Ganzzahl) könnte man die Tiefe der Unterverzeichnisse beschränken.

So richtig komfortabel wird es damit leider niemals werden...
 
Statt mit -get {} die Berechtigungen auflisten zu lassen, könnte man mit -get-param {} username (username durch den zu überprüfenden Benutzer ersetzen) konkret prüfen, ob ein Benutzer auf ein Verzeichnis (und dessen Unterverzeichnisse) zugreifen kann.

Ich habe glatte vergessen zu erwähnen, dass die Befehle als root abgefeuert werden müssen... admin Benutzer können synoacltool nicht aufrufen bzw. es wird in der Bash-Completion nicht mal aufgeführt.
 
Man könnte die Variante mir find "feintunen": find ${path} -type d -exec echo {} \; -exec synoacltool -get {} \

Mit -maxdepth n (n=Ganzzahl) könnte man die Tiefe der Unterverzeichnisse beschränken.

So richtig komfortabel wird es damit leider niemals werden...
"-type d", jetzt werden nur die Ordner aufgelistet, danke (y)(y)(y)


Statt mit -get {} die Berechtigungen auflisten zu lassen, könnte man mit -get-param {} username (username durch den zu überprüfenden Benutzer ersetzen) konkret prüfen, ob ein Benutzer auf ein Verzeichnis (und dessen Unterverzeichnisse) zugreifen kann.

Ich habe glatte vergessen zu erwähnen, dass die Befehle als root abgefeuert werden müssen... admin Benutzer können synoacltool nicht aufrufen bzw. es wird in der Bash-Completion nicht mal aufgeführt.
Die Prüfung mittels Benutzer funktioniert bei mir irgendwie nicht, oder ich gebe es falsch ein:
Code:
sudo find "Pfad" -type d -exec echo {} \; -exec synoacltool -get-param {} "username"
find: missing argument to `-exec'

Code:
sudo find "Pfad" -type d -exec echo {} \; -exec synoacltool -get-param {} \ "username"
find: missing argument to `-exec'
 
Mein Fehler, es muss find ${path} -type d -exec echo {} \; -exec synoacltool -get-param {} ${username} \; sein.
Das Terminierende \; am Ende ist wichtig.

Die Variablen in ${} müssen natürlich durch die richtigen Werte ersetzt werden. Die {} dagegen sind Platzhalter, die von find je gefundenem Eintrag durch den aktuellen Pfad ersetzt wird. Im Grunde wirken die -exec wie Befehle je Eintrag in einer For-Each-Schleife.
 
Zuletzt bearbeitet:
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat