Safari per (Shell-) Script bei Anmeldung starten

dylan

dylan

Aktives Mitglied
Thread Starter
Dabei seit
18.12.2002
Beiträge
6.440
Reaktionspunkte
3
Hallo allerseits! :D

Irgendwie "hänge" ich bei einem kleinen Konstrukt. Ich habe das Thema mal unter "Mac OS X" geparkt, weil es im wesentlichen zwar um ein Shell- oder von mir aus gerne auch ein AppleScript geht, aber im Allgemeinen den Startvorgang bei OS X beschreibt.


Aufgabenstellung

Wenn sich ein User am Rechner (MacOS 10.3.9) anmeldet, soll Safari gestartet und eine bestimmte Seite aufgerufen werden.

Problem

Die User-Accounts sind alle "verwaltet", was eine Bearbeitung der Startobjekte a) im Nachhinein durch den User und b) per Remote durch den Admin schier unmöglich macht. Eine Änderung der Startobjekte des Users und eine Änderung der Startseite des Browsers würde übrigens das Problem auch lösen. Vorschläge hierfür machen also den Rest des Textes überflüssig und sind natürlich gerne willkommen.

Lösungsansatz

Ein LoginHook Shell-Script soll Safari starten und die Seite aufrufen, danach aber das Terminal beenden, um dem User das Leben nicht unnötig zu "erschweren". :D

Was bisher getan wurde

1. Ordner "/Library/Management" erstellt

2. Script erstellt:

#!/bin/sh
# Safari starten und eine Seite im internen Netz öffnen

open -a Safari http://10.5.10.10/Pfad/Datei.php

# Terminal beenden
killall Terminal


(Ob die Syntax für einen LoginHook nicht anders sein müsste, weiß ich nicht. Aufklärung willkommen).

Das Script als "scriptname.sh" gesichert und in den Ordner /Library/Management/ gelegt

Es ausführbar gemacht mit:

sudo chmod u+x /Library/Management/scriptname.sh

D. Die Ausführung des Scripts getetest durch:

sudo /Library/Management/scriptname.sh user

(wobei "user" wirklich der Kurzname des Benutzers auf meinen Clients ist. Das hat dann auch einwandfrei geklappt, mit UID ebenfalls)

3. Das LoginHook des loginwindow angepasst durch:

sudo defaults write com.apple.loginwindow LoginHook /Library/Management/scriptname.sh


Wirkung

Bei Ab- und erneuter Anmeldung bzw. bei Neustart des Adminusers und des Clientusers passiert: gar nix. :(

Alternativen

Da ich mir dachte, dass eventuell dem ClientUser das Script nur unter dem environment von root zur Verfügung gestellt wird, wird dem User auch nichts "präsentiert". Beim Adminuser das selbe Ergebnis. Zumindest dürfte aber dann bei diesem Ansatz des Users eigene Bookmarks nicht zu sehen sein und wenn der User mit dieser Instanz von Safari Dateien speichert, er selbst später nicht mehr dran kommen, weil die dann root gehören.

Eventuell könnte das ja dann so aufgerufen werden:

su `whoami` -c /Applications/Safari.app/Contents/MacOS/Safari /Volumes/Festplatte/usr/local/etc/Pfad/website.webloc

wobei `whoami`den aktuellen User geben sollte. Allerdings lädt Safari dann leider die WebSite nicht, sondern präsentiert nur ein leeres Fenster.
website.webloc ist ein Safari-Bookmark File. Sobald ich Safari mittels su starte nimmt es keine weiteren Parameter mehr an. Wenn mann Safari dagegen so startet:

/Applications/Safari.app/Contents/MacOS/Safari $websiteDir &

...dann könnte Safari und $websiteDir laden, aber es wäre wohl erneut nicht das Environment des Users gesetzt.

Und nun die Frage:

Kann mir jemand weiterhelfen? :D

Ich glaube, ich mache einfach nur einen dummen Denkfehler, weil ich mich irgendwo verrannt habe, sehe ich das eigentlich Problem nicht mehr.

Besten Gruß,

Dylan
 
Zuletzt bearbeitet:
dylan schrieb:
[...schnipp...]Wenn sich ein User am Rechner (MacOS 10.3.9) anmeldet, soll Safari gestartet und eine bestimmte Seite aufgerufen werden.[...schnapp...]
...geloescht... nicht die richtige Loesung.

Gruss von IceHouse
 
Zuletzt bearbeitet:
Oh wie frech von mir:

P-U-S-H-!

;)


Ehrenwerte Mods: ist das Thema vielleicht nicht doch besser unter "Unix" aufgehoben?

Schönen Gruß,

:)

Dylan
 
Wenn du es wünscht,
schieb ich dich mal dahin ;)
 
kleiner tipp:
in solchen skripten musst du immer die kommandos, die nicht in der shell eingebaut sind, mit vollen pfad angeben...
/usr/bin/open

ansonsten probier doch einfach mal mit "defaults" den usern eine startup page zu verpassen...
 
dylan schrieb:
Problem

Die User-Accounts sind alle "verwaltet", was eine Bearbeitung der Startobjekte a) im Nachhinein durch den User und b) per Remote durch den Admin schier unmöglich macht. Eine Änderung der Startobjekte des Users und eine Änderung der Startseite des Browsers würde übrigens das Problem auch lösen. Vorschläge hierfür machen also den Rest des Textes überflüssig und sind natürlich gerne willkommen.

Ich habe ein Verständnisproblem:
Was ich nicht verstehe ist ob Du derjenige bist der die Startobjekte verwaltet, wenn ja, wieso ist es schwierig etwas im Nachhinein bzw. Remote zu ändern? Oder bist Du ein verwalteter User der gegebene Einstellungen ändern will?

Davon (Verständnis) abhängig ist ja der Lösungsweg.

Grüße,
Flo
 
Hallo Flo,

ich bin der Admin. Die User-Accounts sind "verwaltet" (System Preferences/Users), aber nicht mobil.

Kennst du einen Weg, die Startobjekte des Users inkl. Startseite* zu ändern? Die anderen Safari-Einstellungen inkl. Bookmarks sollten auf keinen Fall verloren gehen.


*müsste in der com.apple.internetconfig.plist festgelegt sein, eine Änderung dieser hatte bei mir aber ebenfalls keine Auswirkung. (?)

Ich weiß, dass ich irgendwo nur einen kleinen Hänger oder Denkfehler habe, aber irgendwie sehe ich den Wald vor lauter Bäumen im Moment nicht...

Schönen Gruß,
Dylan
 
dylan schrieb:
...Die User-Accounts sind "verwaltet" (System Preferences/Users), aber nicht mobil...

OS X Server? Ich glaube ich stehe auch grad auf dem Schlauch. :)

Grüße,
Flo
 
defaults write com.apple.internetconfigpriv WWWHomePage URL

kann sein, dass du eventuell noch die startpage in safari anschalten musst, falls die auf leer steht oder so...
 
Bin noch am suchen, aber evtl. hilft ja dieser Link:
http://www.macosxhints.com/article.php?story=20050316020738829&query=command+line+startup+items
Ich würde versuchen auf diese Art eine Standard loginwindow.plist zu machen (EDIT: in der dann u.a. der Link zur gewünschten Site drinsteht, der ja dann eh von Safari(?) geöffnet wird, so sollte sich die Startseite(n-problematik) "umschiffen" lassen), und diese dann einfach in die entsprechenden Userverzeichnisse zu kopieren, oder an eine zentrale Stelle, falls alle die gleiche benutzen.

Falls es nicht hilft...weiterdenken... :)

Grüße,
Flo
 
Zuletzt bearbeitet:
lengsel: Ja, OS X Server, aber nicht via OpenDirectory, das würde das Ganze natürlich wesentlich vereinfachen (webloc in die Startobjekte und gut...)

one0eight: Ja, das könnte die Lösung sein. Werde ich nachher mal versuchen.

Vielen Dank,
Dylan

edit: lengsel: ja, das hört sich auch gut an. Werde beide Varianten mal an meinem Test-/Master-Image versuchen.
 
Zuletzt bearbeitet:
...

Hallo dylan,

Ich weiß, dass ich irgendwo nur einen kleinen Hänger oder Denkfehler habe, aber irgendwie sehe ich den Wald vor lauter Bäumen im Moment nicht...

Ich denke unter 10.3.9 gehts anders ...

Gruß Andi
 
Hallo zusammen,

so, konnte mich der Sache mal wieder annehmen – unter dem "daily business" fehlt einem ja leider immer die Zeit...

Also: ich habe es jetzt dann doch lösen können. :)

Der Weg, den ich gegangen bin:

Kein shell script, sondern ein AppleScript daraus gemacht:

Code:
property target_URL : "http://interneIP/Pfad/index.php"

open location target_URL

...als ausführbares Programm gespeichert und per ARD auf die Client-Rechner kopiert.

Dann per:

Code:
defaults write loginwindow AutoLaunchedApplicationDictionary -array-add \ '<dict><key>Hide</key><false/><key>Path</key><string>/Pfad/zur/AppleScript.app</string></dict>'

...während der user angemeldet ist bzw. als ausgewählten User per ARD Shell-Befehl gesendet (ssh ginge auch).

Die Anforderung wurde also erfüllt, die verwalteten User können auf einen Aufwasch nächste Woche nachträglich ein Startobjekt mit Startseite erhalten und das environment der User für Safari wird auch genutzt.

Vielen Dank für die Hilfe und die Anregungen!

Schönes Wochenende zusammen,

:)

Dylan
 
Hallo,

ich brauchte per Applecript (oder was auch immer) nur beim manuellen aktivieren einen Seitenaufruf von www.finetune.com, aber ohne alle Leisten wie Lesezeichen, URL Feld und Statusleiste und mit vordefinierter Höhe und Breite.

Also praktisch: Doppelklick auf das Script > Safari Fenster ohne alles mit den richtigen Maßen

Kann mir da jemand helfen?
 
Zurück
Oben Unten