18:01 <%ktos> byly
juz dwa wyklady dotyczace basha, mam na celu napisac o rzeczach, ktore nie byly
dotychczas poruszane 18:01 <%ktos> temat - bash w
praktyce na serwerze produkcyjnym 18:01
<%meal> Eee kurwa nie pozwalaj sie ok? 18:01 <%meal> *se 18:02 <%meal> Nie pozwalaj sobie!
18:02 <@MrocznA> meal: wyklad jest!
18:02 <%Robol> ;]
18:02 <%ktos> hmm, moze ja poczekam 18:02
<%ktos> :] 18:02
<%meal> Aahaa 18:02
<%meal> Dobra 18:02
<%meal> Mówi 18:02
<%ktos> noo 18:02 <@MrocznA>
... 18:03 <%ktos> wiec zagadnienie nr 1 -
skrypt startowe 18:04 <%ktos> czesto mozna stanac
przed sytuacja w ktorej a) oferowane wraz z dystrybucja skrypty startowe sa
niedoskonale, lub b) przydalby sie wlasny skrypt start/stop do uslugi, ktora
uruchamiamy sami, a ktora nie nalezy do uslug oferowanych przez system 18:04
<%ktos> przypadek pierwszy omowie na przykladzie
apachectl, ktory oferowany jest do zatrzymywania/uruchamiania/restartu apache
18:05 <%ktos> kiedys jest uruchomionych kilka czy
kilkanascie procesow httpd na malym serwerze, apachectl zachowuje sie poprawnie
18:05 <%ktos> natomiast przy kilkudziesieciu lub
wiecej procesach httpd apachectl czesto nei daje sobie rady 18:05
<%ktos> rozwiazanie proponuje tutaj: 18:06
<%ktos>
http://www.ktos.klej.net/bash/01/rc.httpd_poprawiony.txt 18:07
<%ktos> skrypt dziala na tej zasadzie, ze dla kazdego
znalezionego PID-u procesu httpd wykonuje kill -9 PID, przez co ubija Apache
"skutecznie" 18:07 <%DJ_cool_>
niedoskonałe. 18:07
<%DJ_cool_> bo może ubić proces co ma w nazwie httpd, a
apaczem nie jest. 18:08
<%DJ_cool_> aw. 18:08
<%ktos> DJ_cool_: coz, nie uswiadczylem, abym uruchomil
proces o nazwie httpd, ktory nei jest Apache, nie wiem po co uruchamiac, cos pod
taka nazwa 18:09 <%ktos> zawsze mozna znalezc dziure
w calym 18:09 <%ktos> przy okazji chcialbym
powiedziec o praktycznej instrukcji, ktora pozwala utrzymac skrypt przejrzystym
18:09 <%DJ_cool_> no ja mam odpalony
taki proces, więc mówię o tym. 18:09 <%ktos>
DJ_cool_: mysle, ze masz wystarczajace umiejetnosci, aby sobie z tym poradzic,
przecietny uzytkownik/root tego nie potrzebuje 18:10
<%ktos> hm, wiec function, mala wklejka: 18:10 <%ktos> function apache_stop {
18:10 <%ktos> for apache_pids in `ps axu|grep
httpd|grep -v grep|awk {'print $2'}` 18:10 <%ktos> do
kill -9 $apache_pids 18:10 <%ktos> done 18:10
<%ktos> } 18:10
<%ktos> tego rodzaju zapis, o budowie "function
nazwafunkcji {skladnia} 18:10
<%DJ_cool_> ktos: tak, tylko taka mala dygresja ;d
18:10 <%ktos> :d 18:10
<%DJ_cool_> juz sie nie wtracam. 18:10
<%ktos> pozwala zachowac porzadek w skrypcie, co ma
znaczenie dla skryptow bardziej rozbudowanych 18:11
<%ktos> oraz moze miec tez inna role, tj. moze byc
praktyczne, jesli dany element kodu powtarza sie 18:11
<%ktos> wtedy umieszczamy go raz jako funkcje i
powtarzamy dalej w skrypcie jedynie nazwe funkcji, ktora raz zdefiniowana w
skrypcie 18:12 <%ktos> nie smieci w kodzie 18:12
<%ktos> tyle na temat punktu 1a 18:12
<%ktos> zagadnienie b - wlasny prosty skrypt startowy
omowie z przykladem serwisu ntpd 18:13 <%ktos> jakie
korzysci daje skrypt startowy? ja widze co najmniej dwie - uruchomienie procesu
nastepuje tam gdzie zwykle zarzadza sie zatrzymywaniem/uruchamianiem uslug, moze
byc /etc/rc.d, /etc/initd. roznie w roznych OS 18:14
<%ktos> druga korzysc to taka, ze usluga moze zostac
zatrzymana jedna komenda, bez wysilania wzroku po ps axu w celu wyszukania PID
procesu do unicestwienia 18:14 <%ktos> przyklad
skryptu (dosc trywialny, ale chcialem przedstawic sama zasade) : 18:15
<%ktos> http://www.ktos.klej.net/bash/01/rc.ntpd
18:15 <%ktos> i tutaj jescze jedna korzysc odrebnego
skryptu 18:16 <%ktos> mamy w roznych dystrybucjach
rozne pliki odpowiedzialne za start wlasnych skryptow, na przyklad
/etc/rc.d/rc.local 18:16 <%ktos> mozna tam dopisac
skrypt, ktorego przyklad podalem w linku przed chwila i usluga uruchamia sie
przy starcie systemu 18:16 <%ktos> i tutaj mozna
zastosowac pewien trick, tzn 18:17 <%ktos> jesli
zostosujemy w rc.local wpis, w rodzaju: 18:17 <%ktos>
if test -x /etc/rc.d/rc.ntpd 18:17 <%ktos> then
18:17 <%ktos> fi 18:18
<%ktos> umknela mi linia ze slashem, przepraszam :]
18:18 <%ktos> wiec ponownie 18:18 <%ktos> if test -x /etc/rc.d/rc.ntpd
18:18 <%ktos> then 18:18
<%ktos> . /etc/rc.d/rc.ntpd 18:18
<%ktos> fi 18:19
<%ktos> tego rodzaju zapis w pliku, ktory uruchamiaa
nasze wlasne wpisy umozliwia latwa kontrole nad uslugami uruchamianymi przy
starcie 18:19 <%ktos> wystarczy chmod +x / chmod -x
skrypt 18:20 <%ktos> aby wlaczyc lub wlaczyc
uruchamianie uslugi wraz ze startem systemu 18:20
<%ktos> czy sa jakies pytanie dot. punktu pierwszego?
18:20 < felix> sorka ze sie wtrąca ale ile mnie
mineło 18:20 < felix> bo troche sie spozniłem
18:21 <%ktos> felix: minelo Cie 10 procent
18:21 < udevd> hmm... 18:21 < siano> o, wyklad jest 18:21
< siano> ;) 18:21 < felix> ;)
18:21 < udevd> czmeu w kodzie jest ".
/etc/rc.d/rc.ntpd" a nie "/etc/rc.d/rc.ntpd" 18:21
<%ktos> udevd: poniewaz wiersz ze slashem nie wkleil mi
sie 18:22 < udevd> a. 18:22 < udevd> przepraszam za lamerstwo ;] 18:22
<%ktos> :] 18:22 <%ktos> skoro
brak pytan, to punkt nr 2 18:23 <%ktos> po przesiadce
z Linuksa na inny system uniksopodobny moze 'brakowac' pewnych polecen 18:24
<%ktos> podam dwa przyklady osiagniecia tego samego co
daja polecenia killall oraz skill (na przykladzie skill -9 user), kiedy polecen
tych w systemie nie ma 18:24 <%ktos> jeden z tych
przykladow (killall) jest nieco trywialny, ale za to dobrze w nim widac
zastosowanie petli 'for' 18:25 <%ktos>
http://www.ktos.klej.net/bash/02/killall.txt 18:25
<%ktos> jako PROCES deklarujemy $1 - czyli pierwszy
parametr skryptu, ktorym ma byc nazwa procesu do zabicia 18:25
<%ktos> wiec ./killall.txt nazwa_procesu 18:26
<%ktos> udevd: skrypt zabija przez kill -nazwasygnalu PID
18:27 <@MrocznA> ktos: sry powtorz 18:27
<%ktos> MrocznA: od ktorego momentu 18:27 <@MrocznA> jzu nic 18:27
<%meal> MrocznA: Do kąta i siedź w ciszy!
18:28 <%ktos> podsumowujac, jesli efekt ma byc
jak killall mozna sygnal wysylany do procesu o okreslonym pidzie zmienic
18:28 <%ktos> ja dalem -9 18:28
<%ktos> drugi skrypt stosuje do ubicia usera, jesli nie
wystepuje w systemie skill 18:29 <%ktos> podam link,
a skrypt jest opatrzony komentarzami, wiec nie bede go drobiazgowo omawial
18:29 <%ktos>
http://www.ktos.klej.net/bash/02/skill.txt 18:30
<%ktos> czy sa pytania? 18:30 <
udevd> nope 18:30 <%ktos> ok, wiec punkt 3
18:30 <%ktos> punkt trzeci polacze z czwartym
18:31 <%ktos> mialy to byc zagadnienia: skrypt i
konfig skryptu 18:31 <%ktos> oraz skrypt i pliki
tymczasowe 18:31 <%ktos> dla tych dwoch zagadnien
prosilbym o zapoznanie sie z trescia skryptu: 18:32
<%ktos> http://www.ktos.klej.net/bash/03_i_04/kod.txt
18:32 <%ktos> skrypt ten dziala jak warnquota dla
systemow plikow, w ktorych zrealizowanie quoty jest klopotliwe 18:32
<%ktos> lecz temat ten przeznaczony jest na oddzielny
(osmy punkt) 18:33 <%ktos> moze najpierw konfig
18:33 <%ktos> dostepny jest pod adresem: 18:34
<%ktos> http://www.ktos.klej.net/bash/03_i_04/konfig.txt
18:34 <%ktos> widac tam wpisy "user:liczba" 18:34
<%ktos> w ten sposob nie ma koniecznosci modyfikowania
skryptu, ktory ma pilnowac 'quoty' dla okreslonego usera 18:35
<%ktos> dane user - quota modyfikujemy w konfigu, a
skrypt pozostaje niezmieniony, nie ma koniecznosci grzebania w nim 18:36
<%ktos> przy okazji konfigu do skryptu chcialbym
poryuszyc krotko zagadnienie delimiter 18:36 <%ktos>
wpisy user:bajty oddzielone sa przez dwukropek 18:37
<%ktos> w ten sposob mozna zczytywac okreslone dane z
pliku konfiguracyjnego, a polecenie na przyklad 'cut' c zaparaemtrem
'--delimiter' 18:37 <%ktos> forma krotka : 'cut -d',
pozwala latwo pobierac dane z okreslonych pol 18:38
<%ktos> tyle o konfigu, dodam, ze slowo konfig stosuje
tutaj umownie w znaczeniu pliku z danymi z ktorych skrypt korzyta 18:38
<%ktos> mozna rowniez w pliku umiescic zmienne, na
przyklad ' ZMIENNA="5" ' 18:38 <%ktos> to jest
wlasciwy konfig 18:39 <%ktos> i wtedy tego rodzaju
plik ze zminnymi zalaczamy do skryptu (na jego poczatku) 18:39
<%ktos> poprzez: 18:40
<%ktos> . /sciezka/konfig.conf 18:40
<%ktos> poniewaz punkt trzeci i czwarty polaczylem, oba
sa omawiane na przykladzie jedengo skryptu 18:40
<%ktos> przejde teraz do zagadnienia pliku tymczasowego
18:41 <%ktos> plik tymczasowy przydaje sie na
przyklad wtedy, kiedy potrzebujemy umiescic w nim jakas tresc, a nastepnie tresc
ta wyslac na przyklad za pomoca 'mail' 18:41 <%ktos>
inne zastosowanie, to kiedy tworzymy skryptowo konfig 18:41
<%ktos> bezpieczniej jest zapisac dane do pliku
tymczasowego, a dopiero pozniej zamienic plik tymczasowy z konfigiem 18:42
<%ktos> w skrypcie, na przykladzie ktorego odnosze sie do
zagadnienia pliku tymczasowego 18:42 <%ktos>
zastosowaniem tym jest stworzenie wiadomosci mail 18:44
<%ktos> podam przykladowy kod: 18:44 <%ktos> TMP="/tmp/$user-mail.tmp"
18:44 <%ktos> echo "Przekroczyles przyznana Ci
przestrzen dyskowa" >> $TMP 18:44 <%ktos> echo
"Przyznano Ci: $PRZESTRZ_PRZYZN bajtow" >> $TMP 18:44
<%ktos> echo "Zajmujesz: $PRZESTRZ_ZAJMOW bajtow"
>> $TMP 18:44 <%ktos> cat $TMP|mail -s "Over
Quota" "$user@localhost" 18:44 <%ktos> rm -f $TMP
18:44 <%ktos> dobrze pamietac, aby plik
tymczasowy usunac, jaka sama nazwa jego wskazuje jest tymczasowy i po
wykorzystaniu jest tyklo smieciem 18:44 <%ktos>
*tylko 18:44 <%ktos> tyl nt. punktow 3 i 4 - konfigi
i pliki tymczasowe 18:44 <%ktos> czy sa pytania?
18:45 < udevd> co następne? 18:45 < udevd> :] 18:45
<%ktos> :] 18:45 <%ktos> 5)
przelaczanie konfigow na przykladzie /etc/ftpusers 18:45
<%ktos> mozna zaczynac? 18:45 <
udevd> mhm 18:45 < udevd> raczej +m ;]
18:45 <%ktos> zdarza sie, ze potrzebujemy
dwoch lub nawet wiecej odmiennych konfiguracji tego samego serwisu 18:45 < udevd> heh. 18:46
<%ktos> no, nie trafilem w plusa 18:46
<%ktos> a o czym to ja mowilem 18:46
<%ktos> aha, wiec zalozmy, ze chcemy miec w nocy otwarty
FTP anonimowy 18:46 <%ktos> a w dzien nie 18:47
<%ktos> w najpopularniejszym demonie ftp decyduje o tym
/etv/ftpusers 18:47 <%ktos> przepraszam:
/etc/ftpusers 18:48 <%ktos> jesli w tym pliku jest
user ftp, anonimowe uslugi sa zablokowane, jesli nie ma - otwarte 18:48
<%ktos> mozna wiec przygotowac dwa konfigi 18:48
<%ktos> dla przykladu /etc/ftpusers.dzien oraz
/etc/ftpusers.noc 18:49 <%ktos> przelaczanie tych
konfigow mozna realizowac o okreslonych godzinach codziennie rano i wieczorem za
pomoca crona 18:49 <%ktos>
http://www.ktos.klej.net/bash/05/poranek.txt
http://www.ktos.klej.net/bash/05/zmierzch.txt 18:49
<%ktos> dwa proste, ale mysle, ze dosc praktyczne skrypty
18:49 <%ktos> koniec punktu piatego 18:50 < beom> hmn 18:50 <
beom> proste 18:50 < beom> :D
18:50 < udevd> właśnie 18:50 < udevd> każdy to zna 18:50
< zygfryd> ja osobiscie wole sciezki bezwzgledne :) 18:50
<%ktos> mowilem, ze proste 18:51
<%ktos> zygfryd: to przyklad 18:51
< zygfryd> do kill-a 18:51 <%ktos>
chcialem wyposrodkowac z poziomem 18:51 < zygfryd>
lub proftpd 18:51 < szyjacy_pamperek> zygfryd:
cicho! :D 18:51 <%ktos> w sh tak w bash nie
zawsze trzeba 18:51 <%ktos> mozna tez wyeksportowac
PATH na poczatku skryptu 18:51 < zygfryd> tzn. taka
moja obsesja, mam wtedy pewnosc ze dziala :) 18:51
< cauchy> ten tego, male ogloszenie: grupa HTB poszukuje textow do zinka,
tematyka: cracking/reversing/crypto/math(adv ;P) 18:52 < udevd> er... 18:52
<%ktos> zygfryd: ja do skryptow wykonywanych przez crona
daje zmienna PATH lub sciezki bezwzgledne 18:52 <
ved> coding tez :P 18:52 <%ktos> reszta w
bash raczej dziala 18:52 <%ktos> z wzglednymi
18:52 < cauchy> o ta 18:52 < cauchy> coding tez ;] 18:52
<%ktos> ok, wiec moze punkt nastepny 18:53
<%ktos> 6) logi - wlasna rotacja 18:53
<%ktos> jesli kogos nie zadowala logrotate i logi z
cyframi 1,2,3,4 itd 18:53 <%ktos> proponuje
rozwiazanie rotacji dobowej logow 18:54 <%ktos>
http://www.ktos.klej.net/bash/06/pokolei.txt 18:54
<%ktos> tutaj jest przyklad jak z polecenia date
18:54 <%ktos> za pomoca sed oraz cut, zamienic
niepozdane dla nazwy pliku z logiem znaki 18:55
<%ktos> oraz jak wyciac to co nie jest potrzebne np dzien
tygodnia 18:55 <%ktos> przyklad jest pokolei, wiec
mysle, ze komentarza nie trzeba 18:56 <%ktos>
ttp://www.ktos.klej.net/bash/06/rotacja.txt 18:56
<%ktos> tu jest przykladowy skrypt, naprawde podstawowy
18:57 <%ktos> tylko jedno male ostrzezenie, Apache
nie przepada za rotacja logow definiowych dla vhostow 18:58
<%ktos> pozostale logi systemowe mozna spokojnie dzielic
uruchamiajac tego typtu skrypt na przyklad o godzinei 23:50 18:58
<%ktos> i uzyskuje sie loga z kazdego dnia z nazwa typu
18:58 <%ktos> przykladowy_log.lip_18_2006 18:59
<%ktos> nastepne zagadnienie - sposob rozwiazania backupu
MySQL za pomoca skryptu bash 18:59 <%ktos> mozna
zaczynac z kolejnym? 19:00 < The404ax> dawaj ;)
19:00 <%ktos> ok 19:01
<%ktos> znacie na pewno komende mysqldump 19:01
<%ktos> oraz klienta ncftp 19:02
<%ktos> mysqldump daje mozliwosc zrzutu jednej lub wiecej
baz danych 19:03 <%ktos> do pliku, a z opcja
--all-databases, zapisuje cala zawartosc MySQL 19:03
<%ktos> man mysqldump 19:03
<%ktos> to pierwsza czesc skryptu 19:03
<%ktos> druga ncftpput 19:03
<%ktos> jesli znacie ncftp, to jest to rozszerzenie do
tego klienta ftp 19:03 <%ktos> ktore umozliwia
operowanie ftp skryptowo 19:04 <%ktos> tego typu
polaczenie ncftput oraz mysqldump wykorzystac mozna do backupu bazy 19:04
<%ktos> skrypt wraz z komentarzem dostepny jest tu:
19:04 <%ktos>
http://www.ktos.klej.net/bash/07/backup-mysql.txt 19:04
<%ktos> sa 2 uwagi: 19:05
<%ktos> 1) uwaga bezpieczenstwa w pliku tym definiuje sie
jako zmienne haslo i login admina bazy, oraz login i haslo ftp dla zdalnego
serwera, na ktroy wysylamy backup 19:05 <%ktos> wiec
albo przechowywanie skryptu w ktorejs ze sciezek /sbin 19:05
<%ktos> oraz chmod 700 na skrypt 19:06
<%ktos> albo lepiej zamienic deklarowanie zmiennych na
read ZMIENNA 19:06 <%ktos> i wykonywanie reczne
skryptu 19:06 <%ktos> jesli skrypt ma byc wywolywany
przez crona 19:06 <%ktos> to druga uwaga 19:06
<%ktos> jak mowil zygfryd, lepiej dac sciezki bezwzgledne
do polecen, bo wtedy jest gwarancja dzialania 19:07
<%ktos> jesli chodzi o basha, zwykle nie trzeba,
wystarczaja sciezki wzgledne 19:07 <%ktos> jesli
skrypt ma byc wykonywany przez crona, dobrze jest na poczatku skryptu
wyeksportowac sciezki, z ktorych korzystaja polecenia: 19:07 <%ktos> PATH=/bin:/usr/bin
19:08 <%ktos> wtedy nie trzeba za
kazdym razem pisac sciezek bezwzglednych do polecen 19:09
< SiergiejPl> SIemka 19:09 < zygfryd>
lub pisac : ECHO=`which echo` i programy jako zmienne traktowac ?
19:09 <%ktos> mozna rowniez tak, ale ja
stosuje zmienna PATH - jeden wiersz zalatwia sprawe 19:10
<%ktos> jesli polecen jest wiecej, PATH jest prostszym
rozwiazaniem 19:10 <%ktos> zygfryd: ok widze
19:11 <%ktos> wiec zauwazono pomylke 19:11
<%ktos> juz koryguje 19:11
<%ktos> mysqldump -u${MYSQL_ROOT_LOGIN}
-p${MYSQL_ROOT_LOGIN} --all-databases > $DUMP_FILE 19:11
<%ktos> jest blad, poniewaz dwa razy jest
MYSQL_ROOT_LOGIN 19:12 <%ktos> przy -p, powinno byc:
-p${MYSQL_ROOT_PASS} 19:12 <%ktos> przy kopiowaniu
skryptu prosilbym o poprawienie tego 19:12 <%ktos>
zygfryd: dzieki za korekte 19:13 <%ktos> mozna punkt
8? 19:13 < The404ax> smialo 19:14
<%ktos> o ile mamy ext2, ext3 z quota nie ma wiekszego
problemu 19:14 <%ktos> nowszy kernel + reiserfs robi
na tym tle problemy 19:14 <%ktos>
http://www.ktos.klej.net/bash/03_i_04/dzialanie.txt 19:14
<%ktos> pod tym adresem jest pokazane dzialanie skryptu
ktory zachowuje sie jak warnquota 19:14 <%ktos> kod
skryptu wraz ze szczegolowymi komentarzami, dostepny jest pod adresem: 19:15
<%ktos> http://www.ktos.klej.net/bash/03_i_04/kod.txt
19:15 <%ktos> link ten juz byl, teraz chcialbym sie
przy nim nieco zatrzymac 19:16 <%ktos> moze skill i
killal nie byly zaawansowanymi czy bardzo praktycznymi przykladami zastosowan
basha dla realizacji tego, co na systemie niestandardowym, czy typowo linuksowym
jest latwo dostepne 19:17 <%ktos> a tutaj chcialbym
zwrocic uwage, z z bashem naprawde wiele mozna 19:17
<%ktos> o samym skrypcie nie bede duzo mowil, bo zawiera
komentarze 19:18 <%ktos> dodalbym, ze wyklad ten ma
raczej na celu pokazanie przykladow 19:19 <%ktos> nic
nie zastapi mana, gdzie wszystkie opcje, parametry sa szczegolowo opisane
19:19 <%ktos> a co skrypt, to inne potrzeby wiec z
manami trzeba sie zaprzyjaznic chcac pisac bardziej zaawansowane skrypty
19:21 <%ktos> juz blizej konca czesci praktycznej,
zagadnienie sprawdzania katalogow domowych uzytkownikow 19:21 < The404ax> ciekawe, co wymysliles ;) 19:21
<%ktos> :) 19:21 <%ktos>
przyklad pierwszy: 19:21 <%ktos>
http://www.ktos.klej.net/bash/09/liczhome.txt 19:21 <
beom> co to sie stao? 19:21 < beom> dsl
paduo 19:21 < beom> ? 19:21 < beom> ;d
19:23 <%ktos>
przydac sie moze na reiserfs, a nawet jesli jest quota, to daje bardziej
przejrzysty wynik niz quota, czy quota -v 19:23
<%ktos> drugi przyklad - nie chcemy miec klopotow, nie
chcemy zeby uzytkownicy mieli mp3 w public_html 19:24
<%ktos> http://www.ktos.klej.net/bash/09/mp3finder.txt
19:25 <%ktos> jest to skrypt uruchamiany recznie, ale
mozna go rowniez wykorzystac do blokowania konta www, jesli dany uzytkownik
posiada pliki o niepozadanych rozszerzeniach w swoim public_html 19:25 < szyjacy_pamperek> dajesz dajesz nie przestajesz :D
19:25 <%ktos> :D 19:25
< The404ax> ;) 19:26 <%ktos> oczywiscie
nalezy pamietac, ze ktos sobie moze rozszerzene zmienic 19:26
<%ktos> skrypt ten jest jedynie przykladem 19:26
<%ktos> zagadnienie ostatnie, kombinacje z kontami
uzytkownikow bedzie juz bez przykladu skryptowego 19:27
<%ktos> podam tu tylko wskazowki 19:27
<%ktos> aby zablokowac powloke uzytkownikowi - zachecam
do czytania mana polecenia chsh 19:27 <%ktos> i mozna
skryptowo wywolac, np skrypt o nazwie lockshell jasio 19:28
<%ktos> jako parametr pierwszy $1 podac nazwe uzytkownika
i zmieniamy shell na /bin/false 19:28 <%ktos> shell
/bin/false musi sie oczywiscie znajdowac w /etc/shells 19:29
<%ktos> aby zablokowac www, mozna napisac skrypt, ktory
zmienia wlasciciela danego public_html na root:root 19:29
<%ktos> a wiec jesli mamy usera jasio 19:29
<%ktos> uruchimy skrypt lockshell jasio 19:29
<%ktos> a w skrypcie chown root:root *
/home/$1/public_html 19:30 <%ktos> ogolnie mozliwosci
jest bardzo duzo 19:30 <%ktos> skrypty bash
umozliwiaja wykonanywanie wielu polecen naraz 19:30 <
The404ax> ja bym nie blokowal public_html tylko ustawilbym .htaccess
19:30 <%ktos> w sposob szybki i wygodny, albo
nawet jedyny umozliwiajacy dzialanie, kiedy jest duzo kont, duzo uslug na
serwerze 19:30 <%ktos> i nalezy tym sprawnie
zarzadzac 19:31 <%ktos> The404ax: jakbys mial 500
kont to bys sie nei bawil w .htaccess 19:31 <%ktos>
chyba, ze skryptowo 19:31 <%ktos> to zwracam honor,
metoda moze byc dowolna, ja jedynie podawalem jeden z przykladow 19:31
<%ktos> byl to punkt 10ty, ostatni 19:31 < The404ax> jasne 19:31 <
The404ax> :) 19:31 <%ktos> :) 19:31 < zygfryd> The404ax: w programowaniu czegokolwiek jest
zawsze X mozliwosci na rozwiazanie tego samoge problemu, kazdy inna droga ;)
19:32 <%ktos> jesli kogos z was interesuja
zagadnienia: 19:32 < The404ax> zygfryd: metoda ktosia
bloguje calkiem public_html, user nie ma mozliwosci poprawienia bledu (usuniecia
mp3 itd) 19:32 <%ktos> prawa dla skryptow
shell, to prosilbym jeszcze o chwile uwagi 19:33 <
The404ax> ale co kto potrzebuje oczywiscie. 19:33
< zygfryd> The404ax: zycie :), a zarazem dowod ze to zrobil, masz w
plikach daty :) 19:33 < The404ax> ktos, dawaj
:) 19:33 <%ktos> bedzie to kilka zagadnien i
krotko 19:33 <%ktos> mamy w systemie plik
/etc/profile 19:33 <%ktos> i mamy tam rozne sciezki w
PATH 19:33 <%ktos> rozdzielone sa one dwukropkami
19:34 <%ktos> dobrze jest dodac po kolejnym
dwukropku, wpis :$HOME/bin 19:34 <%ktos> oraz dodac
do /etc/skell katalog bin 19:35 <%ktos> w ten sposob
userzy maja swoj katalog bin dla siebie wylaczny i skrypty ktora sie tam znajda
uruchamiaja sie bez sciezki wzglednej i bash dopelnia ich nazwy - jak polecenia
19:35 <%ktos> druga sprawa - skrypty pisane dla
uzytkownikow, globalnie 19:35 <%ktos> najlepsza
lokalizacja - /usr/local/bin 19:35 <%ktos> prawa 755
19:35 <%ktos> czyli rwx rw- rw- 19:35 < zygfryd> rwx r-x r-x 19:36
<%ktos> a skrypty roota - w ktorejs ze sciezek sbin, ja
mam dla porzadku w /usr/local/sbin 19:36 < DJ_cool_>
766 to rwxrw-rw- 19:36 <%ktos> zygfryd: masz
racje, zmeczylem sie troche pisaniem i mi sie miesza ;) 19:36 < DJ_cool_> ;d 19:36
<%ktos> no dobra wiem wiem 19:36
<%ktos> czeski blad :] 19:36 <
zygfryd> poprostu trema :0 19:36 <%ktos>
hehe, trema to byla o 18, teraz jest zmeczenie :]]]] 19:36
< The404ax> dobrze jest i tak wiadomo, o co chodzi. 19:36
<%ktos> a dla roota /usr/local/sbin 19:37
<%ktos> na /usr/local/sbin - prawa 700 19:37
<%ktos> i na kazdy plik skryptu w /usr/local/sbin, prawa
rowniez 700 19:37 <%ktos> czyli rwx --- --- 19:37
<%ktos> teraz dobrze? :> 19:37
< The404ax> klask klask 19:37 <%ktos>
dziekuje za uwage