Knobelaufgabe für UNIX Könner (und Hilfe für einen N00b)

Dieses Thema im Forum "Unix Derivate & sonst. Unix Fragen" wurde erstellt von seikon, 15.03.2006.

  1. seikon

    seikon Jungspund

    Dabei seit:
    15.03.2006
    Beiträge:
    16
    Zustimmungen:
    0
    Hallo liebe Unix Gemeinde.
    Ich darf mich mal als totaler Unix N00b outen, und hoffe hier wird mir geholfen. Und zwar versuche ich gerade ein kleines Programm zu schreiben mit dem ich einige Vorgänge automatisieren kann, die ich sonst immer mühsam von Hand eintippen muss.

    Und zwar geht es hierbei um ein Netzwerk, bestehend aus 9 Clients. Alle Clients haben die selben Rechte. Es gibt also keinen Client mit Administratorrechten.
    Bei den Usern die wir verwenden handelt es sich um netzwerkseitige Profile. Ich kann mich also auf jedem Client mit jedem User anmelden. So weit so gut. An 8 der Arbeitsplätze sitzen täglich Prüflinge und erstellen dort mit einem CAD Programm Files. Damit sich nachfolgende Prüflinge nicht die Files vom Vortag ziehen können, werden täglich die Verzeichnisse geleert. Die User speichern alle ihre Files in ein Verzeichnis, das bei uns /home/trext01-09 (die Nummer richtet sich nach dem User Log In den der Teilnehmer benutzt) heisst.
    Damit ich nicht an jede Workstation einzeln rennen muss, logge ich mich übers Netzwerk auf den einzelnen Workstations ein, und lösche dann die Files. Ich benutze dafür den Befehl

    exec login trextXX.

    Danach fragt er ja logischerweise nach dem Passwort für diesen User. Auch das gebe ich von Hand ein. Dann kann ich mit dem rm Befehl die entsprechenden Files löschen. Das muss ich nun aber leider mühsam für jeden einzelnen User machen. Und genau diesen Vorgang möchte ich gerne mit einem kleinen *.sh File automatisieren. Sodass ich nur das Programm ausführe, und er sich dann der Reihe nach bei allen Usern einlogged und die Files (mit einer bestimmten Endung) löscht. Und ganz zum Schluss soll er dann automatisch noch ein anderes *.sh file starten, mitdem ich mir auf einen Schlag den Inhalt aller /home Verzeichnisse von allen Usern anzeigen lassen kann.
    Leider weiss ich nicht recht, wie man das mit der User und Passwortabfrage realisieren kann. Also wenn jemand weiss, wie ich das schreiben kann immer her damit. Und bitte verständlich, ich kann Unix nämlich so gar nich :). Hier also noch mal, was ich automatisiert haben will in Kurzfassung:

    z.B.

    exec login trext02
    #Dann soll er automatisch das Passwort für den User eingeben#
    rm *.CAT*
    exec login trext03
    #Dann soll er automatisch das Passwort für den User eingeben#
    rm *.CAT*
    .
    .
    .
    bis trext09 muss das so gehen. Und dann soll er eine Datei ausführen, die liste.sh heisst


    Ich glaube (weiss es also nicht;)), dass er die Usereingabe und Passwortabfrage nicht so im Hintergrund machen kann. Es müsste also möglich sein, ihm zu sagen, dass er das im Terminalfenster einfach auf den Bildschirm schreiben soll, und dann quasi automatisch mit Enter bestätigen.
    Ich hoffe jemand kann mir dabei helfen. Ich will dann einfach diese Datei ausführen, und dann soll er von alleine bei allen Usern das /home Verzeichnis von *.CAT* files leeren.



    Danke schon mal. Ich hoffe es war einigermaßen verständlich

    Gruß Tanja
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. #2 Lord Kefir, 15.03.2006
    Zuletzt bearbeitet: 15.03.2006
    Lord Kefir

    Lord Kefir König

    Dabei seit:
    10.06.2004
    Beiträge:
    944
    Zustimmungen:
    0
    Geht das nicht einfacher?!
    1. Cronjob einrichten...
    ...oder...
    2. die Dateien automatisch beim Login löschen (~/.bash_profile)...
    ...oder...
    3. automatisch via ssh einloggen.

    Mfg, Lord Kefir
     
  4. seikon

    seikon Jungspund

    Dabei seit:
    15.03.2006
    Beiträge:
    16
    Zustimmungen:
    0
    Erm ich habe keine Ahnung ob das noch einfacher geht. Deswegen frag ich ja hier :D .
    Also beim login löschen soll es auf gar keinen Fall. Das soll schon was ganz bewusstes sein, da auch mal Fremde sich an den Kisten einloggen, und es sollen keine Daten gelöscht werden, die noch nicht gesichert sind.
    Das dumme ist halt, dass ich sonst nur Leserechte auf den anderen Usern habe. Um also Daten da zu löschen, muss man sich schon auf irgendeine Art und Weise via Netz einloggen. Ausserdem sollte es was sein, wo man mit Wildcards arbeiten kann. Er soll dann alles was *.CAT* ist löschen. Und das ganze eben automatisch. Er soll also alle User von 02-09 abarbeiten. Wenn du also was weisst, wie man das lösen kann (evtl auch einfacher) bitte posten. Aber mit Abkürzungen wie ssh kann ich leider nichts anfangen. Ich fange gerade erst an mit Unix. Bin schon froh, dass ich weiss wie man einen Prozess über Netzwerk auf einem anderen Client abschießt. Danach hörts dann aber mit meinem Wissen auch schon auf.
     
  5. #4 Lord Kefir, 15.03.2006
    Lord Kefir

    Lord Kefir König

    Dabei seit:
    10.06.2004
    Beiträge:
    944
    Zustimmungen:
    0
    Eigentlich bietet sich für so etwas ein Cron-Daemon an - mit ihm lassen sich Befehle bzw. Scripte zeitgesteuert ausführen. Einfach auf jeder Maschine ein 'find /verzeichnis/ -iname "*.cat" -exec rm {} \;' ausführen und die Sache ist gegessen...

    Von was für einem *nix reden wir hier eigentlich?!

    Mfg, Lord Kefir
     
  6. seikon

    seikon Jungspund

    Dabei seit:
    15.03.2006
    Beiträge:
    16
    Zustimmungen:
    0
    Keine Ahnung was das für ein Unix ist.

    Und dieses Dings was du Beschreibst (wovon ich immer noch nich wirklich ne ahnung habe) muss ich auf jeder Workstation, also unter jedem Benutzer hinterlegen? In welchem Verzeichnis dann? Und kann ich das dann sozusagen von einer Alfa-Workstation aus starten, oder muss ich an jeden Platz rennen?
     
  7. #6 old-dad, 15.03.2006
    old-dad

    old-dad old-dad

    Dabei seit:
    25.06.2005
    Beiträge:
    85
    Zustimmungen:
    0
    Ort:
    mit Blick aufs Meer
    hi,

    also ich würde sowas als root tun, oder steht dem was im wege?
     
  8. seikon

    seikon Jungspund

    Dabei seit:
    15.03.2006
    Beiträge:
    16
    Zustimmungen:
    0
    Das sind alles Trainingsuser (auch mein Platz). Ich habe keine Adminrechte. Und es soll so sein, dass nur ein einziger User angemeldet sein muss.
    Das einfachste wäre wohl, wenn man ein Skript schreiben kann, dass automatisch das im Terminal ausgibt, was ich normal von Hand eintippe. Sozusagen ein Schreib Bot.
     
  9. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Dann wuerde ich die Dateien einfach beim Login loeschen lassen. Dazu kann man die Befehle zum Loeschen einfach ans Ende der Konfiguration der Shell anhaengen und fertig. Evtl. noch ne kleine if-Bedingung drumrum basteln, die ueberprueft, ob der Login vormittags ist, damit nicht beim Login nach der Mittagspause die Dateien vom Vormittag geloescht werden. ;)
     
  10. #9 Nemesis, 16.03.2006
    Zuletzt bearbeitet: 16.03.2006
    Nemesis

    Nemesis N3RD

    Dabei seit:
    28.01.2005
    Beiträge:
    2.165
    Zustimmungen:
    0
    warum mit der kirche ums dorf?
    wenn du nicht weisst was ein cronjob ist, dem kann abgeholfen werden: *klick*
    wenn du keine rootrechte auf den kisten hast, dann wird das wohl auch seinen grund haben, ansonsten, sag dem admin, der auch rootrechte hat, er soll dir den cronjob einrichten.
    is doch viel einfacher als da irgend ein rumgefrikkle zu machen, dass dann erst nicht richtig funktioniert ;)
     
  11. #10 maxix, 16.03.2006
    Zuletzt bearbeitet: 16.03.2006
    maxix

    maxix Eroberer

    Dabei seit:
    16.03.2006
    Beiträge:
    74
    Zustimmungen:
    0
    Hallo,
    erst mal sollte das euer Admin einrichten.
    Ich würde auf den Clients sshd aktivieren. Und dann eine Passwort authentifizierung über Schlüssel. Howto: http://www.debianhowto.de/de:howtos:woody:ssh Abschnitt: Login ohne Kennwort-basierte Authentifizierung

    Danach kannst Du einfach ein Script machen das eine SSH Verbindung zu dem Client aufbaut. (Das geht dann OHNE eine Passwortabfrage, dies ist dann schon in den SSH Keypaaren verfrühstückt)

    Dann den obigen Find Befehl oder Deinen löschbefehl einbauen. Das ganze mit einer Schleife neun mal machen lassen. Fertig.

    Ach ja, das kannst Du dann natürlich wie die Vorredner vorgeschlagen haben in einen Cronjob packen.

    Gruss
    maxix
     
  12. mcas

    mcas Routinier

    Dabei seit:
    29.12.2005
    Beiträge:
    398
    Zustimmungen:
    0
    Hallo zusammen,
    wenn mich nicht alles täuscht kann man doch auch für die einzelnen User einen Cronjob in der jeweiligen Crontab einrichten. Somit muss da nicht der Admin einbezogen werden und es wäre ebenfalls eine saubere Lösung.
    Gruss
    mcas
     
  13. #12 Lord Kefir, 16.03.2006
    Lord Kefir

    Lord Kefir König

    Dabei seit:
    10.06.2004
    Beiträge:
    944
    Zustimmungen:
    0
    Standardmäßig kann aber nur root Cronjobs einrichten...

    Mfg, Lord Kefir
     
  14. theton

    theton Bitmuncher

    Dabei seit:
    27.05.2004
    Beiträge:
    4.820
    Zustimmungen:
    0
    Ort:
    Berlin, Germany
    Das wiederum kommt ganz auf die Distro an. Bei den meisten Distros kann per Default erstmal jeder User seine eigenen Crons haben. Kannst ja gern mal tiger auf verschiedenen frisch installierten Distros laufen lassen. Der meckert dann naemlich gleich rum, dass jeder User Crons einrichten darf.
     
  15. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  16. #14 YellowSPARC, 20.03.2006
    YellowSPARC

    YellowSPARC Doppel-As

    Dabei seit:
    12.12.2004
    Beiträge:
    113
    Zustimmungen:
    0
    Ort:
    Berlin
    Mal andersherum aufgezaeumt: Warum mountet ihr die Userverzeichnisse nicht einfach per NFS von einem einzigen Rechner, der ein /export/home Verzeichnis mit folgender Struktur hat:

    /export/home/trext01
    /export/home/trext02
    /export/home/trext03

    Dazu muessen je nach Unix mit dem richtigen Tool bzw in die richtige Datei (wenns Solaris waere /etc/dfs/sharetab - sonst meistens /etc/exports) die Eintraege fuer die Clients angelegt werden, zB

    /export/home/trext01 trext01(rw,all_squash,anonuid=150,anongid=100)
    /export/home/trext02 trext02(rw,all_squash,anonuid=150,anongid=100)
    .
    ...
    /export/home/trext09 trext09(rw,all_squash,anonuid=150,anongid=100)


    und beim reboot am naechsten Tag laeuft auf dem Server (das braucht kein Enterprise-System zu sein, ein aelterer Lunix-PC reicht ueberall hin )
    ein Cronjob von root oder user 150, group 100, der die Verzeichnisse leert.

    Ohne root/bzw Filesys-Admin Zugang ist _alles_ sinnlos, weil ein User, der minimale Hackertalente hat, sowohl die Shell anhalten, als auch den Cronjob loeschen, als auch die Login-Shell umgehen wird - ist ja auch direkt eine Aufforderung, wenn der das Script laufen sieht, das ihn vom blauen Nachmittag trennt :devil:
    Verbessert mich, falls ich mich taeusche, aber in $ANY_FIRMA wird sich ein Admin, der das anders loest, allerhand Fragen bzgl Klammerbeutel und Puder gefallen lassen muessen.
     
  17. #15 SierraX, 20.03.2006
    SierraX

    SierraX Mitglied

    Dabei seit:
    10.07.2004
    Beiträge:
    46
    Zustimmungen:
    0
    Mal davon abgesehen, das die Gute Frau gesagt hat, das sie keine Admin rechte hat, musst du auf jedem Prüflings-Rechner erstmal einen NFSD starten und hast dann schonmal min. 2 Ports auf die sie lauschen.

    Idealerweise sollte Sie aber dem Admin sagen was sie haben und machen will, damit dieser ein Script für sie erstellen kann.

    Ohne zu wissen um was für ein Unix und Shell es geht mit befehlen und Fachbegriffen um sich zu werfen ist nicht sonderlich hilfreich
     
Thema:

Knobelaufgabe für UNIX Könner (und Hilfe für einen N00b)

Die Seite wird geladen...

Knobelaufgabe für UNIX Könner (und Hilfe für einen N00b) - Ähnliche Themen

  1. SAMBA für Windows10 Domäne einrichten

    SAMBA für Windows10 Domäne einrichten: Hallo, ich habe letztes Wochenende verzweifelt versucht, Samba auf meinem Server einzurichten, daher versuche ich aktuell meinen Fehler zu...
  2. Empfehlung für Server Distribution

    Empfehlung für Server Distribution: Hallo, ich habe hier zu Hause einen kleinen Heimserver, auf welchem ich ein paar Daten für den Zugriff im Haus, einen kleinen Web Service für...
  3. Kleinigkeiten für Euch, mich nicht :-) pkg_add ; DVD rw mounten

    Kleinigkeiten für Euch, mich nicht :-) pkg_add ; DVD rw mounten: Hallo, ich habe 2 Problemchen. Ich kann nichts mehr installieren. Ich brauche aber unbedingt ein Brenn-Programm. Ein schönen Partitionierer usw....
  4. Welche Distri für Programming from the Ground Up

    Welche Distri für Programming from the Ground Up: Hallo! Ich möchter gerne das Buch Programming from the Ground Up durcharbeiten. savannah_nongnu_org/projects/pgubook/ Da geht es um Programmieren...
  5. Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen

    Zeichen an Zeilenanfang für bestimmten Zeilenbereich einfügen: Hallo, ich würde gerne in einem Textdokument, z.B. von Zeile 10 - 18, an den Zeilenanfang ein # einfügen. Habe mir schon diverse Seiten zu SED...