HOME
DO_STR_GLOWNEJ_WYSZUKIWARKI
 
 
LINUX - składnia poleceń

 

Pobierz spakowaną witrynę gorzow-wlkp.pl/linux

Jeżeli pragniesz poznać Linuksa Mandrake (obecnie Mandriva), to... dobrze trafiłeś. Witryna została zauważona przez twórców magazynu KOMPUTER ŚWIAT 5/2004(141) str. 46 poprzez umieszczenie linku oraz magazynu CHIP 4/2004 (str.114) poprzez umieszczenie artykułu opisującego ten serwis internetowy. Jak na hobbystyczną stronę o Linuksie to miłe ;) Acha... na stronie mandrakelinux.pl/informacje podano też link z opisem cytuję "duży zbiór praktycznych informacji o Mandrake" (mam ją w swoim archiwum - klub.chip.pl/twarogal).

Zapraszam do zadawania pytań na FORUM oraz mailem. Chętnie udzielę (bezpłatnie) odpowiedzi. Oficjalne ceny za jedną poradę na stronie MandrakeSoftPL (mam ją w moim archiwum z dnia 2.05.2004) wahają się od 20 do 350 zł.

 

*

 

Tematy związane z zarządzaniem:

 

Polecam książki: Polecam strony:

 


 

Shell, zwany inaczej powłoką, to program, który odbiera polecenia tekstowe, a następnie zamienia je na ciąg znaków rozumianych przez Kernel (jądro systemu).

 


 

Ponieważ możesz mieć kłopoty z edycją plików za pomocą tradycyjnych unixowych edytorków, proponuję zainstalowanie programu MC. Jest bardzo podobny do Norton Commandera i powinien wystarczyć w początkowym etapie nauki. Uruchamiamy go zleceniem mc lub sam edytor mcedit nazwapliku . Zapisujemy klawiszem F2, edytujemy F4, kopiujemy pliki i katalogi F5, przesuwamy pliki i katalogi F6, kończymy pracę F10, kasujemy pliki i katalogi F8. Podczas edycji można uruchomić menu wyboru klawiszami ALT (prawy) o (mała literka o) - pojawi się np. menu szukania i zamieniania tekstu. Więcej o programie MC znajdziesz tutaj.

 

*

 

Mając uruchomione okienka (np. KDE) czasami będziesz musiał wpisać zlecenie tekstowe. Jeżeli nie znajdziesz ikonki o wyglądzie czarnego monitorka, to po prostu wciśnij klawisze CTRL F2 lub ALT F2 i wpisz zlecenie xterm lub konsole (w systemie możesz mieć różne programy emulujące powłokę tekstową pod okienkami - najpopularniejsze to: xterm i konsole).


konsole

 

*

 

Pseudo-terminale czyli konsole, uaktywniamy wciskając ALT F1 do ALT F7 (zobacz też CTRL ALT F1 do F7). Konsola nr 7 uzyskana klawiszami CTRL ALT F7 jest uprawniona do utworzenia sesji okienek. Oczywiście jeżeli uruchomisz drugą sesję okienek, to zajmie ona konsolę nr 8. Jak tworzyć kilka sesji okienkowych na jednym Linuksie opisałem tutaj. Pamiętaj, że konsola tekstowa nr 1 jest miejscem uruchomienia sesji okienkowej, ale sama sesja okienkowa zajmuje konsolę 7 (uwaga: konsola nr 1 jest wówczas zajęta i nie można do niej wpisywać poleceń).

 

 

Sposoby uzyskania powłoki tekstowej.

  • Najprostszym sposobem uzyskiwania powłoki tekstowej jest pod KDE kliknięcie w ikonkę czarnego monitora. Pojawi się okienko z powłoką tekstową, czyli program xterm lub konsole. Niestety, jest to tzw. emulator powłoki i niektóre polecenia shellowe mogą nieprawidłowo działać. Pewność uzyskasz jedynie po wykonaniu poniższych punktów.
  • Powłokę tekstową uzyskasz po wciśnięciu klawiszy CTRL ALT F1 (F2, F3 itd. do F6, uwaga: CTRL ALT F7 jest domyślnie zarezerwowane dla okienek). W ten sposób możesz uruchomić jednocześnie kilka powłok np. dla roota, użytkownika itp. (idealne do testowania zmian konfiguracji). Musisz pamiętać, że samo zmienienie aktywnej powłoki nie zamyka poprzedniej.
  • Jako root wyedytuj plik /etc/inittab (zleceniem mcedit /etc/inittab) i zmień w wierszu id:5:initdefault: wartość 5 czyli "okienka", na 3 czyli "tekst z funkcjami sieciowymi". Od teraz, po każdym restarcie - system zatrzyma ładowanie na powłoce tekstowej. Aby w takich okolicznościach uruchomić domyślną wersję okienek (KDE, GNOME itp.) wystarczy (po zalogowaniu) wydać komendę startx. Więcej o startowaniu okienek znajdziesz tutaj.
  • Jeżeli chcesz włączyć okienka wpisz zlecenie /sbin/telinit 5 lub telinit 5.

    Zlecenie runlevel wyświetli aktualny poziom startowy.

 

 

Sposoby logowania i wylogowania.

  • Możemy logować się po wydaniu polecenia login i podaniu nazwy użytkownika, a następnie hasła.
  • Ponieważ z przyczyn bezpieczeństwa system może czasami nie zezwolić na logowanie użytkownika root, należy po zalogowaniu się pod zwykłym użytkownikiem, wydać polecenie su i podać hasło roota. Komenda su potrafi uaktywnić konto każdego użytkownika, byle znać jego hasło. Szerzej opisałem ten problem na stronie o msec.
  • Wylogowanie, czyli zwolnienie danej powłoki dokonujemy poleceniem logout lub exit . Uwaga: należy pamiętać o obowiązku wylogowania się na koniec prac, gdyż samo wybranie kolejnej powłoki nie zamyka poprzednio uaktywnionych. Zwróć szczególną uwagę na powłokę roota. Jeżeli jesteś gapowaty to restartuj od czasu do czasu komputer.

 

 

Sposoby przemieszczania po katalogach.

Przemieszczanie się po strukturze katalogów nie zawsze jest dozwolone każdemu użytkownikowi. Ze względów bezpieczeństwa jest to słuszne, gdyż zabezpiecza kluczowe pliki przed odczytaniem, modyfikowaniem, czy skasowaniem. Dlatego zaloguj się jako root i działaj:

cd .. [czyli: cd spacja ..] to tak jak cd.. w DOSie, czyli cofam się o jeden poziom w górę.

cd / [czyli: cd spacja /] to tak jak cd \ w DOSie, czyli cofam się na najwyższy katalog.

 

 

Sposoby kończenia pracy systemu.

  • Wciśnij klawisze CTRL ALT BACKSPACE aby zabić okienka i szybko wciśnij klawisze CTRL ALT DELETE by restartować komputer.
  • Na zakończenie prac należy wydać komendę halt.
  • Na zakończenie prac można też wydać komendę poweroff
  • Aby restartować system wpisz reboot.
  • Aby zamknąć lub restartować system z zaawansowanymi opcjami wybierz shutdown

shutdown -h 15 (czyli wyłączenie systemu po 15 sekundach)
shutdown -r now (czyli restart systemu TERAZ)

I na tym bym mógł skończyć, gdyby nie zabezpieczenia systemu, które w zależności od opcji zabraniają zwykłemu użytkownikowi wyłączania systemu. Czasami będziesz więc zmuszony wklepać su, podać hasło roota i dopiero halt . Po głębszej analizie uznasz sam, że to dobry, choć sprawiający nieco kłopotów pomysł.

Inny sposób restartu opisałem tutaj.

 

 

Różne informacje do zapamiętania na początku nauki.

  • Plik tekstowy można edytować na wiele sposobów. Najprostszym edytorkiem jest program mc (lub mcedit). Przydaje się zlecenie less nazwapliku lub do śledzenia na bieżąco zmian w pliku np. messages zlecenie: tail -f /var/log/messages
  • ./plik (czyli kropka, ukośnik, nazwa pliku - bez spacji) uruchomienie pliku wykonywalnego. Stosowane często podczas instalacji ./install . Więcej o uruchamianiu plików wykonywalnych na sąsiedniej stronie.
  • CTRL Z lub CTRL C (skrót klawiszowy) - zatrzymanie (lub zabicie) wydanego ostatnio polecenia. Więcej na ten temat na stronie o procesach i zadaniach.
  • Czasami wykonasz jakieś polecenie i będziesz chciał wyniki zapisać do pliku txt. Zamiast mozolnie spisywać z monitora literkę po literce, daj prosty znaczek > . Jest to tzw. przekierowanie strumienia. Przykład zlecenia:
    ls -la >/home/antek/Desktop/raport.txt
    Wylistujsz zawartość aktualnego katalogu [ls -la] i na Desktopie użytkownika antek utworzysz za pomocą znaczka > plik raport.txt z listą plików i katalogów. Jeżeli chcesz DOPISAĆ wyniki do już ISTNIEJĄCEGO pliku daj dwa znaczki >> .

    Zamiast operatora > możesz użyć 1> (przyjmowane domyślnie, więc nie ma sensu tak wpisywać). Uwaga: jeśli przekierowanie na standardowe wyjście nie zadziała, wypróbuj przekierowanie na standardowe wyjście błędu za pomocą operatora 2> /dev/null w połączeniu ze zleceniem tee. Zlecenie tee umożliwia drukowanie danych zarówno na standardowe wyjście jak i do pliku. Znaczek | uruchamia potok (połączenie kilku zleceń). Przykład zlecenia:
    info groupadd 2> /dev/null | tee informacje.txt
  • Podobnie jak w Windows, DOS tak i w Linuksie mamy możliwość użycia masek nazw podczas wpisywania szukanych nazw plików oraz katalogów.
    * (gwiazdka) zastępuje dowolny ciąg znaków
    ? (znak zapytania) zastępuje jeden znak
    [costam] , czyli zbiór znaków w nawiasach kwadratowych - pozwala wybierać nazwy zawierające znaki z nawiasu. Przykład: /home/antek/[oO]? czyli pliki dwuliterowe zaczynające się na małe lub duże o. Inny przykład: /home/antek/[oO]* czyli pliki o nieokreślonej długości, zaczynajace się na małe lub duże o.
  • Nazwy plików i katalogów ukrytych zaczynają się od kropki.
  • Shele linuksowe rozróżniają duże i małe litery w nazwach plików (katalogów). Można stosować znaki typu -@#^. ale nie można używać znaków ",'*&)(|!`?/\<>;
  • W trakcie wpisywania polecenia możemy skorzystać z klawisza TAB. Ułatwia pracę i automatycznie dopisuje resztę nazwy. Przykładowo po napisaniu drakfire i wciśnięciu TAB otrzymamy polecenie drakfirewall, a po wpisaniu drak i dwukrotnym, szybkim wciśnięciu TAB uzyskasz listę poleceń zaczynających się na drak (a jest ich wiele).
  • Link (dowiązanie, skrót do pliku) w Linuksie nie jest tym samym co w Windows. Przede wszystkim w Linuksie rozróżniamy dwa rodzaje linków: "dowiązanie" miękkie oraz twarde. Miękkie, czyli "symlink" (symboliczny link) w schemacie działania jest trochę podobne do tego stosowanego w Windows. Natomiast zrozumienie dowiązania "twardego", czyli "hardlinku" (twardego linku) wymaga poznania budowy systemów plików: bloków danych oraz i-węzłów. W skrócie można powiedzieć, że dowiązanie twarde to kolejne, pełnowartościowe łącze do tych samych danych w systemie plików. Prościej mówiąc "twardy link" jest kolejną nazwą tego samego pliku. Jakie daje to praktyczne działanie? Aby definitywnie skasować dane pliku trzeba usunąć wszystkie "hardlinki" tego pliku (natomiast skasowanie skrótu, "symlinku" nie kasuje danych). Dowiązania "twarde" mają ograniczenia: muszą występować jedynie w obrębie jednego urządzenia (partycji, dysku) oraz powinny należeć do tego samego użytkownika. Zlecenie tworzące skrót (symlink) wyglada tak:
    ln -s /etc/rc.d/init.d/httpd /etc/rc.d/rc5.d/S85httpd
    Jest zbudowane z czterech członów:
    • ln (link) czyli zlecenie tworzące skrót
    • -s (opcja decydująca, że link ma być typu symlink)
    • /etc/rc.d/init.d/httpd czyli skąd i co (scrypt httpd odpalajacy Apacha)
    • /etc/rc.d/rc5.d/S85httpd czyli gdzie i z jaką nazwą


    ln -b oryginalna_nazwa nowa_nazwa (backup) tworzy kopie zapasowe plików przed ich usunięciem lub nadpisaniem
    ln -f oryginalna_nazwa nowa_nazwa (force) nadpisuje istniejący plik o takiej samej nazwie
    ln -i oryginalna_nazwa nowa_nazwa (interaktive) oczekuje na potwierdzenie przed usunięciem
    ln -s oryginalna_nazwa nowa_nazwa (symbolic) tworzy dowiązania symboliczne zamiast stałych
    ln -v oryginalna_nazwa nowa_nazwa (verbose) wypisuje nazwę każdego pliku przed utworzeniem dowiązania


    Przypominam, że dowiązanie symboliczne można wykonać wygodnym programikiem mc (przykład z konfiguracji JAVA dla Netscape):
    "Ustaw się na lewym panelu w katalogu /usr /local /netscape /plugins i w prawym panelu na pliku /usr /java /j2rel.4.2_06 /plugin /i386 /ns7 /libjavaplugin_oji.so . Mając belkę nad plikiem /usr /java /j2rel.4.2_06 /plugin /i386 /ns7/libjavaplugin_oji.so wciśnij klawisz F9. Następnie za pomocą klawiszy kierunkowych (strzałek obok klawiatury numerycznej) przejdź na menu PLIK i klawiszem-strzałką w dół otwórz menu PLIK. Wybierz DOWIĄZANIE SYMBOLICZNE. Zatwierdź klawiszem ENTER."
  • Podczas edycji scryptów zauważysz wiersze zaczynajace się od # . Jest to bezpieczny sposób umieszczania komentarzy lub bezbolesnego blokowania części scryptu.
  • Szukając materiałów opisujących Linuksa znajdziesz czasami w instrukcji wykonania coś takiego:

    # mount /dev/fd0
    $ mount /dev/fd0

    Pierwszy jest poleceniem wydanym przez roota, drugi przez zwykłego użytkownika. Musisz nauczyć się odróżniać, kiedy znak hasz # oznacza opis komendy, kiedy jest zneutralizowanym (czyli sprowadzonym do roli komentarza) wpisem w skrypcie, a także... kiedy jest wpisem rozpoczynającym scrypt (patrz przykład /etc/rc.d/rc.his).

 

 

* * *

 

 

Po udanym zalogowaniu możesz przeglądać zawartość domowego katalogu. Wydaj polecenie ls (czyli listowanie zawartości obecnego katalogu). Istnieje szereg opcji, z których najciekawsze to:

  • ls -a (wyświetlenie wszystkich plików i katalogów, łącznie z ukrytymi)
  • ls -c (sortowanie wg czasu utworzenia, ls -cr czyli w odwrotnym porządku sortowania)
  • ls -t (sortowanie plików wg czasu ich modyfikacji - najnowsze srwsze, ls -tr czyli w odwrotnym porządku sortowania)
  • ls -r (wyświetla wyniki w odwrotnym porządku sortowania)
  • ls -S (sortowanie plików wg rozmiaru, ls -Sr czyli w odwrotnym porządku sortowania)
  • ls -C (wyświetlanie wyników w kolumnach posortowanych pionowo)
  • ls -l (wyświetlanie danych szczegółowych). Popularne jest zlecenie ls -la (-a wyświetli pliki ukryte czyli o nazwie zaczynającej się kropką)
  • ls -R (lista plików w katalogu i podkatalogach)
  • ls -aRl (lista wszystkich plików, także ukrytych, w katalogu i podkatalogach)
  • lsattr (listowania plików z rozszerzonymi atrybutami). Zobacz zlecenie chattr
  • ls -B (pliki kopii zapasowych przeważnie kończą się znakiem tyldy ~, ten parametr sprawi, że nie zostaną one wyświetlone)
  • ls -i (wyświetla numer indeksowy i-węzła i numer seryjny każdego pliku)


Zliczanie plików w wybranym katalogu za pomocą zlecenia ls opisałem na sąsiedniej stronie.
Zobacz też:
echo "masz `ls|wc -l` plikow w katalogu `pwd`"
Otrzymamy w odpowiedzi ilość plików w aktualnym katalogu. Mamy zlecenia ls, wc, pwd oddzielone znakiem ` (na klawiszu z tyldą). Uwaga na znak cudzysłowia "

Listowanie wyłącznie katalogów: dir, vdir, tree.

Dla ambitnych pokażę bardziej rozbudowane plecenia listowania:
ls -l /var/log/messages.[1-5].gz
lub
ls -l /var/log/messages.[12345].gz
Jeżeli mamy w katalogu /var/log pliki o nazwach messages.*.gz , gdzie w miejscu * występują liczby 1, 2, 3, 4, 5 to wspomniane polecenia wyświetlą listę plików posortowanych od 1 do 5

 

 

* * *

 

 

Czasami będziesz musiał utworzyć sobie podkatalog lub plik. Jest to banalnie proste. Wystarczy polecenie mkdir nazwakatalogu ew. touch nazwapliku i sprawa z pozoru załatwiona. Jednak prawa takiego katalogu lub pliku są uzależnione od widzimisie administratora (poprzez parametry montowania partycji w pliku /etc/fstab oraz narzuconego w systemie poziomu bezpieczeństwa (msec). Po wydaniu polecenia mkdir obrazki założyłeś jako użytkownik antek katalog obrazki o automatycznie nadanych prawach:

obrazki drwx --- --- antek.antek

Co to oznacza ten zapis? Literka d z lewej strony informuje, że mamy do czynienia z katalogiem. Następnie mamy w trzech częściach podane trzy prawa: r - read (czytanie), w - write (pisanie, zmienianie itp.) oraz x - czyli prawo do uruchomienia. W systemach sieciowych dawno, dawno temu ktoś wpadł na świetny pomysł podzielenia użytkowników na (od lewej) właściciela, znajomych właściciela (tzw. grupy) i obcych. Nasz katalog obrazki (oraz jego zawartość) może wykorzystywać TYLKO właściciel. A co z kumpalmi, którzy też chcą tam zagladać? Czas na zmiany. Służy do tego polecenie: chmod i chown.

  • chmod 750 obrazki daje prawa: rwxr-x--- czyli rwx dla właściciela (liczba 7), rx dla znajomych (liczba 5) oraz zero praw dla obcych. Jak łatwo zapamietać technikę wyliczania wartości od 0 do 7? Mamy, jak już wiesz prawa: rwx. Prawo r to wartość 4, prawo w to wartość 2 i prawo x to wartość 1. Suma tych liczb da nam wartość ostateczną, gotową do wpisania w poleceniu chmod.
  • chown antek.kazik obrazki wyznacza właściciela i następnie znajomych właściciela. Wszyscy z grupy użytkownika kazik (których z kolei on wyznaczy) będą mogli wykonać w katalogu obrazki to, na co zezwolą ustawienia po poleceniu chmod. Niezbyt skomplikowane nie?
  • Czasami potrzeba rekurencyjnie, czyli z podkatalogami i ich zawartością jednolicie nadać prawa. Do tego służy opcja -R czyli np. chown -R antek.kazik obrazki lub chmod -R 764 obrazki .

Najczęściej stosowane przykłady zlecenia chmod:

  • chmod 744 nazwa  (rwx r-- r--)
  • chmod 644 nazwa  (rw- r-- r--)
  • chmod 750 nazwa  (rwx r-x ---)
  • chmod 711 nazwa  (rwx --x --x)

    7 daje rwx
    6 daje rw-
    5 daje r-x
    4 daje r--
    1 daje --x
    2, 3 nie stosuje się w praktyce

Celowo nie opisałem w tej części ustawiania bitu suid oraz sgid. Zapraszam tutaj.

 

*

 

Jeżeli interesuje Ciebie bardziej zaawansowany wykład o prawach do plików i katalogów to proszę:

Do określania praw dostępu do plików i katalogów służy program chmod. Jego parametry można podzielić na trzy elementy:

KOGO DOTYCZĄ ZMIANY

  • u - właściciel
  • g - członków grupy, do której należy plik
  • o - inni, czyli reszta userów tzw. obcy
  • a - wszyscy użytkownicy
Przykład parametru u w zleceniu chmod u+rx nazwapliku
W tym przykładzie u czyli właściciel, ma mieć prawa: r (czytanie), x (uruchomienie). Reszta praw taka jaka była dotychczas.

JAKIE PRAWA

  • r - odczyt
  • w - zapis
  • x - wykonanie
  • t - sticky (patrz poniżej)
  • s - suid/sgid . Nie polecam na początku nauki. Więcej na ten temat poniżej.
Przykład parametrów rx w zleceniu chmod u=rx nazwapliku
W tym przykładzie u (czyli właściciel), ma mieć prawa: r (czytanie), x (uruchomienie). Reszta praw dla właściciela została wyzerowana bo użyto znak(=). Grupa oraz inni mają prawa takie jak dotychczas.

JAKIE ZMIANY (dodawanie lub cofnięcie)

+ (znak plus) czyli przyznanie praw
- (znak minus) czyli zabranie praw
= (znak równości) czyli określenie, że nadawane uprawnienia są kompletne. Przykład parametru = w zleceniu chmod u=rx nazwapliku . W tym przykładzie u (czyli właściciel), ma mieć prawa: r (czytanie), x (uruchomienie). Reszta praw dla właściciela została wyzerowana bo użyto znak(=). Grupa oraz inni mają prawa takie jak dotychczas.

Przykłady zleceń:

  • chmod a-w nazwapliku czyli cofnięcie (-)   wszystkim (a)   prawa do zapisu (w).
  • chmod o=r nazwapliku czyli nadanie (=) praw   dla obcych (o)   do odczytu (r). Pozostałe prawa dla obcych (o) są cofnięte do zera, bo użyto znak (=). Właściciel i grupa mają dotychczasowe prawa.
  • chmod u=rx nazwaprogramu czyli nadanie (=) praw   dla właściciela (u)   do odczytu i wykonania (rx). Pozostałe prawa dla właściciela (u) są cofnięte do zera, bo użyto znak (=). Obcy i grupa mają dotychczasowe prawa.
  • chmod a+x,u+s nazwaprogramu czyli złozone zlecenie składające się z dwóch członów oddzielonych przecinkiem. nadanie (+) praw   dla wszystkich (a)   do wykonania (x) oraz ustawienie bitu suid. Pozostałe prawa są dotychczasowe.

 

*

 

Kiedy zakończysz instalację systemu i programów - sprawdź, w jakich plikach masz ustawione bity SUID, SGID (SetUID, SetGID). Określają one prawa użytkownika (SUID) lub grupy (SGID) do wykonania programu z prawami roota. Nie jest wskazane, abyś samodzielnie (w trakcie nauki) nadawał takie uprawnienia, gdyż dla wprawnego włamywacza nawet gra działajaca z prawami administratora może pomóc w przejęciu praw roota.

Nadawanie prawa suid, sgid oraz sticky (patrz punkt poniżej) robimy zleceniem chmod. Nietypowością jest czterocyfrowy zapis parametrów tego zlecenia. Pierwszy z lewej to nasz znak nadania:

chmod 1751 nazwapliku czyli 1-nadanie bitu sticky, czyli prawa rwx r-x --t
chmod 2751 nazwapliku czyli 2-nadanie bitu SGID, czyli prawa rwx r-s --x
chmod 4751 nazwapliku czyli 4-nadanie bitu SUID, czyli prawa rws r-x --x
chmod u+s nazwapliku czyli nadanie bitu SUID (pozostałe prawa bez zmian)
chmod g+s nazwapliku czyli nadanie bitu SGID (pozostałe prawa bez zmian)
chmod +t nazwapliku czyli nadanie bitu sticky (pozostałe prawa bez zmian)

Usunięcie flagi SUID, SGID, sticky:

chmod 751 nazwapliku czyli gdy wybierzesz trzycyfrowy zapis zlecenia chmod lub dasz zlecenie typu:
chmod u=rx nazwapliku (znak=), to wykasujesz nadane już prawo SUID, SGID, sticky.
chmod -s nazwa_pliku - jednoczesne usunięcie bitów SUID, SGID
chmod u-s nazwa_pliku - usunięcie bitu SUID
chmod g-s nazwa_pliku - usunięcie bitu SGID
chmod -t nazwapliku czyli usunięcie bitu sticky (pozostałe prawa bez zmian)

Odrobina wyjaśnień: czasami zdarza się, że trzeba uruchomić program, który do poprawnego działania wymaga uruchomienia przez roota. Aby umożliwić innym użytkownikom uruchamianie takiego programu (np. ping) trzeba uaktywnić prawo dostępu SUID zleceniem chmod 4755 /bin/ping (zwróć uwagę na liczbę 4). Natomiast SGID działa nieco inaczej: programy opatrzone tym prawem dostępu są wykonywane z prawami dostępu grupy do której należą (zamiast praw grupy, w skład której wchodzi użytkownik je uruchamiający). Prawo SGID jest oznaczane cyfrą 2 i zlecenie nakładające je wygląda następująco: chmod 2755 /usr/local/backups/plik . Po wykonaniu listowania (zleceniem ls -l) zobaczymy w miejscu praw uruchomienia (x) literkę s. Prawa dostępu do plików SUID zawierają s tam, gdzie powinno znajdować się pierwsze (z lewej) x, a w przypadku plików SGID literka s, zamiast drugiego x.

Warto usunąć bity SUID, SGID wobec plików, które nie muszą działać z prawami roota. Ale mam jedną uwagę: jeżeli nie instalowałeś gierek, to dajac WYSOKI poziom bezpieczeństwa (w trakcie instalacji) ustaliłeś automatycznie na minimalnym poziomie obecność tych bitów w systemie. Pamiętaj o narzędziu SUDO, które umożliwia zwykłemu userowi uruchomienie plików dostępnych tylko rootowi.

Sprawdzenie obecności bitów SUID

find / -type f -perm -4000 -exec ls -l '{}' \;|more

lub z tworzeniem pliku raportu wykaz_suid.txt w katalogu /home/antek/
find / -user root -perm -4000 >/home/antek/wykaz_suid.txt - wówczas zdejmowanie atrybutu odbędzie się z wykorzystaniem pliku /home/antek/wykaz_suid.txt za pomocą zlecenia:
chmod -s `cat /home/antek/wykaz_suid.txt` (znak ` jest na klawiszu z ~ tyldą).

lub po prostu
find / -perm +4000

Sprawdzenie obecności bitów SGID

find / -type f -perm -2000 -exec ls -l '{}' \;|more
lub po prostu
find / -perm +2000

Obserwowałem mój system pod względem obecności bitów SUID i stwierdziłem, że są one niezbędne na partycji montowanej jako /usr (konkretnie w podkatalogach: /usr/bin , /usr/lib , /usr/sbin). Co to oznacza w praktyce? Że można zaryzykować usunięcie ich z plików mieszczących się w innych katalogach np. /var , /var/www , /var/ftp.

Jako ciekawostkę podam treść e-maila (z dnia 04.09.2002) od Mandrake-Security, w którym zaleca się użytkownikom wersji 7.2-8.2 usunięcie bitu setuid z pliku linuxconf poleceniem chmod u-s /bin/linuxconf

(...) by default, Mandrake Linux ships linuxconf as setuid root in versions 7.2 through 8.2. Successful exploitation will yield a root shell. MandrakeSoft recommends that all users take steps and remove the setuid bit from linuxconf. This can be done by issuing, as root, the following command: chmod u-s /bin/linuxconf . For users of Linux-Mandrake 7.2, the correct location of the linuxconf executable is /sbin(...)

 

 

* * *

 

 

Czasami będziesz musiał odnaleźć plik. Będziesz znał np. część jego nazwy. Użyj wówczas polecenia find, a w nazwę pliku wpisz poznane już znaki ?*. Polecam stronę: http://ultra.ap.krakow.pl/~bar/FIND/find_toc.html (mam ją w swoim archiwum). Przykład zlecenia:

find /etc -name '*.conf' -print

Wyjaśnienia:
find /etc -name (czyli przeszukaj katalog /etc wg nazw)
'*.conf' (W nazwie wyszukuj plików o dowolnej treści, ale z zakończeniem .conf . Znaczek ' jest na klawiszu z cudzysłowem.)
-print (Wyniki wydrukuj na domyślnym urządzeniu, czyli ekranie.)

Jeżeli chcemy znaleźć program spell w katalogu /usr/bin wystarczy napisać:
find /usr/bin -name spell -print

Można również użyć zlecenie find do znalezienia plików poprzez datę, jak również wprowadzić przedział dat. Jeżeli chcemy znaleźć wszystkie programy w katalogu /usr/bin , które nie były wykorzystane przez ostatnie 100 dni można użyć polecenia:
find /usr/bin -type f -atime +100 -print

Aby znaleźć pliki, które zostały utoworzone lub zmodyfikowane w ciągu ostatniego dnia można napisać:
find /usr/bin -type f -mtime -1 -print

 

 

* * *

 

 

Wielkość katalogów wraz z podkatalogami wyświetli polecenie du -sh * . Natomiast ilość wolnego miejsca na dysku np. /dev/hda zobaczysz po wpisaniu zlecenia: df /dev/hda

 

 

* * *

 

 

Usuwanie katalogów: załatwi polecenie rmdir katalog . Niestety taki katalog musi być pusty. Usunięcie pełnego wymaga opcji rm -r katalog , ale będziemy musieli potwierdzać usuwanie. Zlecenie rm -rf katalog jest brutalne i szybkie. Patrz co w nim chcesz usunąć, gdyż pomyłka pod rootem może kosztować nawet utratę całej zawartości dysku (gdy zamiast rm rf /katalog wpiszesz nieprawidłowo: rm rf / katalog (czyli po / wciśniesz błędną spację i dopiero nazwę katalog).

Plik usuniemy zleceniem rm nazwapliku

 

 

WYKAZ ZLECEŃ DO BEZWZGLĘDNEGO OPANOWANIA

 

 


  1. Uzyskiwanie pomocy
    • apropos [Wybieranie stron podręcznika zawierających słowo kluczowe]
    • whatis [Podobnie jak apropos lecz tylko wobec pełnych wyrazów]
    • info [Pomoc na temat danego polecenia]
    • man [Wywołanie podręcznika pomocy]
  2. Ułatwienia wykonywania zadań

    • alias oraz unalias [OPIS] [Tworzenie nazw zastępczych dla długich poleceń]
    • type [Informacje o typie polecenia]
  3. Operacje na plikach i katalogach

    • cd [OPIS] [Zmiana katalogu]
    • chmod [OPIS] [Zmiana uprawnień]
    • chown [OPIS] [Zmiana właciciela pliku i (lub) grupy]
    • cp [Kopiowanie]
    • ls [OPIS] [Listowanie zawartości katalogu]
    • mkdir [OPIS] [Tworzenie katalogu]
    • mv [Przenoszenie lub zmiana nazwy]
    • rm [Usuwanie plików]
    • rmdir [Usuwanie katalogów]
    • pwd [Wyświetlenie ścieżki do bieżącego katalogu. "Gdzie ja jestem?"]
    • touch [Tworzenie pustego pliku] . Można zmieniać datę modyfikacji pliku: touch -t 11221000 plik . Czas modyfikacji pliku został ustawiony na godzinę 10:00, 22 listopada 2003 roku.
  4. Znajdowanie plików...

    • find [OPIS] [... na podstawie kryteriów, takich jak nazwa, rozmiar itp]
    • locate [... w utworzonym wcześniej spisie (bazie danych o plikach)]
    • whereis [... w katalogach]
    • which [ daje pełną ścieżkę do danego pliku, o ile został umieszczony w katalogach wymienionych w definicji zmiennej]
  5. Przetwarzanie informacji tekstowych

    • cat [Wyświetlanie i ew. łączenie plików tekstowych] . Aby przejrzeć zawartość krótkiego pliku: cat plik.txt . Numerowanie linii przez dodanie opcji -n czyli cat -n plik.txt . Można wyswietlić kilka plików na raz: cat -n plik1.txt plik2.txt lub cat -n plik.* . W celu złączenia kilku plików w jeden należy się posłużyć operatorem przekierowania potoku >> czyli cat plik1.txt plik2.txt >> plik3.txt
    • cut [Wycinanie fragmentów wierszy pliku tekstowego]
    • dd [Kopiowanie z ew. konwersją danych tekstowych]
    • diff [Porównanie zawartości plików tekstowych]
    • grep [OPIS] [Znajdowanie ciagów znaków]
    • more [Przeglądanie danych ekran po ekranie w dół]
    • less [Przeglądanie danych ekran po ekranie w dół i górę tekstu , przydatne przy długim listingu plików np. ls /usr/bin | less] . Do przeglądania plików skompresowanych można użyć polecenia zless.su
    • tail [np. tail -f nazwapliku - śledzenie na bieżąco zmian w pliku]
    • Ipr [Drukowanie]
    • sed [Edycja strumieniowa tekstu]
    • vi [Potężny edytor tekstu]
    • sort [Sortowanie wierszy w plikach tekstowych]
  6. Archiwizowanie i kompresowanie plików

    • gzip oraz gunzip [OPIS] [Pakowanie pliku]
    • tar [OPIS] [Tworzenie archiwum z wielu katalogów bez pakowania]
    • rpm [OPIS] [Tworzenie archiwum przy pomocy programu RPM]
  7. Zarządzanie procesami

    • bg [Uruchomienie w tle przerwanego procesu]
    • fg [Uruchomienie na pierwszym planie przerwanego procesu
    • free [Wyświetlenie wolnej i zajętej pamięci]
    • halt [OPIS] [Wyłączenie systemu]
    • shutdown [OPIS] [Zatrzymanie systemu]
    • reboot [OPIS] [Zatrzymanie i ponowne uruchomienie systemu]
    • kill [Zabicie procesu]
    • ldd [Wyświetlenie nazw bibliotek potrzebnych do uruchomienia programu]
    • nice [Uruchomienie procesu z określonym priorytrtem]
    • ps [OPIS] [Lista działajacych procesów]
    • env oraz printenv [Wyświetlenie zmiennych środowiska]
    • top [OPIS] [Lista procesów najbardziej absorbujących pamięć]
    • uname [Informacje o systemie]
  8. Zarządzanie użytkownikami

    • useradd [OPIS] [dodawanie userów]
    • groups [Wyświetlenie przynależności użytkownika do grup]
    • id [Wyświetlenie identyfikatora użytkownika i jego grupy]
    • passwd [Zmiana hasła]
    • chsh [Zmiana powłoki]
    • su [Przejęcie uprawnień superużytkownika]
  9. Zarządzanie systemem plików

    • fdisk [OPIS] [Zarządzanie partycjami
    • mount oraz unmount [OPIS] [Montowanie-odmontowanie urządzeń typu dyski, CD-ROM, stacje dyskietek. Dobry link opisujący zlecenie. Mam go w swoim archiwum1, archiwum2]
    • df [Informacja o zajętości zamontowanych urządzeń pamięci masowej]
    • du [Informacja o zajętości urządzenia lub objętości plików]
    • fdformat [Niskopoziomowe formatowanie dyskietek]
    • fsck [Sprawdzenie i ew. naprawa systemu plików]
  10. INNE

    • dmesg [Odtworzenie komunikatów startowych]
    • ./nazwapliku [Uruchomienie pliku wykonywalnego]

 

 

* * *

 

 

Musisz wiedzieć, że polecenia tekstowe np. reboot to nic innego, jak... pliki. Uruchamiając polecenia, uruchamiasz pliki wykonywalne lub skrypty zapisane w plikach tekstowych.

W katalogu /sbin spotkać można starych znajomych: killall5 (zabija wszystkie aktywne logowania), linuxconf (okienkowe narzędzie do konfiguracji, wbrew pozorom trudne), netconf (moduł linuxconfa), modemconf (moduł linuxconfa), tsconf (quoty, partycje, volumeny nfs), shorewall (scrypt do konfigurowania iptables), reboot, poweroff, halt. Za to /usr/bin/drakbug umożliwia wysłanie do centrali Mandrake raportu o wykrytym błędzie.

Mając Mandrake 9.x, 10, warto zajrzeć do /usr/sbin by uruchomić okienkowe moduły znane z KDE, do których uruchomienia... nie zawsze potrzeba KDE, a nawet zwykłych X-ów. Uwaga: nie ma wielu z tych plików w Mandrake 6.x, 7.x, 8.x. Więcej o Mandrake Control Center znajdziesz tutaj.

 

 

* * *

 

 

Skróty klawiszowe przydatne podczas pracy w shellu. Uwaga: podczas edycji pliku w edytorku, należy używać skróty właściwe dla danego edytorka.

  • SHIFT PageUp - przewijanie ekranu w górę oraz w dół (PageDown)
  • CTRL a - przenosi kursor na początek wiersza (e przenosi na koniec)
  • CTRL d - kasowanie (uwaga ten skrót także wylogowuje)
  • CTRL u - kasowanie całego wiersza poleceń
  • CTRL k - "wycięcie" tekstu do schowka
  • CTRL y - "wklejenie" tekstu ze schowka
  • CTRL l - jak zlecenie clear
  • CTRL r - szukamy w historii poleceń zlecenia na r
  • strzałki kierunkowe dół, góra - historia poleceń
  • cd /opt/net TAB dopisze treść zlecenia (nazwę pliku, czyli w tym wypadku netscape). Podobnie jak np. drak TAB wyświetli wszystkie zlecenia o nazwie zaczynającej się słowem drak np. drakfirewall, drakgw itd.

 


 
SUDO, czyli program pozwalający wybranemu, zwykłemu userowi na uruchomienie innego, dowolnego programu dostępnego wyłącznie dla roota został opisany na sąsiedniej stronie..
 

 
twarogal@wp.pl

Uwaga: z powodu namnożenia się różnych złodziejskich witryn www, które kopiują moje strony i umieszczają je u siebie wraz z komercyjnymi reklamami (na których zarabiają) informuję, że wszelkie prawa są zastrzeżone.

Uwaga. Aby uniknąć zasysania całej witryny gorzow-wlkp.pl/linux za pomocą programów typu TeleportPro, WebCopier itd. informuję, że udostępniłem spakowaną wersję (w formacie RAR).

 
 

 

 

Witryna była dostępna pod adresami: strony.wp.pl/wp/twarogal , strony.wp.pl/wp/linuxtwarka , twarogal.republika.pl , klub.chip.pl/twarogal oraz gorzow-wlkp.net (w latach 2003/04).

 

 

gorzow-wlkp.pl

Informacje o odwiedzających są rejestrowane i publicznie udostępniane na pod adresem: http://gorzow-wlkp.pl/licznik/