Oznaczenia:
Rozszerzenie Typ Program
----------------------------------------------------------------------------
.1 - .8 D man
.C Z g++
.Z A compress, uncompress
.arj A arj, unarj
.bz2 A bzip2
.c Z gcc
.c++ Z g++
.deb A dpkg
.dvi D tex
.gz A gzip, gunzip
.html D lynx
.info D info
.lsm D cat, more
.pl Z perl
.ps D ghostscript, ghostview
.rpm A rpm
.sh Z sh, csh
.tar A tar
.texi D info
.tgz A tar, gzip
.txt D more
.zip A zip
Jeśli w tabelce nie ma pliku, którego szukasz, użyj polecenia file,
na przykład:
file 0223.lzh
0223.lzh: - LHa 2.x? archive data [lh ]
Otóż Linux, tak jak każdy system Unixowy przeszukuje w poszukiwaniu
programów do uruchomienia wyłącznie ścieżki umieszczonej w zmiennej
PATH. W związku z tym prawdopodobnie ścieżki, z której usiłujesz
uruchomić program nie ma w tej zmiennej. Aby dodać aktualną ścieżkę do
przeszukiwania, dopisz do pliku inicjalizującego (różne w zależności od
tego, jakiej powłoki używasz) w miejscu nadawania wartości zmiennej
PATH kropkę (.) Można też uruchamiać program poprzez dodanie w
linii poleceń aktualnej ścieżki, czyli:
./nazwa_programu
Jednak dodanie aktualnego katalogu do przeszukiwanych katalogów nie jest zalecane ze względów bezpieczeństwa systemu. Szczegółów dowiesz się wraz z nabywaniem praktyki jako wieloletni administrator unix-ów :). Oczywiście jeśli komputer służy tylko do celów domowych, to spokojnie można tę ścieżkę dodać do zmiennej PATH.
networkW pliku /etc/sysconfig/network zmień linijkę:
networking=yes
na:
networking=no
Oto nadesłana przez M.Tyralę kbns@zeus.polsl.gliwice.pl opinia na
ten temat:
Taką poradę przeczytałem na tej liście, jednak trochę
później pojawił się post człowieka, któremu po takiej podmianie przestał
działać shutdown (oraz reboot i halt), sync powodował zawieszenie shella. Ja
te same objawy uzyskałem (dwukrotnie), wiec IMHO jest już jakaś
powtarzalność. Na newsach pojawił się głos jakiegoś 'guru', ale było w nim
tylko coś o RedHacie i odmóżdzeniu userów, aczkolwiek nic więcej.
HOSTNAMEPodobno pomaga też zmiana wartości zmiennej $HOSTNAME na inną niż
localhost.
Oto co pisze RedHat w erracie do wersji 4.0 (sent by kbns@zeus.polsl.gliwice.pl):
(02-Dec-1996) On some machines, sendmail appears to pause when
booting up. To fix this, either:
Use netcfg to change the hostname from localhost to
localhost.localdomain, or
edit /etc/sysconfig/network and change the line which reads:
HOSTNAME=localhost
to read:
HOSTNAME=localhost.localdomain
Zazwyczaj w każdej dystrybucji istnieje polecenie (często jest to po prostu
skrypt powłoki) służący do tego celu. Nazywa się najczęściej
adduser,
useradd lub jakoś podobnie. Można również edytować bezpośrednio plik
/etc/passwd aby dodać nową linijkę z pidem użytkownika.
Uwaga! Użytkownicy RedHata często mają problemy z powstającym w
katalogu /etc plikiem .passwd.lock, który należy usunąć
przed wykonaniem polecenia adduser. Można ten problem rozwiązać
dodając do pliku inicjalizującego powłoki w katalogu root, czyli
użytkownika, który ma prawo dodawać użytkowników, polecenie kasujące ten
plik.
core. Jak sobie z tym poradzić?Jeśli tworzy core to na pewno wszystko nie jest w porządku. Ale
jeśli chcesz zabronić tworzenia core, bo i tak z nich nie
korzystasz, ustaw odpowiedni limit. Dla powłoki bash istnieje
polecenie ulimit, dla tcsh - limit, a dla ksh
rlimit. Musisz przeczytać manual dla konkretnej powłoki. W bashu robi
się to tak:
ulimit -c 0
Chodzi o ukrycie prawdziwego loginu. Odpowiedzi udziela nasz niezastąpiony Bartek Maruszewski. Dzięki!
W katalogu /usr/src/sendmail-najnowsza.wersja/cf lub
/usr/sendmail-cf/cf tworzymy plik
nasza.domena.m4, w który wpisujemy:
---------- ciach ---------
divert(-1)
OSTYPE(linux)dnl
DOMAIN(generic)dnl
# poniżej zmiana
MASQUERADE_AS(nasza-domena)dnl
define(`HELP_FILE', `/etc/sendmail.hf')dnl
FEATURE(use_cw_file)dnl
FEATURE(genericstable)dnl zmiana loginów <-- to jest to
FEATURE(masquerade_envelope)dnl <-- a tutaj maskujemy to co pojawia
dnl się w programie czytającym pocztę w polu od kogo przyszło
MAILER(local)dnl
MAILER(smtp)dnl
---------- ciach ---------
Piszemy 'm4 m4/cf.m4 nasza-domena.m4 > sendmail.cf', ZACHOWUJEMY
KOPIE
działającego /etc/sendmail.cf i kopiujemy wygenerowany plik do /etc.
Tworzymy plik /etc/genericstable z wpisami:
jas Janek.Kowalski
.
.
.
Następnie trzeba uruchomić 'makemap hash genericstable < genericstable'
żeby
zamienić genericstable na format, który rozumie sendmail. Te dwie
nazwy w tym poleceniu mają być identyczne, nie pomyliłem się. makemap
sam dopisze do pliku wyjściowego '.db'.
Istnieje wiele powodów, dla których ludzie kompilują jądra. Jednym z najczęstszych to po prostu chęć uaktualnienia swojego systemu. Linux jest bardzo szybko rozwijającym się systemem, w związku z tym dość często pojawiają się nowe wersje jąder. Należy jednak pamiętać, że tylko jądra z parzystą środkową liczbą wersji są uznawane za stabilne. Jądra z nieparzystą liczbą to tzw. jądra rozwojowe wprowadzające nowe features, które będą wbudowane kiedyś (po przetestowaniu) do serii stabilnej.
Inny powód samodzielnej kompilacji to chęć posiadania jądra systemu doskonale dopasowanego do potrzeb konkretnego użytkownika. Można tak skonfigurować jądro, aby miało wbudowane tylko sterowniki tych urządzeń, które posiadamy, tylko tych systemów plików, z którymi mamy do czynienia, etc.
Po pierwsze musisz zdobyć źródła jądra. Oprócz oczywistej możliwości ściągnięcia ich z sieci, możesz je wziąć z każdej dystrybucji.
Zdobyty plik tar.gz o nazwie np. linux-2.0.33.tar.gz i rozmiarach około 7MB
do 9MB należy rozpakować w katalogu /usr/src tak, aby powstał tam katalog
linux zawierający źródła.
Następnie musimy skonfigurować instalację. Będąc w katalogu
/usr/src/linux i będąc oczywiście zalogowanym jako root
piszemy:
make config - skrypt konfiguracyjny odpali się na konsolimake menuconfig - wygodna konfiguracja z menumake xconfig - odpala konfigurację w XPytania zadawane przez skrypt konfiguracyjny są na tyle oczywiste, że chyba nie potrzebujesz przy tym pomocy. Następnie należy stworzyć zależności:
make dep
...i rozpocząć kompilację....
make zImage
Zwróć uwagę na duże i małe litery w słowie zImage. Następnie (po
około 10 minutach na Pentium 75) jeśli konfigurowałeś jądro jako
modularne, musisz skompilować moduły i zainstalować je:
make modules make modules_install
Stare moduły siedzące w /lib/modules/numer.starego.jądra/ można
potem usunąć. Ale na razie zainstalujmy jądro. Jest w jednym podkatalogu
źródeł /arch/i386/boot i nazywa się zImage. Teraz należy
dowiedzieć się, gdzie lilo szuka jądra. Jest to napisane w
/etc/lilo.conf. Najpierw robimy kopię zapasową poprzedniego
działającego jądra w katalogu odszukanym w powyższym pliku (np. cp
vmlinuz vmlinuz-old) i dopiero po zrobieniu kopii nagrywamy do tego
katalogu nasze świeżutkie, jeszcze ciepłe jądro :)). Następnie edytujemy
powyższy plik i robimy kopię akapitu opisującego nasze jądro i wpisujemy
label=old i zmieniamy tam vmlinuz na vmlinuz-old. Ja mam taką
zasadę, że nazywam jądra vmlinuz-x.y.z. Po tych modyfikacjach
koniecznie wykonujemy
lilo
Następnie rebootujemy kompa i czekamy trzymając kciuki... Jeśli coś nie
poszło, to można zresetować i przy lilo: wpisać old co wystartuje
nam poprzednią wersję jądra.
Wpisz do pliku /etc/conf.modules:
alias net-pf-4 off
alias net-pf-5 off
Cannot open root device 01:00 kernel panic: VFS: unable to mount root fs on 01:00Odpowiedź nadesłana przez B.Maruszewskiego (thanx a lot)
Hmm, sprobujmy:
. klasycznie generujesz kernel (make menuconfig dep clean zImage modules
modules_install)
. instalujesz kernel (albo ręcznie albo jak_tam_to_robisz)
. "/sbin/mkinitrd /boot/nowy_init_rd numer.uzywanego.kernela"
. dopisujesz wygenerowany initrd jako root=/nowy_init_rd (o ile dobrze
pamiętam ...)
. uruchamiasz /sbin/lilo
. sprawdzasz czy to powinno działać
. trzy razy się modlisz
. sprawdzasz jeszcze raz
. rebootujesz
. piszesz na listę dlaczego nie poszło :-(
make clean od make mrproper przy kompilacji jądra?Wykonanie
make clean
powoduje usunięcie stworzonych podczas kompilacji plików obiektowych (binariów), zaś
make mrproper
jak wyżej plus usunięcie konfiguracji jądra.
Metoda pierwsza. Nalezy sciągnąć sobie pakiet psutils, zainstalować, po czym wykonać:
psbook nasz_plik.ps | psnup -2 > nasz_plik-x.ps
W zbiorze wyjściowym mamy na przemian strony parzyste z nieparzystymi. Jeżeli chcielibyśmy mieć osobno parzyste, a osobno nieparzyste, to pomoże nam programik psselect:
psselect -o -r nasz_plik-x.ps nasz_plik-x-O.ps
psselect -e nasz plik-x.ps nasz_plik-x-E.ps
Przełącznik -r powoduje, że strony nieparzyste są w odwrotnej
kolejności, co pozwala drukować najpierw jeden plik, po zadrukowaniu iluś
tam kartek wyjmujemy je z drukarki, odwracamy stosik, wkładamy odwrócony
stos z powrotem do drukarki i drukujemy zbiór drugi.
(Całość można załatwić dwoma wywołaniami programu pstops,
jednak jego parametry wywołania mogą na początek wyglądać na nieco
pogmatwane, więc moim zdaniem na początek lepiej jest pocyrkować trochę
kilkoma programami wiedząc miej-więcej co się robi.)
Na deser wykonujemy:
man psbook
man psnup
man psselect
man pstops
Metoda druga. Używamy programu mpage, który jest chyba w większości
dystrybucji. Wykonujemy:
mpage -O -r -o -A -t -P- nasz_plik.ps > nasz_plik-x-O.ps
mpage -E -o -A -t -P- nasz_plik.ps > nasz_plik-x-E.ps
W zbiorze nasz_plik-x-O.ps mamy strony nieparzyste (w odwrotnej
kolejności), a w nasz_plik-x-E.ps -- parzyste.
No i oczywiście na koniec: man mpage
Nieco inaczej mają się sprawy, gdy plik *.ps powstał z pliku
*.dvi, czyli gdy mamy dostęp do źródłowego *.dvi.
1. Jeżeli mamy strony A5 i tylko chcemy je umieścić po dwie na arkuszu
A4 to można posłużyć się programem dvidvi.
dvidvi -m 4:-1,2\(4.25in,0in\) infile.dvi outfile-1.dvi
dvidvi -m 4:-3,0\(4.25in,0in\) infile.dvi outfile-2.dvi
Tak uzyskane dwa pliki dvi drukujemy naszą ulubioną metodą drukowania
plików *.dvi.
2. Jeżeli strony w pliku *.dvi są rozmiaru A4, to robimy tak: do
wywołania dvips'a dodajemy parametr -x707, czyli np:
dvips -x707 -o nasz_plik.dvi nasz_plik.ps
Po czym traktujemy otrzymany postscript tak:
pstops 0@1\(-0.7cm,-8cm\) nasz_plik.ps | psbook \
| psnup -2 -pa4 -Pa5 > nasz_plik-x.ps
Wartości przesunięć strony są dobrane eksperymentalnie i w razie gdyby coś było poprzesuwane należy je zmienić.
Dwa słowa o tym, dlaczego warto robić książeczki metodą jak powyżej, zamiast
podanej na samym początku: Otóż w metodzie pierwszej czcionki zawarte w
pliku postscriptowym są skalowane przez psnup-a, co nie wygląda
ładnie (wystarczy się przyjrzeć uważnie literce `N'). W sposobie podanym na
końcu czcionki w pliki *.ps są już odpowiedniej wielkości i po
prostu efekt końcowy jest ładniejszy.
Do tego celu można użyć wymienionego w poprzednim pytaniu programu
pstops. Wywołujemy go tak:
pstops 0@skala\(przesx,przesy\) plik_wej.ps > plik_wyj.ps
gdzie:
skala -- współczynnik skalowania strony (np 0.9)<b>
przesx -- przesunięcie strony w poziomie (np 1cm)<b>
przezy -- przesunięcie strony w pionie (np 2cm)<b>
Czyli przykładowe wywołanie może wuglądać tak:
pstops 0@0.9\(1cm,2cm\) plik_wej.ps >
plik_wyj.ps
Owszem, dodanie jakichś konkretnych marginesów wymaga trochę liczenia, ale to już jest łatwizna i na pewno sobie poradzisz!
root? Chciałbym administrować systemem zdalnie!(Odpowiedź: kloczek :-)
Telnet na konto root'a jest zablokowany specjalnie z powodów bezpieczeństwa
we wszystkich dystrybucjach Linuxa w konfiguracjach podstawowych. Poprostu
jeżeli ktoś nieuprawniony przejmie w jakiś sposób hasło root'a to ma
ułatwione zadanie przy wszelkiego rodzaju ingerencjach w systemie przy
możliwości wejścia na konto root'a bezpośrednio. O wiele ważniejszym powodem
jest to, że podczas negocjacji połączenia poprzez telnet/rsh/rlogin zarówno
sam login jak i hasło są przesyłane jawnie. W przypadku łączenia się poprzez
sieć publiczną czy segmenty sieci co do których nie mamy pewności, że nikt
na nich nie podsłuchuje ruchu łączenie się poprzez telnet na konto root'a
jest z powodów bezpieczeństwa niewskazane.
Do łączenia się poprzez sieć co do której nie mamy zaufania i to nie
zależnie od tego czy chcemy łączyć się na konto root'a czy zwykłego
użytkownika powinno wykorzystywać się ssh (secure shell). Poprawne
zachowanie administratora powinno polegać jednak na tym, żeby do
minimum ograniczał on czas spędzany na koncie root'a. W takim wypadku
po zalogowaniu się na konto użytkownika, żeby zmienić sobie
uprawnienia na czas wykonania jakiejś operacji wykorzystuje się
polecenie su. Polecenie to powinno się wykonywać z dodatkowym
parametrem "-" czyli su - żeby przy zmianie uprawnień został
wywołany osobny shell z pełnym zestawem zmiennych środowiska właściwym
dla root'a co też czasami może ustrzeże niedoświadczonych administratorów
od subtelnych pomyłek czy błędów.
Blokada logowania się zdalnie na konto root'a jest wykonana poprzez
wyszczególnienie w /etc/securetty listy urządzeń na jakie osoba z
uprawnieniami root'a (uid=0, gid=0) może się logować bezpośrednio. W
przypadku posiadania fragmentu sieci bezpiecznej, którą chcielibyśmy
jedna wykorzystywać do logowania na root'a nie powinno się jednak
modyfikować do tego celu pliku żeby dodać kolejne /dev/pty* gdyż nie
ma możliwości w ten sposób zdeterminowania kierunków z jakich
następuje logowanie, a tylko urządzenia. Czyli powinno się postępować
jak powyżej z wykorzystaniem ssh i su.
ssh nie wchodzi w skład żadnej dystrybucji ze względów licencyjnych.
Czyli po zainstalowaniu systemu należy ściągnąć ssh i je zainstalować.
ssh jest dostępne w postaci gotowych skompilowanych pakietów
deb, rpm,
a w każdym innym wypadku można ściągnąć źródła, przekompilować całość
i zainstalować.