Login und Verzeichnis per Scrip anlegen

HaaseD

HaaseD

Aktives Mitglied
Thread Starter
Dabei seit
19.11.2005
Beiträge
562
Reaktionspunkte
115
Hallo. Hoffe das ich das richtige Forum gewählt habe.

Für ein Programm (GPS bt747) soll es ein kleines Script geben welches die Installation auf Macs erleichtert. Dazu ist es notwendig, das einmalig ein Verzeichnis anlegt und die Rechte anpasst werden.

Dafür muss man sich als Admin einloggen und folgende zwei Befehle im Terminal eingeben:

sudo mkdir /var/lock
sudo chmod 777 /var/lock

Gebe ich nur diese zwei Zeilen in ein Script "install.command" ein, werde ich nach einem Passwort gefragt. Für meinen eingeschränkten Benutzer habe ich keines, aber ein einfaches Enter wird nicht akzeptiert. Das Passwort des Admins auch nicht, weil ich ja dessen Benutzernamen nicht vorher eingeben kann. Und der wird ja auf den meisten Macs unterschiedlich sein.

Wenn ich im Script ein login davor setze, kann ich mich zwar einloggen, aber von den zwei Befehlen wird anschließend keiner ausgeführt.

Wie kann ich das Script gestalten, damit man sich a) als Administrator einloggen kann (das muss der Anwender selber machen) und anschließend beide Befehle ausgeführt werden (automatisch)?

Danke für eure Hilfe.
Gruß Dirk
 
Das wird so direkt nicht gehen, da Du mit dem Einloggen oder Anmelden als anderer Benutzer (egal ob das jetzt ein Admin ist oder nicht) eine neue Shell startest. Das Skript läuft aber in der anderen Shell. Das bedeutet, dass die Kommandos des Skriptes erst weiter ausgeführt werden, wenn sich der Benutzer wieder abmeldet und in die alte Shell zurück kommt.

Meiner Meinung nach wäre der sinnvollste Ansatz ganz anders.
Du schreibst Dein Skript, speicherst es schreibgeschützt z. B. nach /usr/local/bin oder/usr/local/scripts (muss man selbst anlegen), wo andere auch keine Dateien löschen oder austauschen können.
Dann machst du (als admin) mit 'sudo visudo' einen entsprechenden Eintrag in /etc/sudoers, der den von Dir vorgesehenen Benutzern erlaubt, das Skript mit den erforderlichen Rechten auszuführen. Das kann auf einer Benutzer- oder Gruppen-Basis geschehen.
Die Benutzer können dann mit 'sudo /usr/local/bin/skript.sh' das Skript mit den vorgesehen Rechten ausführen. Das kann mit oder ohne Eingabe des Passwortes eingerichtet werden.

Wie die Einträge in /etc/sudoers im Detail auszusehen haben, kannst Du der manpage 'man sudoers' entnehmen. Die ist lang, aber unten sind einige sehr anschauliche Beispiele, sodass man nicht unbedingt alles lesen muss. Wenn Du nicht klarkommst, kanst Du ja noch mal fragen.

HTH
Gruß
maceis
 
  • Gefällt mir
Reaktionen: HaaseD
Danke für die ausführliche Erklärung. Aber das macht das ganze ja nicht einfacher. ;-) Wenn manchen schon das Aufrufen des Terminals und die Eingabe der beiden Befehle zu kompliziert ist, dann werden sie durch den obigen Wegen noch mehr verwirrt. Ich komme ja an deren Rechner nicht ran.

Müssen wird das ganze eben etwas anders beschreiben, damit alle damit klarkommen.

Gruß Dirk
 
Es geht also nicht um Benutzer von Rechner, die von Dir verwaltet werden?

In diesem Fall müsstest Du einen richtigen Installer schreiben. Da müssen die Benutzer aber dennoch sich als Benutzer mit admin Rechten authentifizieren.

Andernfalls wäre es einfach.
 
Nein. Mit dem Programm bt747 kann man von GPS-Loggern mit MTK-Chipsatz die Daten herunter laden. Unter anderem auf den Mac. Dazu muss es aber ein Verzeichnis /var/lock geben und das Programm dort drin schreiben können. Warum auch immer, ich bin ja nicht der Programmierer, sondern nur Anwender. Und scheinbar gibt es recht viele Anwender, welche das Programm auf dem Mac einsetzen (wollen), aber mit dem Terminal und den beiden Befehlen nicht klar kommen. Daher wollten wir ein kleines Script schreiben, welches das erledigt.
 
Okay, in diesem Fall würde ich Dir zu einer Lösung mit Applescript raten.
Da besteht die Möglichkeit, Kommandos mit Administrator-Rechten auszuführen und die Authentifizierung über ein Fenster zu machen, in das der Benutzer den Namen und das Passwort eines Adminbenutzers eingeben muss (wie man das ja von diversen Programmen und Installern kennt).

Das geht etwa so:
do shell script "mkdir /var/lock && chmod 777 /var/lock" with administrator privileges
Das Ganze kann/sollte noch erweitert werden, indem z.B. geprüft wird, ob das Verzeichnis schon besteht.
Aber ich denke, das Grundprinzip ist klar.
 
Danke. Dann werde ich mich mal damit beschäftigen.
 
offtopic:

Danke. Dann werde ich mich mal damit beschäftigen.

Hallo HaaseD....

schüchterne Nachfrage von mir zum Thema.
Gibt es diesbezüglich was neues?
Hab nämlich Installations Probleme...
Soll ich´s im Adminbereich (Benutzer=>A) unter Programme installieren und dann als Normaluser (Benutzer=>B) darauf zugreifen?
oder einfach noch warten:D, wenn ich´s nicht zum laufen bringe muß ich den iblue 747 wohl innerhalb der nächsten 10Tage zurückschicken:confused:

Gruß Klaus
 
Zurück
Oben Unten