u1000
Anmeldungsdatum: 2. Oktober 2011
Beiträge: 1850
|
Hi, habe hier ein funktionierendes Shell Script Schnipsel, welche direkt Mails zu meinem email-Provider schicken kann
(mailx aus dem s-nail Paket / Arch Linux) echo "${message}" | LC_ALL=C mailx -:/ \
-S v15-compat -S sendwait -S ttycharset=utf8 \
-S smtp-auth=login -S ssl-verify=strict -S mta="${mta}" \
-S from="${USER}@$(hostname)<${from}>" \
-s "${subject}" -. "${to}" Die Variable ${mta} enthält dabei die vertraulichen Zugangsdaten (username, password, server). Wie kann das Script von jedem lokalen User genutzt werden, auch nobody, aber ohne das jeder die Zugangsdaten einsehen kann? Vielen Dank!
|
Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Mit den Zugangsdaten kann ich Dir nicht helfen, da ich mal annehme das diese für alle gleich sind. Aber das Script würde ich nach /usr/local/bin/ packen. Da ist es für alle zugänglich.
|
u1000
(Themenstarter)
Anmeldungsdatum: 2. Oktober 2011
Beiträge: 1850
|
Ja genau, das Script soll hier liegen /usr/local/bin/ und hat "rx" Rechte für alle, damit kann jeder aber auch die Zugangsdaten im Script einsehen ... ☹
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29041
Wohnort: WW
|
Hallo,
Wie kann das Script von jedem lokalen User genutzt werden, auch nobody, aber ohne das jeder die Zugangsdaten einsehen kann?
IMHO gar nicht. Damit das Skript ausgeführt werden kann, muss der ausführende Nutzer Lese-Rechte auf das Skript haben. Und damit kann er es auch einsehen. Gruß, noisefloor
|
Into_the_Pit
Ehemalige
Anmeldungsdatum: 25. Juni 2008
Beiträge: 9490
Wohnort: Bochum
|
Eine elegante Lösung wäre, wenn die Variable ${mta} aus einer Datei liest. Damit kann man die Daten in den Home-Verzeichnis des Users z.B. ablegen etc.
|
u1000
(Themenstarter)
Anmeldungsdatum: 2. Oktober 2011
Beiträge: 1850
|
@ noisefloor: Das ist ja genau das Problem, für welches ich nach einer Lösung suche ☺ @ Into_the_Pit: Der User kennt die Zugangsdaten nicht, und soll sie auch nicht kennen. Lege ich die Zugangsdaten bei User X ins Verzeichniss kann ein User Y das Script nicht verwenden.
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29041
Wohnort: WW
|
Hallo, @Into the Pit: aber dann muss die Datei mit den geheimen Daten mit den Rechten lesbar sein, mit denen das Skript läuft. Damit ist es für den Nutzer lesbar. @u1000: dafür gibt es keine direkte Lösung. Wenn ein Interpreter (wie die Bash, Python, Perl, ...) involviert ist, muss die Datei lesbar sein. Work-around: Skiprt in eine Binärdatei umwandeln / kompilieren, dann reicht als Rechte 711. Womit andere Nutzer das Skript schon mal nicht ohne weiteres zum Dekompilieren lesen können. Gruß, noisefloor
|
Tronde
Anmeldungsdatum: 23. November 2006
Beiträge: 1640
|
Guten Abend, vielleicht kannst du dein Problem mit Setuid lösen. Du lagerst wie Into_the_Pit beschrieben hat den Inhalt von ${mta} in eine Datei aus, welche nur vom Besitzer des Skripts nicht jedoch vom aufrufenden Benutzer gelesen werden kann. Dies ist nur eine ungetestete Idee, gleichzeitig ist sie denke ich einen Versuch wert. MfG Tronde
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 29041
Wohnort: WW
|
Hallo, so ähnliche Lösungsansätze findet man auch im Netz. Wobei dann direkt zumeist darauf hingewiesen wird, dass das mit einigen Distros nicht funktioniert, weil dort setuid "anders" implementiert ist (wie auch immer das genau gemeint ist). Wäre aber trotzdem unter Ubuntu einen Versuch wert. Gruß, noisefloor
|
Dakuan
Anmeldungsdatum: 2. November 2004
Beiträge: 6345
Wohnort: Hamburg
|
Soweit mir bekannt ist, funktioniert "setuid" bei Scripten nicht.
|
Tronde
Anmeldungsdatum: 23. November 2006
Beiträge: 1640
|
Statt mit setuid könntest du dem Skript den Besitzer root zuordnen und den Anwendern das Recht geben, dieses eine Skript – und nur dieses eine Skript – mit sudo auszuführen. Oder du schreibst einen C-Wrapper für das Skript. Zu Letzterem findest du hier einige Hinweise: https://unix.stackexchange.com/questions/364/allow-setuid-on-shell-scripts 🇬🇧.
|
u1000
(Themenstarter)
Anmeldungsdatum: 2. Oktober 2011
Beiträge: 1850
|
Danke für alle Tipps ! Die Sache mit sudo klingt gut, da könnte man die Zugangsdaten in eine Datei schreiben, die nur von root lesbar ist. Aber auch wenn die "Einfachheit" von mailx aus dem s-nail Packet für Scripte verlockend ist, ggf. ist eine Standart Lösung wie msmtp, ssmtp, opensmpt oder nullmailer besser.
|