22 października, 2010
Napisane w: Ogólne
(1)
Jako komentarz do wpisu na nfsec. Wpierw dwie przykładowe metody (w kolejności od najkrótszej), a później powiem co jest złego w mieszaniu shellowym for-em.
Metoda 1:
chmod -R a=rX,u+w /home/ftp
gdzie:-R oznacza rekursywność
a= oznacza wszystkich czyli usera, grupe i innych (= nadpisywanie)
u+ oznacza usera (+ dodawanie)
r i w to wiadomo.. odczyt oraz zapis
- duże
X wykonywalne KATALOGI
Metoda 2:
find /home/ftp -type f -print0 | xargs -0 chmod 644
find /home/ftp -type d -print0 | xargs -0 chmod 755
Opcje -print0 w find i -0 w xargs pomagają sobie, przydatne gdy w nazwie pliku jest spacja.. Odsyłam do manuala xargs.
Dlaczego nie for?
Gdy w nazwie pliku jest spacja np:
/home/ftp/gruby miś/muzyczka.mp3
pętla wykona dwa polecenia:
chmod 644 /home/ftp/gruby
chmod 644 miś/muzyczka.mp3
ponieważ jej separatorem jest spacja..
15 lutego, 2010
Napisane w: Ogólne
(1)
Witajcie po dłuższej przerwie, postaram się częściej pisać, dzisiaj mam chęć na: "Gtk - "Prosty wyłącznik" - przykład użycia zenity.." z tym że napisany w perlu, przedstawię go w formie małego tutoriala.. (Niektóre komentarze były za długie, zostały umieszczone na numerowanej licie pod skryptem).
#!/usr/bin/perl
# AUTHOR: 3ED
#use strict;
#use warnings;
use utf8; #1
use Gtk2 '-init'; #2
my(@opts,$timeout); #3
if(@ARGV){ #4
my $c = 0;
for(@ARGV){
s/[^0-9]*//xg if($c == 1); # zostaw same cyfry
$opts[$c] = $_;
$c++
}
exit 1 if($c < 2); #5
}else{
print "Usage: $0 \"MSG_LEFT\" \"TIMEOUT\" \"MSG_RIGHT\"\n";
exit 1
}
&timeout_dialog(@opts); exit 0;
sub timeout_dialog { #6
my ($L, $T, $R) = @_; #7
utf8::decode($L);
utf8::decode($R);
my
$win = Gtk2::MessageDialog->new( #8
undef, # okno właściciela, undef - brak
'destroy-with-parent', # opcje
'warning', # typ wiadomości
'cancel', # jakie przyciski?
"$L $T $R"); # wiadomość
$win->set_icon_name("exit"); #9
$win->set_keep_above(1); #10
Glib::Timeout->add(1000, \&th_timeout_dialog, [$win, $L, $T, $R]); #11
$win->signal_connect(destroy=>sub{exit 1}); #12
my
$response = $win->run;
if ($response eq 'cancel') { #13
exit 1;
}
$win->destroy; # ubicie okna
return 1; # true powinien być zawsze na końcu funkcji
}
sub th_timeout_dialog {
$timeout=$_[0][2] unless($timeout); #14
$timeout--; #15
$_[0][0]->set_markup("$_[0][1] $timeout $_[0][3]"); #16
if($timeout < 1) { #wiadomo
exit 0; # i jak odliczyło do końca, wyjdź zerem
}
return 1;
}
__END__
- Użyj modułu utf8 - polskie literki między terminalem, a aplikacją w gtk2
- Użyj modułu Gtk2 i zainicjuj go - wiadomo..
- Definiujemy puste zmienne, moduł strict bez tego pruje błędami - można definiować za pomocą my i our, my będzie pamiętane tylko wewnątrz bloku(?) np. wewnątrz podprogramy(sub), np. w pętlach lub np. wewnątrz instrukcji warunkowej - w zależności gdzie zainicjujemy. our natomiast w całym skrypcie..
- W zmiennej tablicowej @ARGV mamy argumenty dane aplikacji z wiersza poleceń.. Uwaga, wartość pusta lub równa 0 to fałsz, wartość np. "0.1", "0 0", "1" lub "Kowalski" to prawda.
- Minimum 2 argumenty..
- "Podprogram" coś jak funkcja..
- Deklarujemy zmienne wewnętrzne, "@_" to tablica złożona z opcji-argumentów zewnętrznych (patrz @opts). Nawias mówi że opcje mają być przydzielane po koleji z tablicy do zmiennych, można też użyć shift..
- Typ okna MessageDialog z biblioteki Gtk2 - patrz dokumentacja
- Ustaw ikonkę okna dla elementu $win
- Trzymaj ponad innymi oknami..
- Timeout z biblioteki Glib ładowanej przez moduł Gtk2 - wątek, działa w tle modyfikując zawartość okna, musi to być wątek, można użyć modułu threads ale do tej czynności lepiej nada się ten. 1000 to ilość ms po której podprogram będzie powtórzony..
- Sygnał zamknięcia okna wykona polecenie exit 1
- Wciśnięcie przycisku 'cancel' sprawi że program wyjdzie exit 1
- Weź z $data/$_ (3 parametr timeoutu) tablicę ([0]) element ([2]) i ustaw jako $timeout chyba że (unless) $timeout już jest ustawiony (jest prawdą - 0 będzie fałszem, ale zera nigdy nie będzie..).
- Odejmij sekundę..
- Ustaw nową wiadomość
- __END__
Można tego teraz użyć np. tak: mplayer film.avi; skrypt "wyłączy się za" 60 "sekund.." && sudo halt
PS. Porównania typu '>' '<' '==' '!=' służą do porównywania liczb, a porównania typu 'lt' 'gt' 'eq' 'ne' do wartości znakowych przede wszystkim znaków, liter, itp..
Jest coś co zostało niewystarczająco opisane?
04 maja, 2009
Napisane w: Ogólne
(1)
Aktualizacja: Zobacz jak europosłowie zmieniali zdanie (DI) oraz Fundamental freedoms on the Internet resolution details PL. Drugi link prowadzi do strony w języku angielskim, głosy gwarantujące wolność internetu zaznaczone są na zielono (przeciw, przeciw, za). Dokonałem szybkiego spolszczenia legendy z tej strony, mam nadzieję że zachowałem cały jej sens:
- "am3": Ograniczenie zakazu systematycznego monitorowania i nadzorowania działalności wszystkich użytkowników w internecie ("rozmowa kontrolowana") IPRED 2 i usunięcie barier prawnych dla organizacji antypirackich.. ("zły glina")
- "am5S": Wypowiedzi kontrowersyjnych poglądów politycznych poprzez Internet podlegają odpowiedzialności karnej.
- "resolution": Gwarancja dostępu do internetu dla wszystkich obywateli w celu zagwarantowania równoważnego dostępu do nauki/wiedzy, dostęp do Internetu nie powinien być kwestionowany przez rządy ("punitively"?) lub firmy prywatne (między innymi przepisami).
Legenda:
(moje komentarze) :Þ
Aktualizacja: Wepchnięto przed pakiet telekomunikacyjny głosowanie nad zakazem odcinania internautów od internetu bez wyroku sądu. W ten sposób głosowanie nad pakietem zostało przełożone do jesieni, nie wprowadzono jednak jakiegoś zabezpieczenia np. przeciw pakietowaniu internetu oraz tych pozytywnych praw zawartych w pakiecie telekomunikacyjnym. Wygląda na to, że europosłowie odepchnęli głosowanie do jesieni już po wyborach. Z jednej strony niby pozytywnie, z drugiej - najważniejsze nie przeszło, sprawa odłożona na później, tak jakby ani negatywnie ani pozytywnie. TVP dalej sobie żartuje z polskich obywateli oszukując ich na swojej antenie.
Aktualizacja: Na kanale TVPuls w programie Igora Janke o prawdziwych założeniach pakietu telekomunikacyjnego rozmawiali Piotr Waglowski i Ryszard Czarnecki. Powtarzam za osnews.pl.
Reportaż TVP jest całkowicie nie na temat. Link do wykopu (czytaj komentarze).
- Sędzia wydający wyrok w sprawie The Pirate Bay jest członkiem IFPI (stowarzyszenia antypirackiego). Prawo szwedzkie stoi po stronie The Pirate Bay ponieważ serwis ten nie udostępnia więcej danych niż google - jest zwykłą wyszukiwarką z bazą linków. Program p2p jest zarówno serwerem jak i klientem sieci (np. torrent), inaczej jest w przypadku stron internetowych, możesz je serwować z własnego komputera jedynie za pomocą dodatkowych programów np. Apache, Lighttp czy MS IIS.. Zespół The Pirate Bay nie udostępnia nielegalnych materiałów i nie uczestniczy w ich rozsyłaniu, zresztą google też..
- Richard Stallman nie używa zamkniętego oprogramowania i niewolnych wytworów kultury. Jest promotorem wolnej kultury (np. jamendo.pl) i wolnego oprogramowania (np. www.linux.org i coś po polsku), nie broni piratów - nie ma w tym interesu, zwraca jednak uwagę na to, że gdy herbatą się nie podzielisz to ktoś będzie Ci miał to za złe (odnośnie, np: nie można słuchać muzyki publicznie, odtwarzacz płaci). Tak przy okazji, np. dla jamendo (nie musisz płacić za odtwarzanie publiczne!) torrent jest jak ulał, odciąża serwery i minimalizuje koszta (niekoniecznie wygodne dla wytwórni płytowych/antypirackich).
- Przyjęcie pakietu telekomunikacyjnego oznacza, że:
- ZABLOKOWANY ZOSTANIE CI DOSTĘP DO 99,9% INTERNETU
- DOSTANIESZ DOSTĘP JEDYNIE DO PAKIETÓW (PEWNEJ ILOŚCI STRON), KTÓRE ZOSTANĄ WYBRANE ZGODNIE Z WŁASNYM "WIDZI MI SIĘ" PRZEZ RZĄD
- NA 100% WZROSNĄ OPŁATY
- Z CZASEM TO PRAWO ZOSTANIE ZAOSTRZONE
- MASA LUDZI STRACI PRACE I BIZNESY - W IMIĘ NICZEGO (BO SIEĆ BEZ TEGO PO..NEGO PRAWA MA SIĘ DOBRZE)
Cytuję: AndyPSV
04 maja, 2009
Napisane w: Ogólne
(1)
Jest to leciutki skrypcik do pobierania napisów, którego zależności spełniają: bash, wget, zenity (opcjonalnie), libnotify (opcjonalnie). Posiada "tryb konsoli", a domyślnie wykorzystuje notify-send do wyświetlania tych samych komunikatów co na konsoli (co prawda jest ich mało). Zenity opcjonalnie wyświetla dialog poprawy ścieżki do pliku w razie jej braku lub gdy jest błędna.
Instalacja: Rozpakuj ten plik, wejdź do tak samo nazywającego się folderu, skopiuj plik np. do /usr/bin, nadaj mu uprawnienia (755) pozwalające na uruchomienie.
Integracja z nautilusem: stwórz link do skryptu np. ln -s "/usr/bin/gnapi" "~/.gnome2/nautilus-scripts/Pobierz Napisy z Napi"
Integracja przez "Akcje": Uzupełniasz w zależności od konfiguratora akcji, gnapi [plik].
Tryb konsoli: Identycznie jak w zwykłym trybie za wyjątkiem jednej opcji: 'gnapi -c [plik]'. Możesz zrobić alias do polecenia.
29 marca, 2009
Napisane w: Ogólne
(1)
Ot taki prosty skrypcik do pobierania z rapidshare, leży sobie na dysku tak i tylko mi służy, a chyba nie o to chodzi?
Używa się go tak:
URLe: rsget [url]
Listy: rsget $( cat rslista1 rslista2 )
Nie pobiera już wcześniej pobranych plików, można sobie go w screena puścić, a output wygląda tak (oczywiście jest pokolorowany):
==> Pobieranie pliku: "plik.rar"..
> Wczytuje informacje ze żródła..
> Ponawiam próbę..
> Wczytuje informacje ze żródła..
> Rozpoczynam pobieranie..
--2009-03-29 14:54:30-- http://rs349l52.rapidshare.com/files/134343491/2547428/plik.rar
Translacja rs349l52.rapidshare.com... 195.122.151.60
Łączenie się z rs349l52.rapidshare.com|195.122.151.60|:80... połączono.
Żądanie HTTP wysłano, oczekiwanie na odpowiedź... 200 OK
Długość: 209715200 (200M) [application/octet-stream]
Zapis do: `plik.rar.part'
100%[====================================================================================>] 209.715.200 159K/s w 19m 11s
2009-03-29 15:13:42 (178 KB/s) - zapisano `plik.rar.part' [209715200/209715200]
> Zapisywanie zakończone pomyślnie.
> Zmiana nazwy pliku zakończona pomyślnie
[natępny]
Możesz zobaczyć kod lub pobrać niepopsuty przez pastebin plik.
Aktualizacja 2009.08.17: Świeższa wersja, strona projektu, opis, PKGBUILD..
21 marca, 2008
Napisane w: Ogólne
(1)
04 lutego, 2008
Napisane w: Ogólne
(1)
Dużo wolnego czasu, dwie zmiany..
- Zmieniłem layout, a że jestem leniwy to wybór padł na już gotowy. W ciągu kilku najbliższych dni mogą nastąpić minimalne zmiany w wyglądzie - jednak nie wszystko jest zaprojektowane po mojej myśli. Proszę pisać komentarze na temat nowego wystroju bloga oraz ewentualne propozycje.
- Poprawiłem trochę kategorie we wpisach. Nowe kategorie to: 'Linux', 'Rozrywka'.
Akcja: „25 - 27 : Bojkot : Następny Weekend Bez Kina”. W państwie Prawym i Sprawiedliwym każdy polak jest przestępcą oprócz tych co mają dużo pieniędzy, zaprotestujmy. Jeżeli nie uważasz siebie za przestępce - przekaż link do akcji twojemu znajomemu, koledze, przyjacielowi..
31 grudnia, 2006
Napisane w: Ogólne
(1)
Wesołego, bombowego, sylwestra. Szampańskiej zabawy, dobrej muzyki, pięknego nowego roku. Życzę wszystkim serdecznie.
3ED
28 lipca, 2006
Napisane w: Ogólne
(1)
Żeby sprawdzić jakie mamy otwarte porty możemy do tego celu wykorzystać np. polecenie "netstat".. Wpisujemy "netstat -tlp" (dla TCP) lub "netstat -ulp" (dla UDP). Porty które są "localhost.localdomain:<numer_portu>" są tylko lokalnie i nie musimy się nimi ani trochę przejmować.. Polecenie to zwróci również informacje o procesie/właścicielu otwartego portu. Tylko root może otworzyć porty poniżej 1024. Najczęściej są one otwierane przez tzw. daemony, programy uruchomione przy starcie komputera. Chociaż nie każdy potrzebuje otwartego portu to np. cups (do drukowania) otwiera port IPP (Internet Printer Protocol). Aby nie pozwolić nie potrzebnym nam daemonom uruchamiać się instalujemy program bum (Boot Up Manager) poleceniem:
# sudo apt-get install bum
lub (dla "experta"):
# sudo apt-get install sysv-rc-conf
W "System > Administracja" mamy nowe narzędzie "Boot Up Manager".. Teraz już wystarczy przeczytać opisy w języku polskim i zdecydować który nie ma prawa się uruchamiać razem z systemem. Przyśpieszy to znacząco uruchamianie systemu i zwolni RAM. Nie mniej jednak trzeba uważać żeby nie powyłączać potrzebnych daemonów takich jak np.: acpid, sysklogd, klogd, makedev, dbus, mdadm, anacron, cron.
EDIT: Jako że nie używam ubuntu przenoszę to do kategorii ogólne. Część z tu wymienionych poleceń działa na innych dystrybucjach..
27 grudnia, 2005
Napisane w: Ogólne
(1)
Święta, święta i już po świętach! :P
ps. 2.6.14.5 już się pojawiło.. :D