Suche/Hilfe für Bash/Automator Scripting

T

tthaler

Registriert
Thread Starter
Dabei seit
13.02.2012
Beiträge
4
Reaktionspunkte
0
Hallo Leser und Jung-Programmierer

Für meinen Sohn, der sich mittels eines eigenen Startups, aus der Arbeitslosigkeit lösen will, suche ich eine "kleine" aber trotzdem sichere Scripting-Lösung.

Gegeben:
Auf einem OS X Server (Mac Mini 10.10) ist eine Verzeichnisstruktur als Muster-Vorlage für die zu verwendenden Projektverzeichnisse abgelegt. Es gibt verschiedene Benutzer und Gruppen mit natürlich unterschiedlichen Rechten in POSIX und ACL. (Freischaffende Mitarbeiter auf Projektbasis) Jeder Benutzer muss bei einem neuen Projekt dieses Musterverzeichnis mit allen bereits vergebenen Rechten duplizieren und den Namen des Top-Level Projektverzeichnisses umbenennen. Zusätzlich muss er in diesem Top-Level Projektverzeichnis unter Kommentare den Namen des Ersteller, das Datum und ein paar Stichworte zum Projekt angeben.

Bisheriges Vorgehen:
Benutzer muss den Chef bitten, das neue Projektverzeichnis auf dem Server als Administrator zu erstellen. Erst dann kann der Benutzer die Kommentare einfüllen und mit der Arbeit beginnen.
Das Duplizieren wird im Terminal als Administrator und per „sudo“ mit „ditto“ ausgeführt.

Problematik:
Die Benutzer müssen immer zuerst den Chef bitten, dass er das Projektverzeichnis anlegt.
Da z.B. Finanzen, Mitarbeiterbewertungen, Daten der Geschäftsleitung, … auf dem Server abgelegt sind, ist die Weitergabe des Administrator-Login/Passworts nicht möglich.

Wunschvorstellung:
Ein Automator/Apple Script, dass jeder Benutzer OHNE Eingabe eines Administratornamen und entsprechendem Administratorpasswort ausführen kann, das dann auf Basis des angemeldeten Usernamens dessen Real-Namen aus der Server Benutzerdatenbank ausliest, das aktuelle Datum speichert und in einem Textfeld/-abfrage erlaubt, ein paar Projektbezogene Bemerkungen einzugeben. Dies alles würde dann entweder in das Kommentarfeld des Top-Level Projektverzeichnisses oder in eine Textdatei in selbigem abgelegt.
Per System-Dateiauswahl würde der Zielort abfragt und die Aktion ausgeführt.
Damit diese Applikation möglichst flexibel ist, wäre wünschenswert, wenn sich die Applikation das zuletzt als Vorlage verwendet Verzeichnis merken würde, aber man trotzdem entweder durch manueller Auswahl eines anderen Muster-Verzeichnisses oder durch Drag&Drop ein x-beliebiges Muster-Verzeichnis auf diese Art und Weise duplizieren könnte.

Programmiertechnische Knacknüsse:
Abfrage/Auslesen des Benutzers der diese Applikation gestartet hat.
Auslesen des Realnamens des entsprechenden Benutzers.
Damit eine gewisse Sicherheit gewährleistet ist, denke ich, dass das Erstellen eines neuen Benutzers OHNE GUI Anmeldung/Homeverzeichnis, genau NUR für diese Applikation nötig und sinnvoll wäre. Nur wie integriert man dies in die Applikation hinein, so dass NUR beim ersten Start die benötigten Befehle nach Eingabe des bestehenden Administrators/Passwortes ausgeführt werden, aber NICHT mehr, wenn dieser initiale Start bereits ausgeführt wurde.

Wir sind gerne bereit für diese Lösung auch etwas „springen“ zu lassen. Egal ob es dann eine vollwertige Applikation mit Sourcecode ist oder „nur“ für die wichtigsten und relevantesten Teile.
Je nach Aufwand und nach Absprache ist max. (Gesamthaft) ein tiefer 3-stelliger Betrag möglich.

Bedanke mich jetzt schon für alle Rückmeldungen, Info's, Tipps, ...
Schöne Vorweihnachtszeit.
Thomas Thaler
 
Hallo Thomas,

AppleScript und Sicherheit ist leider nicht miteinander vereinbar. Einem normalen Benutzer Administratorrechte über ein Skript zugänglich zu machen ist daher eine schlechte Idee.

Denkbar wäre aber z.B., dass sowohl Benutzer als auch Administrator ein eigenes Skript haben, die miteinander kommunizieren. Der Benutzer würde dann ein Programm ausführen, das die Benutzerdaten usw. im Skript speichert. Beim Administrator läuft ein Dienst im Hintergrund, der regelmäßig prüft, ob sich die Daten geändert haben und erstellt dementsprechend die Verzeichnisse.

Das umzusetzen ist nicht sehr schwierig, vorausgesetzt das funktioniert so, wie ich mir das vorstelle und die Lösung kommt für dich infrage ;)
 
Zurück
Oben Unten