• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Die Bildungsoffensive hier im Forum geht weiter! Jetzt sollen Kreativität und technische Möglichkeiten einen neue Dimension erreichen. Das Thema in diesem Monat lautet - Verkehrte Welt - Hier geht es lang --> Klick

Script zum Setzen einer Route für Nicht-Admins

Suko4780

Erdapfel
Registriert
07.07.11
Beiträge
5
Hallo!

Da dies mein erstes Posting hier ist bitte ich um etwas Nachsicht wenn ich mich nicht ganz deutlich ausdrücken sollte. Denn in der Mac-Welt bin ich noch ein ziemlicher Newbie.

Durch meinen Job als Admin einer kleinen Firma (bin aber kein gelernter Admin) habe ich rudimentäre Kenntnisse von Netzwerktechniken, habe jedoch noch nie etwas mit Mac's zu tun gehabt. Nun hat einer unserer Mitarbeiter der vorwiegend im graphischen Bereich arbeitet ein neues Macbook Pro bekommen und dies soll nun auch auf gewisse Funktionen in unserem Windows-Netzwerk zugreifen können.

So haben wir z.B. zwei unterschiedliche Router. Router 1 regelt das Surfen im Internet und Router 2 ist dafür zuständig wenn unsere Warenwirtschaftssoftware in einer andern Zweigstelle aufgerufen werden soll. Da dieser Zugang über einen VPN-Tunnel erfolgt gehen die Mitarbeiter dann über Router 2. Dazu musste auf den Rechnern eine permanente Route eingestellt werden (mit Windows auch kein Problem).

Bei dem Macbook Pro bin ich durch Suche im Internet und Recherche mittlerweile auch so weit gekommen, dass ich ein Apple-Script erstellt habe, welches mir diese Route immer wieder beim Start herstellt. Doch dies funktioniert leider nur wenn ich mich mit meinen Admin-Rechten anmelde. Dem Mitarbeiter der dieses Macbook benutzen soll habe ich aber keine Admin-Rechte gegeben und möchte dies auch nicht tun. Wenn ich diesem Benutzer dieses Script nun in den "Autostart" packe, wird es zwar gestartet, der Mitarbeiter muss nun aber einen Benutzernamen und das Passwort eines Admins eingeben damit es ausgeführt wird.

Hier mal der Code des Scripts:

Code:
[B][COLOR=black]
property [/COLOR][/B][COLOR=#408000]userpassword[/COLOR][COLOR=black] : "PASSWORT DES BENUTZERS"[/COLOR]  
[B][COLOR=#0016B0]do shell script[/COLOR][/B][COLOR=black] "sudo route add -net 172.16.128.0 172.16.96.1 -netmask 255.255.255.0" [/COLOR][COLOR=#4415B0]
password [/COLOR][COLOR=#408000]userpassword[/COLOR][COLOR=black] [B]with[/B] [/COLOR][COLOR=#0016B0]administrator privileges[/COLOR]
Wie bekommt man es nun hin das dieses Script auch ohne Passworteingabe bei einem Benutzer läuft der keine Admin-Rechte hat?

Für jegliche Hinweise bin ich dankbar und bitte daran denken das ich in der Apple-Welt noch neu bin :-[

Grüße

Suko
 
Für so etwas ist ein Skript ungeeignet. Die Schokoladenversion in Kurzform:
Anhang anzeigen local.config.addroute.plist.zip

Schritt 1) Entpacken

Schritt 2) Nach /Library/LaunchDaemons/ verschieben
(Authentifizierung erforderlich, dieser Ordner ist absichtlich so restriktiv zugenagelt, und das darf nicht geändert werden.)

Schritt 3) Mittels Terminal (als Admin) mit den nötigen Sicherheitseinstellungen versehen:
Code:
sudo chown root:wheel /Library/LaunchDaemons/local.config.addroute.plist
sudo chmod 644 /Library/LaunchDaemons/local.config.addroute.plist

Schritt 4) Neustart. Fertig, Route ist (und bleibt) etabliert.

Hinweis: Diese plist verwendet die von dir o.a. Werte.
Ist stinknormales XML, d.h.: Kann ganz simpel mit dem "Property List Editor" oder mit jedem beliebigen Plain-Text Editor (zB TextEdit) bearbeitet/angepasst werden.
(In letzterem Fall bitte darauf achten, beim sichern immer nur das Format "reiner Text" und die Kodierung "UTF-8" zu verwenden. Mit dem "Property List Editor" ist das Format "XML Plist" zu verwenden.)
 
Hallo und Danke schon mal für die Hilfe!

Leider führt es aber noch nicht zum Erfolg. Ich habe die Datei in den genannten Ordner verschoben. Dies ging aber nicht und ich musste erst den Ordner für meinen Benutzernamen (mit Admin-Rechten) berechtigen. Dann konnte ich die Datei hineinlegen.

Anschließend habe ich die beiden Befehle im Terminal ausgeführt. Was macht denn der erste Befehl? Der zweite ändert ja die Rechte an der Datei wenn ich das richtig interpretiere. Wenn ich den ersten Befehl eingebe, kommt danach eine Passwort-Abfrage. Dort gebe ich dann das Passwort meines Accounts ein und dann springt er wieder in die Eingabeaufforderung.

Wenn ich danach aber neu starte, ist die Route trotzdem nicht gesetzt, weder unter meinem Account noch unter dem des Mitarbeiters.

Eine Idee was ich falsch gemacht haben könnte? Ich habe die plist-Datei nicht geändert.

Grüße
 
Dies ging aber nicht und ich musste erst den Ordner für meinen Benutzernamen (mit Admin-Rechten) berechtigen. Dann konnte ich die Datei hineinlegen.
Dann wird der Ordner komplett ignoriert und funktionslos.
Was war an "das darf nicht geändert werden" so unklar?

Bei solchen Aktionen fragt der Finder nach einer zusätzlichen Identifikation, das verschafft dem Admin auch ohne Eingriffe die nötigen Rechte - einmalig.
Dann darfst du das jetzt eben noch wieder reparieren:
Code:
sudo chmod -RN  /Library/LaunchDaemons
sudo chown -Rh root:wheel  /Library/LaunchDaemons
sudo chown root:admin  /  /Library
sudo chmod 1775  /  /Library
sudo chmod 755  /Library/LaunchDaemons
sudo chmod 644  /Library/LaunchDaemons/*
 
Bei solchen Aktionen fragt der Finder nach einer zusätzlichen Identifikation, das verschafft dem Admin auch ohne Eingriffe die nötigen Rechte - einmalig.
Genau das hatte ich erwartet, war aber leider nicht so! Ich konnte sie partout nicht verschieben da eine Abfrage nicht kam. Hatte aber auch lange überlegt ob ich die Rechte ändern sollte - kam aber anders nicht mehr weiter. Stecke die Kritik wie ein Mann aber ein ;-)

Okay, ich versuche das mit der Reperatur gleich mal.

Danke trotzdem für die weitere Hilfe :-)
 
So, habe die Befehle nun mit meinem Account (ich habe Admin-Rechte) genau so durchgeführt. Leider immer noch ohne Erfolg :-(

Nach dem ersten Befehl kommt im Terminal die Nachfrage nach einem Passwort. Da habe ich dann das Passwort meines Accounts mit dem ich angemeldet war eingegeben. Ist das richtig? Zumindest sprang er nach Eingabe dieses PW in die nächste Zeile ohne Fehlermeldung.

Wenn ich mir jetzt die Rechte des Ordners LaunchDaemons anschaue sind dort folgende Eintragungen zu finden:

System - Lesen/Schreiben
wheel - Nur lesen
Everyone - Nur lesen

Nun kann aber auch ich die Route nicht mehr nutzen. Zuvor klappte das Script ja zumindest bei meinem Account ...

Grüße
 
Naja, da hast du allerdings recht. Willkommen in der Wunderwelt der volldynamischen Netzwerkkonfiguration, wo alle manuellen Eingriffe bei nächstbester Gelegenheit vom gutmeinenden Systemdienst gleich wieder plattgebügelt werden. Die "händisch" gesetzte Route verfällt sofort wieder, sobald sich am Status irgendeines Netzwerkgeräts was signifikantes ändert. Das ist der kleine Haken an der Sache.

Versuchs mit dieser neuen Fassung. Die arbeitet jetzt als eine Art "Hintergrunddienst", und sobald sich am Netzwerkstatus irgendwas wesentliches tut (zB ein PPP-Dial-In/Out, LinkChange an Ethernet oder AirPort...) und der Systemkonfigurator deine Route wieder annuliert, wird sie einige Sekunden danach wieder neu gesetzt.
Ich hab die Zeitspanne bis zur Rekonstruktion recht tolerant bei ca 15 Sekunden belassen um auch "lahmarschige" PPP-Einwahlverbindungen (zB per UMTS/Tethering) mitnehmen zu können. Solltest du besser so belassen, sonst schlägt das setzen der Route gern mal fehl.
Falls du einen WLAN-Router mit automatischer Einwahl und Verbindungstrennung benutzt, stell den auf mindestens 2-3 Minuten bis zur Trennung, sonst wird das ganze recht bald Zicken machen.
Bei Änderungswünschen einfach mit TextEdit öffnen, die wesentliche Zeile ist nicht zu übersehen. Weitere Routen setzen ist damit auch kein Problem, einfach diese eine Zeile entsprechend vervielfältigen.
Noch Fragen?
Anhang anzeigen local.config.addroute.plist.zip
 
Sooo, dieses mal habe ich die Datei unter dem Account der Mitarbeiterin (ohne Admin-Rechte) in den Ordner LaunchDaemons verschoben und nun kam auch eine Abfrage nach einer Berechtigung.

Um es kurz zu machen - Es hat alles super geklappt :-D

Vielen Dank noch mal für die Hilfe!

Grüße

Michael