UNIX-Experten gesucht

Dieses Thema im Forum "Hardware" wurde erstellt von macLitzi, 18. Februar 2002.

  1. macLitzi

    macLitzi New Member

    Ich möchte einen UNIX-Befehl a la "sudo ipfw add 0 deny...." usw. ;-)
    beim Systemstart ausführen lassen. Wie muss ein Script aussehen, dass der Rechner es automatisch bei jedem Start macht. Muss es dann in /Library/StartupItems/ liegen? Hilfe bitte!!
     
  2. klapauzius

    klapauzius New Member

    .' anfängt (sind normalerweise unsichtbar). Sie heißen z.B. .profile, .login usw. Wenn du deine Shell-Skripte da reinkopierst, werden sie beim Login ausgeführt.
     
  3. macLitzi

    macLitzi New Member

    Hmm, unter X?
    Finde keine .profile oder .login. Bin als root angemeldet und sehe auch alle unsichtbaren Files.
     
  4. MacELCH

    MacELCH New Member

    Sitz grade an 9.22, deshalb kann ich nicht nachschauen.

    Wenn Du Dich ins Terminal begibst als User oder Root mach mal cd und dann pwd. Das ist Dein Heimatordner, darin solltest Du eine .login Datei finden oder .cshrc oder so was ähnliches mit pico kannst Du das File editieren nach Deinen Wünschen.

    Diese Login Datei wird nach der Anmeldung ausgeführt, sprich für jeden User mußt Du das ändern in der entsprechenden Datei, falls Du dies bei jedem so machen willst.

    Gruß

    MacELCH
     
  5. klapauzius

    klapauzius New Member

    Gehe in's Terminal, dann in den Home-Verzeichnis ("cd"), dann gib "ls -a" ein, dann solltest du sie sehen.
     
  6. macLitzi

    macLitzi New Member

    Was mach ich falsch?
    1. Terminal
    2. cd
    3. pwd
    4. sehe /Users/Meinname aber kein .login oder ähnlich (gar nix mit Punkt vorne)
    5. also su und Passwort
    6. wieder ls
    7. sehe Desktop, Library usw. auch .Trash, .ssh usw. aber nix .login
    8. und bin so schlau als wie zuvor :-((
     
  7. klapauzius

    klapauzius New Member

    cd' in den obigen Ordner ./Library/init/tcsh, dann die Datei login.mine editieren
     
  8. Kate

    Kate New Member

    Dein Skript in einen Ordner legen, der einen sinnvollen Namen trägt, und den dann unter system/library/startupitems ablegen. Vorausgesetzt Du kannst etwas mit #!/bin/ anfangen.

    Wenn nicht, wird es lang und kompliziert........
     
  9. RaMa

    RaMa New Member

    ohja bitte bitte lang und kompleziert...

    will auch wissen :))
     
  10. Kate

    Kate New Member

    lang und kompliziert.... lese das Kamasutra!

    will auch wissen........ lese http://wks.uts.ohio-state.edu/

    ich kann hier keinen Shellskript und Unix Kurs machen. Der Admin würde mich hauen und das liest sowieso keiner...

    ganz kurz nur:
    In einem Editor (z.B. BBEdit, oder Pico im Terminal) folgendes eintippen
    #!/bin/sh
    Danach die Befehle, die Du ausgeführt haben willst, so als wärest Du im Terminal und nicht im Editor eintippen.

    Alles unter /system/library/startupitems/ in einem eigenen Ordner mit sinnvollem Namen wiederum unter einem ebenfalls sinnvollen Namen speichern.

    Alles was in der Shellscript Datei steht, wird so ausgeführt, als wäre es im Terminal eingegeben worden. Am besten man arbeitet mal einige Beispiele selber durch. Für Shellscripts gibt es ganz viele Webseiten und FAQs.

    Bei http://www.macosxhints.com gibt es dazu Links und mehr....
     
  11. Haegar

    Haegar New Member

    ...ich bewundere Kate immer mehr!

    (echt ehrlich)

    Gruss Haegar
     
  12. RaMa

    RaMa New Member

    >>lang und kompliziert.... lese das Kamasutra!

    *fg*

    *lol*
     
  13. MacELCH

    MacELCH New Member

    unix wird mir immer suspekter, was hatndas jetzt mit kamasutra zu tun kate ?

    Würde zur Sicherheit mal tcsh verwenden, da die defaultmäßig als Shell für neue User eingestellt ist oder war es eine andere ?

    Auf alle Fälle brauchst Du die gleiche Shell, die Du als Default Shell verwendest.

    In diesem Sinne

    Elevator

    äh ich meinte natürlich

    Gruß

    MacELCH
     
  14. hakru

    hakru New Member

    Hier noch meine 2 Cents zum Thema

    Wenn Du für ALLE USER beim Booten einen "Service" (z.b. Datenbank-Server mysql starten, Firewall ipfw aktivieren etc.) zur Verfügung stellen willst, dann empfiehlt es sich, diese Aufgabe dem "SystemStarter" zu überlassen. Der schaut beim Booten an 2 Stellen nach "StartupItems":

    1. /System/Library/StartupItems -> da machen wir besser nix
    2. /Libray/StartupItems -> den Ordner StartupItems in /Library kannst Du selber anlegen und darin deine eigenen Erweiterungen des Startvorgangs ablegen.

    Die ganze Prozedur besteht aus 3 Schritten - dazu 2 praktische Beispiele:

    1. In Library/StartupItems legst Du dann einen Ordner an, der alles Weitere für einen Service enthält, z.B. database oder firewall -also

    -> /Library/StartupItem/firewall oder
    -> /Library/StartupItem/database

    2. Im Ordner firewall oder database speicherst Du dein Script, das den Service darstellt, also z.B. die Befehle zum Konfigurieren von ipfw oder zum Starten des Datenbank-Servers mysql. Das muss ein richtig ausführbares "Shell-script" sein - mit #!/bin/sh etc ...

    z.B. für den mysql-Start:
    #!/bin/sh
    # script to start mysqld
    cd /usr/local/mysql
    ./bin/safe_mysqld --user=mysqlusername &

    oder für ipfw:
    #!/bin/sh
    # script to start ipfw
    /sbin/ipfw -q /etc/ipfw.conf

    ... hier hab' ich die ipfw-Befehle im separaten File "/etc/ipfw.conf" gespeichert, und die werden durch das Script "geladen"

    Wichtig dabei: der Name des Scripts muss identisch sein mit dem Namen des Ordners, in dem es liegt - also
    /Library/StartupItems/firewall/firewall oder
    /Library/StartupItems/database/database

    3. Anlegen einer sogenannten "StartupParameters.plist" für den service, im selben Ordner wie das ausführbare script.

    Meine StartupParameters.plist für ipfw:

    {
    Description = "ipfw firewall";
    Provides = ("Firewall");
    Requires = ("Network");
    OrderPreference = "None";
    Messages =
    {
    start = "Starting ipfw firewall";
    stop = "Stopping ipfw firewall";
    };
    }

    Meine StartupParameters.plist für mysql
    {
    Description = "mysql server";
    Provides = ("mySQLServer");
    Requires = ("Network");
    OrderPreference = "Late";
    Messages =
    {
    start = "Starting mysql server";
    stop = "Stopping mysql server";
    };
    }

    Das ganze kann man - etwas kryptischer - hier nachlesen ...

    http://developer.apple.com/techpubs/macosx/Essentials/SystemOverview/
    BootingLogin/Customization_Techniques.html (URL ist 1 Zeile!!)

    hakru
     
  15. macLitzi

    macLitzi New Member

    Dank allen, die helfen wollten und geholfen haben. Es funzt einwandfrei .
    Hab den Tipp von Hakru nachvollzogen und voila. Jetzt geht es endlich.

    PS: Mann o mann. Phuu, das war ein schwere Geburt. UNIX wird mir wohl immer ein Buch mit sieben Siegeln bleiben. Gibt's ein gute Buch für sowas: UNIX für Dummies oder so??

    Also: Daaaaaaannnnnnkkkkkkeeeeeee nochmal (in die Runde gerufen)
     
  16. MacELCH

    MacELCH New Member

    Such mal hier mit der Suchfunktion und Du findest eine Menge Büchervorschläge

    Gruß

    MacELCH
     
  17. klapauzius

    klapauzius New Member

    .' anfängt (sind normalerweise unsichtbar). Sie heißen z.B. .profile, .login usw. Wenn du deine Shell-Skripte da reinkopierst, werden sie beim Login ausgeführt.
     
  18. macLitzi

    macLitzi New Member

    Hmm, unter X?
    Finde keine .profile oder .login. Bin als root angemeldet und sehe auch alle unsichtbaren Files.
     
  19. MacELCH

    MacELCH New Member

    Sitz grade an 9.22, deshalb kann ich nicht nachschauen.

    Wenn Du Dich ins Terminal begibst als User oder Root mach mal cd und dann pwd. Das ist Dein Heimatordner, darin solltest Du eine .login Datei finden oder .cshrc oder so was ähnliches mit pico kannst Du das File editieren nach Deinen Wünschen.

    Diese Login Datei wird nach der Anmeldung ausgeführt, sprich für jeden User mußt Du das ändern in der entsprechenden Datei, falls Du dies bei jedem so machen willst.

    Gruß

    MacELCH
     
  20. klapauzius

    klapauzius New Member

    Gehe in's Terminal, dann in den Home-Verzeichnis ("cd"), dann gib "ls -a" ein, dann solltest du sie sehen.
     

Diese Seite empfehlen