mateusz232 0 Zgłoś post Napisano Sierpień 21, 2008 Witam Mam do wykonania pare skryptow (oczywiscie zaplace ) czy ktos podjął by sie tego ? Prosze pisac na priv Udostępnij ten post Link to postu Udostępnij na innych stronach
matt 0 Zgłoś post Napisano Sierpień 21, 2008 Jesli chodzi o skrypty bash to zaproszam na PW po wiecej informacji Udostępnij ten post Link to postu Udostępnij na innych stronach
lukaschemp 27 Zgłoś post Napisano Sierpień 22, 2008 Witam Mam do wykonania pare skryptow (oczywiscie zaplace ) czy ktos podjął by sie tego ? Prosze pisac na priv Możesz napisać w jakim języku te skrypty mają być? Udostępnij ten post Link to postu Udostępnij na innych stronach
verde 4 Zgłoś post Napisano Sierpień 22, 2008 w "linxowym" :) Udostępnij ten post Link to postu Udostępnij na innych stronach
lukaschemp 27 Zgłoś post Napisano Sierpień 22, 2008 Masz to poczucie humoru. Udostępnij ten post Link to postu Udostępnij na innych stronach
mateusz232 0 Zgłoś post Napisano Sierpień 22, 2008 przykladowe zagadnienie jakie trzeba rozwiazac: Wykorzystując shell i AWK napisać skrypt make_shadow_new.sh wykonujący następujące zadanie: W bieżącym katalogu wywołania skryptu znajdują się pliki passwd.new i shadow, o formatach zgodnych ze specyfikacją formatów passwd i shadow, którą można znaleźć w manualach systemowych. W przypadku, gdy któregoś z tych plików brak, skrypt przerywa działanie i sygnalizuje błąd; Dla każdego rekordu z pliku passwd.new posiadającego swój odpowiednik w pliku shadow, skrypt przepisuje rekord z shadow bez zmian do pliku shadow.new; Dla każdego rekordu z pliku passwd.new nie posiadającego odpowiednika w pliku shadow, skrypt tworzy odp. rekord w pliku shadow.new, umieszczając w polu przeznaczonym na zakodowane hasło konta znak gwiazdki (*), pozostałe pola (oprócz pola przeznaczonego na login) pozostawiając pustymi; Rekordy z pliku shadow nie posiadające odpowiedników w pliku passwd są w shadow.new pominięte; Kolejność rekordów w shadow.new powinna być zgodna z ich kolejnością w passwd.new. Udostępnij ten post Link to postu Udostępnij na innych stronach
przemoc 0 Zgłoś post Napisano Sierpień 22, 2008 Wykorzystując shell i AWK napisać skrypt make_shadow_new.sh wykonujący następujące zadanie: W bieżącym katalogu wywołania skryptu znajdują się pliki passwd.new i shadow, o formatach zgodnych ze specyfikacją formatów passwd i shadow, którą można znaleźć w manualach systemowych. W przypadku, gdy któregoś z tych plików brak, skrypt przerywa działanie i sygnalizuje błąd; Dla każdego rekordu z pliku passwd.new posiadającego swój odpowiednik w pliku shadow, skrypt przepisuje rekord z shadow bez zmian do pliku shadow.new; Dla każdego rekordu z pliku passwd.new nie posiadającego odpowiednika w pliku shadow, skrypt tworzy odp. rekord w pliku shadow.new, umieszczając w polu przeznaczonym na zakodowane hasło konta znak gwiazdki (*), pozostałe pola (oprócz pola przeznaczonego na login) pozostawiając pustymi; Rekordy z pliku shadow nie posiadające odpowiedników w pliku passwd są w shadow.new pominięte; Kolejność rekordów w shadow.new powinna być zgodna z ich kolejnością w passwd.new. AWK jest w tym przypadku zbędny. Wyszłoby coś na kształt: #!/bin/bash # (C) Copyright 2008 przemoc <przemoc@...> # License: donate-my-paypal-account-before-use PASSWDNEW='./passwd.new' SHADOW='./shadow' SHADOWNEW='./shadow.new' for FILE in "$PASSWDNEW" "$SHADOW"; do if ! [ -r "$FILE" ]; then echo "CAUTION: $FILE doesn't exist or you don't have permission to read it." exit 1; fi; done if ! echo -n > "$SHADOWNEW"; then echo "CAUTION: $SHADOWNEW cannot be created or you don't have permission to write it." exit 1; fi IFS=$'\n' for LINE in $(cat "$PASSWDNEW"); do NAME=${LINE%%:*} if ! grep "^$NAME:" "$SHADOW" >> "$SHADOWNEW"; then echo "$NAME:*:::::::" >> "$SHADOWNEW"; fi; done Co do licencji: wystarczy symboliczne euro Oczywiście ten grep nie jest zbyt elegancki, ale przy nieogromnych plikach będzie dawał radę. [OFF-TOPIC] Rozwiązanie poprawniejsze z trzymaniem w pamięci również shadowa i usuwaniem spasowanych linii (nie możemy zakładać porządku analogicznego z passwd.new) byłoby nieco dłuższe i już lepiej (ze względów wydajnościowych) wypadałoby je zrobić w przyzwoitym języku skryptowym jak perl, którego dotychczas jakoś nigdy nie udało mi się poznać, no może poza podstawami i perl-re, co jednak nie pozwala na swobodną lekturę pozycji prezentowanych na perl golfie. [/OFF-TOPIC] Udostępnij ten post Link to postu Udostępnij na innych stronach