Script: Verschlüsselten Ordner via Keyfile (.key) entschlüsseln

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.737
Punkte für Reaktionen
1.646
Punkte
314
Ich fand das in der Schleife ein wenig seltsam, warum da der Servername und der Ordner mit im Pfad waren.
Weil der Urheber dieses Scripts aus den Variablen ${server}${i}part1 den Dateinamen ds218plusTestpart1 gebildet hat.

Wenn ich das richtig sehe, funktioniert das Script doch jetzt nur für Ordner, die alle mit dem gleichen PW verschlüsselt sind, oder?
Korrekt. Du kannst dem Array durchaus mehrere Ordner zuweisen, die über die for-Schleife dann nacheinander abgearbeitet werden, so wie @kev.lin in seinem Script gezeigt hat…
folders=(share1 share2)
… wobei aber immer die gleiche Benutzer/Passwort Kombination verwendet wird. Man könnte das jetzt weiter aufdröseln, indem man für jeden einzuhängenden Ordner eine andere Benutzer/Passwort Kombination heranzieht, aber damit werde ich mich jetzt nicht weiter auseinandersetzen. Alternativ wären separate Scripts ein gangbarer Weg.

Wie es jetzt oben ist funktioniert es...ich weiß aber nicht, ob ich dem so trauen kann.
Daher sollte man versuchen, wie ich Eingangs bereits erwähnt hatte, die Arbeitsweise eines solchen Scripts verstehen zu lernen. Wenn man nicht versteht, was so ein Script tut, nachdem man es auf seine Bedürfnisse angepasst hat, kann man nur hoffen, das alles richtig funktioniert. Ansonsten wird das mit dem
„trauen“ nichts.
 
Zuletzt bearbeitet:

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
312
Punkte für Reaktionen
10
Punkte
18
Aber wenn ich das mit den Variablen ${server}${i}part1 richtig deute, könnten so doch verschiedene Ordner mit verschiedenen Passwörtern genutzt werden - und das sogar von verschiedenen DS-Geräten. Der Dateinamen, in dem das Passwort gespeichert ist, müsste dann lediglich zuerst den Namen der DS, den Namen des jeweiligen Ordners für den das PW bestimmt ist und die Angabe, um welchen Teil es sich handelt haben. Das alles dann in einem Ordner abgelegt und anhand des Dateinamens wird alles zugeordnet.

Ich glaube jetzt blicke ich größtenteils durch...^^
 
  • Like
Reaktionen: Tommes

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.737
Punkte für Reaktionen
1.646
Punkte
314
Ach stimmt ja. Die Variabeln für Benutzer/Passwort beziehen sich im Script ja auf den Mountpoint des einzubindenden Servers, auf dem ein Teil der Secret-Datei liegt und nicht auf den zu entschlüsselnden Ordner. Von daher hast du vollkommen recht, das du anhand der Ordnernamen unterschiedliche Dateinamen für die Secret-Dateien generieren kannst und somit auch mehrere Ordner mit unterschiedlichen Secrets einbinden kannst.
 

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
312
Punkte für Reaktionen
10
Punkte
18
Kleine Rückmeldung. Ich habe das Script jetzt mal mit zwei Ordnern ausprobiert, klappt wunderbar und wie ich es oben beschrieben habe - auch mit zwei verschiedenen Diskstations, die auf das gleiche Secret-Verzeichnis zugreifen. Wichtig ist nur, dass keine Ordnernamen mit Leerzeichen verwendet werden, da die Ordnernamen im Script anhand einer Leerstelle voneinander unterschieden werden - Test 2 würde also wie zwei Ordner mit "Test" und "2" angesehen.
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.737
Punkte für Reaktionen
1.646
Punkte
314
Dann musst du die Ordnernamen in Anführungszeichen setzten, also z.B. so…
folders=("share 1" "share 2")
Das sollte eigentlich ausreichen… so aus der holen Hand geschossen. Ansonsten könnte man die Leerzeichen auch escapen…
folders=(share\ 1 share\ 2)
… oder, oder, oder!
 

Furchensumpf

Benutzer
Mitglied seit
19. Mrz 2011
Beiträge
312
Punkte für Reaktionen
10
Punkte
18
Oder einfach drauf verzichten...^^

Ich habs mal kurz ausprobiert und bei mir hat weder das eine noch das andere funktioniert. Ist aber auch kein Problem, ich habe einen einzieg Ordner mit zwei Wörtern, der muss aber nicht verschlüsselt werden.
 
Zuletzt bearbeitet:

ayron

Benutzer
Mitglied seit
02. Mrz 2018
Beiträge
53
Punkte für Reaktionen
0
Punkte
6
Verstehe ich es richtig, dass das Passwort nicht in die History geschrieben wird, wenn ich das Script im Anwendungsmanager als Startscript einfüge? Bin gerade auf die schnelle gescheitert meine History zu finden...

Ansonsten super Script! Habs gerade getestet und überlege es in der Zukunft einzusetzten, da die VolumeEncryption ja leider nicht die Lösung zu sein scheint auf die ich gehoft habe.
 

stevenfreiburg

Benutzer
Mitglied seit
05. Apr 2022
Beiträge
245
Punkte für Reaktionen
126
Punkte
93
gelöscht, Versuch nr. 165 war erfolgreich, Frage hat sich erledigt.
Werde das Ergebnis in kürze Posten.
 
Zuletzt bearbeitet:

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Versuche es mal so:
Code:
file="/volumeUSB1/usbshare/pw01.txt"
teil2=`cut -b 11-14 $file`

Kleine Empfehlung:
Variablen groß schreiben, so hat man eine bessere Übersicht im Script.
Beispiel:
Code:
FILE="/volumeUSB1/usbshare/pw01.txt"
TEIL2=`cut -b 11-14 $FILE`
 
  • Like
Reaktionen: stevenfreiburg

stevenfreiburg

Benutzer
Mitglied seit
05. Apr 2022
Beiträge
245
Punkte für Reaktionen
126
Punkte
93
Du warst super schnell, das versuche ich auch gleich mal.

Vielen Dank!!!

Mein Scriptschnipsel für den internen Teil hab ich grad zum Laufen gekriegt mit:
file=`cut -b 11-14 //volumeUSB1/usbshare/pw01.txt`

Werde das fertige Script dann posten.
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
Du hast beide Vorgänge in einen Vorgang zusammengefasst. Auch eine Möglichkeit.

Ich bevorzuge die getrennte Lösung. Am Anfang eines Scriptes setze ich die Variablen, z.B. wie hier für einen File. Im Script selber nutze ich dann nur noch die Variablen. Wenn sich in 1-2 Jahren mal die Verlinkungen ändern, muss ich nicht im Script mühsam suchen, sondern ändere nur am Anfang vom Script die Verlinkung.
 

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.737
Punkte für Reaktionen
1.646
Punkte
314
  • Like
Reaktionen: peterhoffmann

stevenfreiburg

Benutzer
Mitglied seit
05. Apr 2022
Beiträge
245
Punkte für Reaktionen
126
Punkte
93
Deine Codezeile funktioniert!
Und vielen Dank für eure Erklärungen.


Ehrlich gesagt, ich weiß (zu) wenig über Programmieren, Schreibweise/n und Varianten, ich hab nur alle möglichen Varianten durchprobiert um endlich ein funktionierendes Ergebnis zu kriegen.

Das "curl" (von hier) stumpf zu kopieren war ein Holzweg, der mich fast zur Verzeiflung getrieben hatte. Für den externen Teil scheint das "curl" nötig zu sein, für den internen aber eben nicht.
So viele Optionen und Fehlermöglichkeiten. Z.B. wann (und wann nicht) "Anführungszeichen" , wann nur 'Zeichen', wann muss man "$(" setzen und wann 'echo....
// oder / oder absolute Pfade usw. usw.
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.737
Punkte für Reaktionen
1.646
Punkte
314
So viele Optionen und Fehlermöglichkeiten…
BASH ist da ziemlich pingelig, gnadenlos und verzeiht dabei auch keine Fehler. Trotz allem lassen sich Ziele dennoch mit unterschiedlichen Schreibweisen erreichen. So kann z.B. dem echo entweder Hochkommas, Backticks oder Anführungszeichen, oder aber auch nichts von all dem folgen. Manchmal kann man das so oder so machen und manchmal muss man das genau so machen.

Würde es einfach gehen, wäre es ja auch langweilig. Bei Python - so habe ich es Irgendwo mal gelesen - sieht das schon wieder anders aus. Da kann quasi jeder tun und lassen was er möchte, so das am Ende nur der Programmierer selbst seinen eigenen Code lesen kann… oder auch nicht :ROFLMAO:

Keine Ahnung ob das stimmt oder nicht, ich beherrsche kein Python
 

stevenfreiburg

Benutzer
Mitglied seit
05. Apr 2022
Beiträge
245
Punkte für Reaktionen
126
Punkte
93
Wem sagst du das; ich hab hier grade fast 200 Logfiles voll mit fehlgeschlagenen Versuchen, nur um wenige Scriptzeilen zum Laufen zu bekommen.

Ich kann zwar Excel vorwärts, rückwärts, seitwärts und manchmal sogar im doppelten Lutz, aber Programmieren kann ich eben nicht (werde ich auch nicht mehr lernen).
Manchmal braucht es aber eben Scripte und "Workarounds". Früher konnte ich dafür Programmierer beauftragen.Heute lebe ich auf der Insel und versuche bestehende Lösungen zu finden ("Scriptbausteine für Doofe"), bei denen nur persönlich notwendige Variablen eingegeben werden müssen.

Wäre es einfach, dann ..... ja genau so stimmt das.
Muss einem aber eben auch "irgendwie" Spaß machen, oder? Masochismus alleine reicht zum Programmieren nicht aus. Man muss schon wirklich heiß auf das funktionierende Ergebnis sein (und/oder so hartnäckig), dass man die Fruststrecken und das ganze "trial and error" eben durchhält.

Aber sag einem privaten NAS Besitzer, der drei kleine Kinder zuhause hat, einen normalen Familienalltag wuppen muss und womöglich noch frisch selbständig ist, er könne sich nebenbei ja mal ein paar Scriptlösungen für sein Synology NAS zusammenbasteln, hahaha.
Wenn der kein IT-ler ist, wo soll der sich denn die Zeit für so etwas rauschneiden?

Das ist übrigens der Grund, weshalb ich heute für einen Bereich im Forum plädiert habe in dem sich funktionierende Scriptbausteine befinden.
 
  • Haha
Reaktionen: Tommes

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.737
Punkte für Reaktionen
1.646
Punkte
314
Zunächst einmal hat Shell-Scripting eher wenig mit höheren Programmiersprachen gemein, weshalb diese Gattung von Menschen i.d.R. nur einen leichten Hang zum Masochismus erkennen lassen. Auch geht es beim Shell-Scripting eher um die Verkettung aufeinanderfolgender Befehle und weniger um abstrakte und komplexe objektorientierte Programmierung.

So gesehen scripten wir nur, weil wir zu faul sind Befehle einzeln durch die Konsole zu prügeln und packen daher sich wiederholende Befehlsfolgen einfach in ein Script. Aber natürlich gilt auch hier der Grundsatz: Wer faul ist, muss auch schlau sein. So ergibt es sich, das man Stunden an einem Script rumbastelt und sich leidenschaftlich mit der Syntax rumschlägt bis es endlich läuft, um am Ende oftmals feststellen zu müssen, das hätte man alles einzel eingegeben, man schon lange fertig mit allem wäre. 🤣

Mein größter Feind ist also meine unstillbare Neugierde, gepaart mit mein Hang zu Perfektionismus und meinem ausgeprägten Helfersyndrom. Daraus ergibt sich eine hohe Leidensfähigkeit, aber auch eine gewisse Verbissenheit es am Ende doch irgendwie hinzubekommen. Einfach nur, weil ich Lust dazu habe und mir das alles, ob man es glaubt oder nicht, wirklich Spaß macht.

Tommes
 

peterhoffmann

Benutzer
Sehr erfahren
Mitglied seit
17. Dez 2014
Beiträge
6.057
Punkte für Reaktionen
1.855
Punkte
254
geschweifte Klammern
Ja, das habe ich auch mal lernen müssen, wo ich mal Variablen in echo-Anweisungen geschrieben habe. Seitdem setze ich in neuen Scripten Variablen konsequent in geschweifte Klammern.
 
  • Like
Reaktionen: Tommes

stevenfreiburg

Benutzer
Mitglied seit
05. Apr 2022
Beiträge
245
Punkte für Reaktionen
126
Punkte
93
Die notwendigen Zeilen des Scripts für meinen Anwendungsfall hab ich nun. Damit muss ich zum Öffnen verschlüsselter Ordner keine Passwörter mehr eingeben und trotz automatischem Einbinden bleiben diese NAS Daten im Falle von Diebstahl oder Festplattentausch (Garantiefall) sicher verschlüsselt.
Das ist eine super galante Lösung!
Meinen großen Dank an alle im Forum, die dies erarbeitet haben!



Gerne würde ich das Script zum Öffnen und Schliessen verschlüsselter Ordner zusätzlich per "Klick" auf dem Desktop ausführen können statt nur über den Aufgabenplaner.
Aber wenn ich das richtig recherchiert habe, geht sowas gar nicht, oder?
Einzige Lösung, die ich gefunden habe, wäre Auslösen des Scripts mittels einer "Triggerdatei", deren Existenz oder Nicht-Existenz von einem Script überwacht wird - wiederum im Aufgabenplaner.
Also muss ich eine Triggerdatei anlegen und den Aufgabenplaner einmal pro Minute checken lassen, ob die Datei existiert?
Oder lässt sich dies einfacher und/oder galanter lösen?

Mit dieser "Triggerdateivariante" müsste es doch eigentlich ebenfalls möglich sein, dass User (eigene) verschlüsselte Ordner einhängen und aushängen können, oder?
Also umgehen, dass mounten und unmounten von verschlüsselten Ordnern "eigentlich" Administratorsache ist.
Was denkt ihr?
 
Zuletzt bearbeitet:

Tommes

Benutzer
Sehr erfahren
Maintainer
Mitglied seit
26. Okt 2009
Beiträge
9.737
Punkte für Reaktionen
1.646
Punkte
314
Oberflächlich betrachtet sollte inotify das Mittel der Wahl sein, möchtest du Dateien und/oder Ordner überwachen. Ich habe über diese Möglichkeit noch nie groß nachgedacht und kann dir daher (noch) keine fundierten Antworten geben. Ich würde mir das bei Gelegenheit selber aber mal genauer anschauen wollen, da dies evtl. die Möglichkeit eröffnen könnte, Scripte als root oder admin auszuführen, ohne einer von beiden zu sein. Aber es ist noch zu früh für mich um so tiefgreifende Möglichkeiten näher zu erörtern… Ich brauch erstmal Kaffee und das in rauen Mengen. Sonst geht da garnichts 🤣
 

stevenfreiburg

Benutzer
Mitglied seit
05. Apr 2022
Beiträge
245
Punkte für Reaktionen
126
Punkte
93
:coffee: volles Verständnis von meiner Seite 👍
meine Kaffee und Matcha Dosis hab ich bereits intus, bin schliesslich 6 Stunden früher hier
 


 

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