background image

Materiały archiwalne –nieco przestarzałe

 

Postawy administracji systemu Linux

W ostatnich latach coraz częściej się zdarza, że użytkownik zwykłego komputera staje się 
jego administratorem, oczywiście mówię o użytkowniku Linuksa. Prawdopodobnie sami 

zainstalowaliśmy system i sami musimy go skonfigurować itd. Co prawda niniejszy 
artykuł nie omawia samej konfiguracji systemu (instalacja sterowników itp.) ale ma 

uzmysłowić przed jakim zadaniem stoi mniej więcej administrator - w naszym przypadku 
to właśnie my nim jesteśmy.

Omawiane zagadnienia

I Konta użytkowników;

- tworzenie kont,
- usuwanie kont,

- hasła.

II Grupy;

- tworzenie grup,
- usuwanie grup,

- zmiana aktualnej grupy,
- przypisanie/usunięcie użytkownika z danej grupy.

III Prawa dostępu;
- polecenie chown,

- polecenie chgrp,
- polecenie chmod.

IV Polecenie su.

V Pakiet sudo.

VI Podsumowanie.

I Konta użytkowników.

Zaraz po instalacji systemu powinniśmy utworzyć swoje własne (zwykłe) konto. 
Oczywiście wtedy, gdy nie zrobiliśmy tego podczas instalacji. Nie zaleca się używać konta 

root do codziennej pracy. Wynika to z faktu, że konto root ma za dużą władzę, np. nie 
potrzebujemy konta root do oglądania filmów, słuchania muzyki itd. Konto root służy do 

zadań administracyjnych, a nie do zabawy. Jeżeli nie znasz dobrze Linuksa to może Cię 
zdarzyć, że niechcący coś zepsujesz i może się to skończyć ponowną instalacją systemu. 

Wróćmy jednak do tworzenia kont. Konto można utworzyć na kilka sposobów. Jednym z 
nich jest wydanie w wierszu poleceń komendy useradd. Przykładowo:

# useradd wiedzmin

Teraz w systemie mamy nowego użytkownika. Innym sposobem jest edycja pliku 

/etc/passwd. Jednak nie polecam tego sposobu początkującym użytkownikom. Plik 

background image

/etc/passwd składa się z 7 pól oddzielonych od siebie znakami ":". Pierwsze pole oznacza 
nazwę użytkownika, drugie - miejsce na hasło, trzecie - identyfikator, czwarte - grupa do 

jakiej jest user przypisany, piąte - imię i nazwisko usera, szóste - katalog domowy i 
siódme - powłoka. A teraz zobaczmy jak to wygląda w praktyce:

wiedzmin:x:100:100:Debian Fanatic User:/home/wiedzmin:/bin/bash 

Konto jest już gotowe. Następnym krokiem będzie skopiowanie zawartości katalogu 

/etc/skel do katalogu domowego użytkownika. Na koniec definiujemy hasło za pomocą 
polecenia passwd, np.:

# passwd wiedzmin

Polecenie passwd może wydać także zwykły user, ale będzie mógł on zmienić hasło tylko 

swojego konta. Konto jest już teraz w pełni gotowe do pracy. Wystarczy się zalogować.

Utworzyliśmy konto, jednak po jakimś czasie staje się ono niepotrzebne. Np. 

utworzyliśmy konto siostrze i po jakimś czasie stwierdziliśmy, że ona wcale go nie używa. 
Konto usuwamy w następujący sposób:

# userdel nazwa_konta

Teraz musimy skasować katalog domowy danego konta i to wszystko. Możemy też usunąć 

wpis w pliku /etc/passwd, ale userdel spełnia zadanie bardzo dobrze.

II Grupy.

Każdy plik/katalog w systemie ma określonego właściciela i grupę. Można to bardzo łatwo 
sprawdzić wydając polecenie ls -l, np.:

# ls -l /home
drwxrwsr-x 2 root users 1024 gru 17 19:40 home

Jak widać właścicielem katalogu /home jest root, natomiast katalog /home należy do 
grupy users. Grupy tworzymy za pomocą polecenia groupadd, np.:

# groupadd nazwa_grupy

Ewentualnie możemy zrobić to edytując plik /etc/group. W pliku tym informacje o 

grupach umieszczone są w następujący sposób: nazwa grupy:hasło:numer 
identyfikacyjny grupy:użytkownik przypisany do grupy. Przykładowo:

wiedzmin:x:100

Aby usunąć daną grupę należy posłużyć się poleceniem groupdel:

# groupdel nazwa_grupy

Można też usunąć wpis w pliku /etc/group. Przy usuwaniu powinniśmy uważać czy nie 

usuniemy grupy, do której jest przypisany jakiś użytkownik. Jeżeli dany użytkownik 
należy do kilku grup zawsze może zmienić aktualną grupę na tą, której aktualnie 

potrzebuje. Żeby sprawdzić do jakich grup należy użytkownik wydajemy polecenie 
groups. Aby zmienić aktualną grupę na inną wydajemy polecenie newgrp.

background image

Wiemy już nie co o grupach, ale co zrobić aby dodać użytkownika do danej grupy? Np. u 
mnie nie mogłem zwykłym użytkownikiem słuchać muzyki, uruchomić X-Chata. Musiałem 

użytkownika wiedzmin przypisać do dodatkowych grup. Aby dodać użytkownika do danej 
grupy musimy wyedytować plik /etc/group. Następnie dopisujemy użytkownika do danej 

grupy w następujący sposób. Po znaku dwukropka dopisujemy nazwę użytkownika. Jeżeli 
chcemy do jednej grupy dopisać więcej niż jednego usera musimy postawić przecinki, ale 

po znaku przecinka nie można zrobić odstępu. Np.

audio:x:105:wiedzmin,geralt,ktos_tam_jeszcze

Natomiast jeżeli chcemy kogoś usunąć z danej grupy wystarczy, że usuniemy odpowiedni 
wpis w pliku /etc/group.

III Prawa dostępu.

Polecenie chown - służy ono do nadawania właściciela pliku/katalogu. Można również 

nadać grupę. Np:

# chown właściciel nazwa_pliku

Jeżeli chcemy nadać również grupę:

# chown właściciel.grupa nazwa_pliku

Polecenie chgrp - służy do nadawania grupy pliku/katalogu. Jednak raczej rzadko używa 
się tego polecenia, ponieważ można przypisać plikowi grupę za pomocą polecenia chown.

# chgrp grupa nazwa_pliku

Polecenie chmod - służy do nadawania praw dostępu do pliku/katalogu. Każdy 

plik/katalog jest podzielony na 3 części (jeżeli chodzi o prawa dostępu). Żeby to 
sprawdzić wpiszmy w wierszu poleceń komendę ls -l. Oto przykładowy wynik jego 

działania:

drwxr-xr-x 2 wiedzmin wiedzmin 1024 gru 28 13:33 texty

W tym przypadku skupmy się na drwxr-xr-x. Z tego komunikatu dowiadujemy się, że 
texty jest katalogiem - d, właściciel ma prawo do odczytu - r, zapisu - w i wykonywania - 

x. Grupa i pozostali użytkownicy mają prawo do odczytu i wykonywania. Przejdźmy teraz 
do bardziej szczegółowego omówienia tego tematu.

-rwxrwxrwx
 | \ | /  \ | /  \ | /

0 1     2     3

0 - ta informacja mówi nam czy mamy do czynienia z plikiem czy z katalogiem,

1 - prawa dostępu dla właściciela,
2 - prawa dostępu dla grupy,

3 - prawa dostępu dla pozostałych użytkowników.

Teraz wyjaśnię co oznaczają poszczególne litery:

r - prawo do czytania,
w - prawo do zapisu,

x - prawo do wykonywania.

background image

Ustawić prawa można na dwa sposoby. Pierwszym z nich jest:

# chmod +r plik

Nadaliśmy plikowi - plik prawo do odczytu. Jeżeli te prawo chcemy usunąć to wystarczy, 
że zamiast plusa wstawimy znak "-".

Nadawanie praw dostępu za pomocą liczb ósemkowych.

0 - brak jakichkolwiek uprawnień,

1 - --x,
2 - -w-,

3 - -wx,
4 - r--,

5 - r-x,
6 - rw-,

7 - rwx.

Jeżeli chcemy teraz nadać prawa dostępu do jakiegoś pliku wystarczy, że użyjemy 

polecenia chmod, np.:

# chmod 700 plik

Teraz plik otrzymał następujące prawa dostępu: rwx------. Oznacza to, że nikt po za 
właścicielem nie będzie mógł go wykonać, czytać czy modyfikować go.

IV Polecenie su.

Może się zdarzyć, że podczas codziennej pracy nagle będziemy potrzebowali władzy jaką 

dysponuje konto root. W tym celu nie musimy na nowo logować się jako 
superużytkownik. Wystarczy w wierszu poleceń wpisać su root. Następnie będziemy 

proszeni o podanie hasła dla wyżej wymienionego konta. Np.:

$ su root

Jeżeli chcemy wywołać użytkownika root z jego ustawieniami powłoki:

$ su - root

V Pakiet sudo.

Jeżeli jesteśmy administratorem jakiejś sieci i chcemy aby część obowiązków przejmą za 

nas ktoś inny to z pomocą przyjdzie nam pakiet sudo. Jeżeli nie ma w naszym systemie 
tego pakietu powinniśmy go zainstalować. Jednak gdy nie mamy sieci bez pakietu sudo 

można się spokojnie obejść.

Pakiet sudo umożliwia administratorowi precyzyjne określenie listy użytkowników i 
poleceń, które mogą być wykorzystywane przez administratora. To bardzo upraszcza nam 

życie, zwłaszcza gdy tamy tych obowiązków za dużo. Informacje te umieszczone są z 
pliku /etc/sudores.

Plik /etc/sudores podzielony jest na kilka części: * komendy, które mogą uruchamiać 

użytkownicy pakietu sudo, * nazwy umowne (aliasy) komputerów, grupy sieciowe, 
adresy IP i sieci, * pseudonimy (aliasy) użytkowników, * dane dotyczące użytkowników, 

w tym rodzaje używanych przez nich komputerów, numery IP, lista autoryzowanych 

background image

użytkowników, informacja o tym, pod którego użytkownika "podszyje się" użytkownik 
pakietu sudo (zazwyczaj jest to root).

VI Podsumowanie.

Informacje zawarte w niniejszym artykule to tylko podstawy jakie powinien znać każdy 

początkujący administrator! Znajomość tworzenia kont, grup itd. to dopiero początek, z 
biegiem czasu będziesz stawał na coraz to innych zadaniach. Chyba, że Linuksa 

traktujesz jako zwykłą stację roboczą, w takim wypadku informacje tu zawarte są chyba 
wystarczające.

Sudo

Jeżeli jesteśmy administratorem jakiejś sieci i chcemy aby część obowiązków przejął za 

nas ktoś inny to z pomocą przyjdzie nam pakiet sudo. Program ten umożliwia nam 
bardzo wygodną manipulację z przydzielaniu różnych uprawnień dla użytkowników. 

Przejdźmy zatem do jego instalacji: 
# apt-get install sudo 

Pakiet mamy już zainstalowany. Teraz musimy dodać użytkowników do grupy sudo
Oczywiście dodajemy tych użytkowników, których chcemy dodać: 

# adduser <nazwa_uzytkownika> sudo 
Jeżeli nie dodamy użytkownika do grupy to dany użytkownik nie będzie mógł z programu 

korzystać. Sudo będzie mu kazało podać hasło, jednak gdy dany użytkownik jest dodany 
problemu tego już nie będzie :^). 

Pakiet Sudo ma ze sobą odpowiedni edytor, który służy do edytowania i modyfikowania 
pliku /etc/sodores. Przejdźmy zatem do konfigurowania programu: 

# visudo 
Polecenie to uniemożliwa nieuprawnionym użytkownikom dostępu do pliku /etc/sudores

Konfiguracja pliku /etc/sudores powinna wyglądać następująco: 
user host = (UID) polecenie 

Gdzie: 
user - nazwa użytkownika

host - nazwa hosta
(UID) - jako kto będziemy wykonywali polecenie (często jest to root)

polecenie - polecenie 
Jeżeli chcemy, żeby użytkownik wiedzmin mógł użytkować fsck.ext3 to konfiguracja 

będzie wyglądała tak: 
wiedzmin ALL = (ALL) /sbin/fsck.ext3 

Ta konfiguracja jest bardzo ogólnikowa, można ją dokładniej zdefiniować: 
wiedzmin yennefer = (root) /sbin/fsck.ext3 

Możemy również przypisywać aliasy użytkownikom, poleceniom itp., np: 
Cmnd_Alias FSCK=/sbin/fsck.ext3 

Po konfiguracji zapisujemy zmiany i możemy sprawdzić czy wszystko działa jak należy. 
Logujemy się jako zwykły użytkownik i w wierszu poleceń wpisujemy: 

$ sudo fsck.ext3

Midnight Commander

Midnight Commander jest bardzo dobrym menedżerem plików. Jest on wizualną powłoką 

zatem operacje można wykonać bez żmudnego wpisywania poleceń, używając 
graficznego interfejsu. Pozwala to na znaczne skrócenie czasu, gdy na przykład 

operujemy plikami, kopiujemy, kasujemy itd. MC ma duże możliwości, potrafi na przykład 

background image

odzyskać skasowane pliki (tylko ext2fs), przeglądać m.in. pakiety DEB, łączyć się z 
zasobami ftp czy też przeglądać archiwa np. tar. 

MC ma bardzo wygodny plik konfiguracyjny: /etc/mc/mc.etx. Możemy w nim 
pomanipulować konfiguracją menedżera. Przydaje się to, gdy np. chcemy dodać nowe 

rozszerzenie, które nie były wcześniej rozpoznawane. 
Jeżeli chcemy aby pliki mp3 były uruchamiane przez mp3blaster-a to nie ma z tym 

żadnych problemów. Jedynie musimy zmienić odpowiednią linię w pliku /etc/mc/mc.etx
regex/\.(mp3|MP3|Mp3)$

        Open=mp3blaster %f 
Z dodaniem osobnego rozszerzenia też nie ma żadnych problemów. Np. playlista 

programu mp3blaster na rozszerzenie lst. Żeby je dodać wystarczy, że zrobimy coś 
takiego: 

regex/\.(lst)$
        Open=mp3blaster -l %f 

Dodawanie nowych rozszerzeń jest bardzo wygodną rzeczą. Przypuśćmy, że dostaliśmy 
nowe skóry dla xmms-a. Niby wszystko jest normalnie, ale skóry mają rozszerzenie wsz - 

czyli skóry, które były robione z myślą o winamp-ie pod system windows. Na całe 
szczęście wsz to nic innego jak popularne zip-y. Teraz szukamy w pliku informacji o zip-

ach i dodajemy wsz i gotowe. 

   Co mamy do skonfigurowania ? 

Zanim weźmiemy się za naszą ciężką pracę musimy zastanowić się co na początek 

skonfigurować, by można było jako tako pracować. Być zbyt długo nie myślał, to Ci 
powiem. Musimy mieć ustawioną nazwę hosta i ogólnie sieć, polską klawiaturę i literki na 

ekranie, musimy dodać jakiegos użytkownika, na którego koncie będziemy pracować i 
słuchac mp-trójek, przydałby się też dostęp do internetu. Jako nowy użytkownik linuksa, 

być nie był zbyt przerażony, chciałbyś poużywać myszki w jakimś środowisku graficznym 
- to też załatwimy.

Należy Ci się, szanowny czytelniku, małe wyjaśnienie. Opis ten nie będzie dotyczył 
żadnych konkretnych dystrybucji, ale ze względu na to, że sam używam Slackware, na 

pewno będzie 'obciążony dziedzicznie' pewnymi naleciałościami. Postaram się by było ich 
jak najmniej.

   Klawiszologia 

Przyda Ci się na pewno parę informacji na temat klawiszologi w linuksie. Więc szybko i 

bez zbędnych dodatków - PgUp i PgDown przewijają konsolę w górę i w dół, strzałki w 
górę i w dół to poprzednie i następne polecenie (wcześniej wydane), Alt-Fx to konsola nr 

x (zazwyczaj od 1 do 6, na następnej pojawią się X-y, gdy je uruchomisz), Tab gdy 
zaczniesz pisać polecenie uzupełni Ci resztę (np. katalog), ScrollLock zatrzyma 

przewijanie się konsoli, cd ~ przejdzie do Twojego katalogu a cd ~user/ przejdzie do 
takalogu użytkownika user. Ponadto daj polecenie 'mc' - uruchomi Ci się nakładka 

podobna do Norton Commander. To tyle. 

   Modułowy system 

Po zainstalowaniu systemu, podczas jego pierwszego ładowania możesz zobaczyć 
mnóstwo jakichś dziwnych komunikatów. Ale nie nadążasz ich oglądać - co zrobić? Po 

załadowaniu systemu i zalogowaniu się jako root możesz wydać polecenie dmesg, które 
pokaże Ci je wszystkie jeszcze raz. Jeżeli ich ilość jest zbyt duża i znowu nie zdążyłeś (:P) 

to możesz użyć polecenia less odbierającego z wyjścia dmesg poprzez potok dane do 
wyświetlenia. Poważnie to zabrzmiało, ale jak to zapisać? Po prostu dmesg |less i już. W 

ten sposób możeszy wyświetlić wszystko (prawie) co nie mieści Ci się na ekranie. Do 
przewijania ekranu służą strałki kursora, a żeby wyjść naciśnij 'q'.

background image

Te dziwne komunikaty mówią, które sterowniki są ładowane i uruchamiane. Dotyczy to 
także niektórych usług (np. poczta - sendmail czy www - httpd). O tym w innym 

rozdziale. Tutaj skupmy się na tym, jaki masz sprzęt, bo od tego zalezy, które moduły 
załadować. Moduły obsługujące sprzęt w komputerze znajdują się w katalogu 

/lib/modules/numer_jądra (zazwyczaj). Jeżeli wyświetlisz zawartość tego katalogu i 
podkatalogów ujrzysz dużą liczbę plików z rozszerzeniem .o (np. ee100.o). To właśnie są 

te osławione moduły. Moduły ładujesz do systemu poleceniem modprobe 
nazwa_modułu
, bez rozszerzenia nazwy modułu i bez podawania pełnej ścieżki 

(powinna być podana w PATH). Jeżeli nie działa Ci coś z Twojego sprzętu, to pewnie nie 
ma tego w jądrze i nie załadowany jest moduł obsługi tego urządzenia. Zakładamy, że 

masz kartę muzyczną Sound Blaster 128 PCI, kartę sieciową zgodną z NE 2000 na PCI i 
to w zasadzie wszystko. Modułów do karty grafiki nie ma (powiedzmy), a wszystkie inne 

(od portów szeregowych czy drukarki) powinny być załadowane. Więc wedle tego, co 
wcześniej mówiliśmy, ładujemy nasze moduły: modprobe ne2k-pci i jest załadowana 

karta sieciowa oraz modprobe es1371 i jest też muzyka. Do ładowania modułów służy 
także polecenie insmod, ale modprobe jest wygodniejsze. Do zobaczenia, jakie moduły 

masz załadowane, służy polecenie lsmod. Jeżeli chcesz moduł usunąć uzyj rmmod 
nazwa_modułu
. Wszystkie te polecenia musisz wydawać z konta roota. Po szczegóły 

(który moduł do jakiej karty) odsyłam Cię do dokumentacji. Jeżeli masz już załadowane 
moduły do obsługi karty sieciowej możesz przejść do konfiguracji sieci

   Polecenie mogące się przydać 

Tutaj zaraz wymienię na szybciutko pare informacji na temat poleceń w linuksie. 

Zaczynamy. export ZMIENNA=wartosc zapisze do zmiennej wartość, którą podasz (np. 
export VISUAL=mcedit), set wyświetli wartości wszystkich zmiennych, cd 

/jakis/katalog przechodzisz do /jakies/katalog, cd .. przechodzisz o jeden katalog w 
górę, mc uruchamia Midnight Commander (podobny do Norton Commander), reboot 

spowoduje restart systemu, ls wyświetla zawartość katalogu, pwd pokaże bieżący 
katalog, passwd pozwoli zmienić hasło, ps ax pokaże aktualnie uruchomione procesy 

(programy), ping adres.ip.lub.nazwa_komputera sprawdzi połączenie sieciowe 
(spróbuj ping localhost), chmod XYZ nazwa_pliku zmieni prawa do pliku na XYZ, 

chown wlasciciel.grupa nazwa_pliku zmieni nazwę właściciela i grupę na podane, 
which nazwa_pliku pokaże w jakim katalogu jest plik o nazwie nazwa_pliku, free 

pokaże ile wolnego miejsca pozostało w pamięci, df ile miejsca jest na dysku, rm plik 
skasuje plik. No i najważniejsz polecenie w linuksie man wyświetlające informacje na 

temat polecenia. Na początek wpisz man man

Słowo o prawach do pliku i katalogu. Jeżeli wydasz polecenie ls -al zobaczysz listę plików 

z czymś takim na początku: -rwxr-x--- a potem podanego użytkownika i grupę (np. juzec 
users). Jest to określenie praw do pliku lub katalogu. Co oznacza? Jeżeli pierwszym 

znakiem jest 'd' to jest to katalog, jesli nie to plik (nie do końca dotyczy katalogu /dev/ - 
informacja dla czepialskich :P). Następne trzy literki (lub minusy i literki) oznaczają 

kolejno czytanie(Read), zapis(Write) i wykonanie(eXecute) lub możliwość wejścia do 
katalogu - dla właściciela pliku (juzec). Drugie trzy znaczki oznaczają to samo, tyle że dla 

grupy (wszyscy którzy należą do users). Trzecie trzy (jak to fajnie brzmi) znaczki też 
oznaczają to samo, tylko dla tych, co nie należą do grupy users i nie są użytkownikiem o 

nazwie juzec. Prawa możesz zmienić poleceniem chmod. Właściciela i grupę poleceniem 
chown. Zapamiętaj to - jest to jedna z najważniejszych rzeczy w linuksie i podstawa do 

dalszych działań. 

   Konfigurujemy sieć 

W różnych dytrybucjach sa różne narzędzia ułatwiające konfigurację sieci. W Suse jest 
YasT, w RedHat jest linuxconf, w Slackware znajdziesz netconfig. Idea jest wszędzie taka 

sama. Przy konfiguracji sieci musisz podać nazwę swojego komputera, domenę w której 

background image

jest (zazwyczaj bez wiodącej kropki), adres ip komputera, adres ip bramki i nazwy 
serwerów nazw (nameserver). Ja w domku mam np. tak - komputer nazywa się c300, 

domena dom (czyli całość to c300.dom), adres komputera to 192.168.1.2, adres bramki 
to 192.168.1.1, nameserver to 194.204.159.1. Do czego to wszystko służy? Jeżeli nie 

ustawisz tych parametrów to Twój komputer nazywa się localhost ma adres 127.0.0.1. 
Nie ma ustawionych innych parametrów. Nazwa komputera służy do tego, byś mógł 

odwoływać się do swojego komputera jednoznacznie. Wynika z tego, że jeżeli bez 
ustawiania nazwy komputera nazywa się on localhost, to każdy 'nowy' komputer nazywa 

się localhost. W takiej sytuacji nie będziesz mógł odwołać się do innego komputera, bo on 
też nazywał się będzie localhost. Dlatego podajesz mu swoją nazwę. Dokładnie tak samo 

jest z adresem ip. Każdy localhost ma adres 127.0.0.1. Oczywiście możesz w pełni z tego 
korzystać i polecenia typu ping localhost będa spokojnie działały.

Adres bramki jest też ważnym adresem. Jest to adres ip komputera, przez który będziesz 
miał wyjście na świat, czyli do internetu. Jeżeli masz tylko jeden komputer, to pole to 

(czy wpis w /etc/rc.d/) zostaw puste. Jeżeli któryś komputer będzie Twoim 
gateway'em(gejtłejem, czyli bramką) to ustaw jego adres. W zależności od tego, czy 

będziesz używał internetu czy też nie zależy konfiguracja tzw. nameserverów, czyli 
serwerów nazw (DNS). Serwer nazw to taki komputer, który po przesłaniu do niego 

informacji o adresie typu www.onet.pl odda nam jego adres ip. Jest jescze tzw. RevDNS - 
komputer, który robi dokładnie odwrotne rzeczy, ale on nas nie interesuje. Adresy 

serwerów nazw znajdziesz np. na stronie TPSA. Dla przykładu dam Ci jeden - 
194.204.159.1.

Jeżeli poustawiałeś już to wszystko, to pozostało Ci jeszcze zajrzenie do /etc/hosts - tam 
masz wpisane komputery wraz z ich adresami ip (ze swojej sieci). W pliku /etc/host.conf 

powinieneś mieć linię 'order hosts, bind'. Określa ona sposób wyszukiwania komputerów 
w sieci. Wpisy te powodują, że jeżeli napiszesz np. 'ping komputerek', to komputer zajrzy 

najpierw do pliku /etc/host.conf, tam dowie się, że najpierw ma sprawdzić czy 
'komputerek' i jego adres jest w /etc/hosts, a dopiero później ma zapytać o 'komputerek' 

serwer nazw wpisany do /etc/resolv.conf. Tu jeszcze jedna uwaga - w /etc/resolv.conf 
możesz mieć jako pierwszą linię coś w stylu 'search moja.domena.pl' - powoduje to, że 

zanim komputer odpyta dns o adres 'komputerka', to poszuka go wśród komputerów w 
domenie 'moja.domena.pl'. Ten wpis często jest przyczyną niby powolnego logowania do 

komputerów (jak również przyczyną może być brak wpisów w /etc/hosts).

Teraz masz w zasadzie skonfigurowaną sieć i możesz łączyć się z innymi komputerami w 

Twojej sieci lub z internetem. 

   Polska na konsoli 

Logując się na konsoli pewnie zauwazyłeś, że nie masz polskich literek. Do poprawnego 
spolonizowania linuksa potrzebujesz wiedzieć, gdzie to wszystko się ustawia i w jaki 

sposób. Na początek zajrzyjmy do pliku /etc/profile. Znajdź tam linię wyglądającą tak 
'export LC_ALL=POSIX' lub podobnie. To właśnie zmienna środowiskowa LC_ALL 

(ustawiająca inne zmienne LC_*) odpowiedzialna jest za to, jak system rozpozna Twój 
kraj. Ustaw tę zmienną na 'export LC_ALL=pl_PL' i dopisz następną w nastepnej linii 

'export LANG=pl_PL'. Możesz jeszcze ustawić zmienną LINGUAS, ale nie pamiętam do 
czego ona była potrzebna - jakis program bez niej nie chciał poprawnie rozpoznać 

polskiego komputera ;-). Gdy już to zrobisz, zapisz plik, wyloguj się i zaloguj ponownie. 
Wydaj polecenie 'locale'. Zobaczysz na ekranie wszystkie zmienne LC ustawione na pl_PL. 

To dobrze. Spróbuj wpisać np. 'du --help'. Powinieneś zobaczyć polski opis programu. 

   Teraz użytkownicy 

background image

Pewnie pamiętasz, że poprzednio mówiliśmy o tym, byś nie pracował na koncie roota, 
tylko na swoim, użytkownika. W ten sposób unikniesz niektórych zdarzeń (np. 

przypadkowego wykasowania jakiegoś ważnego programu). Ale jak tego użytkownika 
zrobić? Ano w róznych dystrybucjach różnie, ale generalnie do operacji na użytkownikach 

służą skalpel, tfu, useradd, userdel i usermod. W RedHat możesz użytkowników dodać 
linuxconf, w Slackware adduser. Ogólnie jednak 'useradd nazwa' i masz już użytkownika. 

Potem 'passwd user' i zmieniasz hasło dla usera. Możesz też zmieniać parametry takie jak 
grupa, dodatkowa grupa czy hasło od razu z linii poleceń. Usunąć użytkownika możesz 

używając 'userdel user', a zmodyfikować poleceniem 'usermod'. Każde z tych poleceń 
podane z parametrem --help (np. usermod --help) podpowie Ci, co możesz nim wykonać. 

A jeśli masz ustawione lokale (LC_ALL=pl_PL) to podpowie Ci po polsku!

Linux

DOS

Opis

ls

dir

Listowanie zawartości katalogów

rm

del

Kasowanie plików

mkdir

mkdir

Tworzenie katalogów

rmdir

rmdir

Kasowanie --||--

mv

move

Zmiana nazwy lub przenoszenie pliku

cp

copy

Kopiowanie plików

ln

X

Tworzenie dowiązań

chmod

attrib

Zmiana atrybutów pliku

cfdisk

fdisk

Partycjonowanie

mkfs

format Tworzenie systemu plików

defrag

defrag Defragmentator

fsck

scandis

k

Testowanie systemu plików

fdformat

X

Niskopoziomowyformat dyskietki

mknod

X

Tworzenie specjalnego inode'a (pliku-urządzenialub kolejki fifo)

ln

X

Tworzenie powiązań (wskazań na plik)

cat

type

Wyświelanie zawartości pliku

grep

X

Wyszukiwanie ciągów znaków

less

X

Pager - podglądarka plików tekstowych

mount

X

Montowanie systemu plików

umount

X

Odmontowanie systemu plików

chown

X

Zmiana właściciela pliku

df

X

Wolne miejsce na dysku

find

X

Szukanie plików

whereis

X

Szukanie programów

Polecenia systemowe

Linux

DOS

Opis

bash

comma

nd

Interpreter poleceń

date

date

Zmiana daty

dpkg

X

Zarządzanie pakietami w systemie Debian

rpm

X

Zarządzanie pakietami w systemie Red Hat

su

X

Chwilowa zmiana usera

logout

X

Wylogowanie

insmod

X

Instalowanie modułu jądra

background image

rmmod

X

Usuwanie modułu

lsmod

X

Listowanie aktywnych modułów

depmod

X

Obsługuje zależności modułów

modinfo

X

Informacje o modułach

modprobe

X

Instalowanie modułu z potrzebnymi opcjami imodułami

shutdown

X

Zamknięcie systemu / reboot

lilo

fdisk 
-mbr

Instalacja bootloadera

swapon/swa
poff

X

Sterowanie partycjami wymiany

useradd

X

Dodawanie użytkowników

groupadd

X

Dodawanie grup

userdel

X

Usuwanie użytkowników

groupdel

X

Usuwanie grup

usermod

X

Modyfikowanie danych użytkowników

groupmod

X

Modyfikowanie danych grup

passwd

X

Zmiana hasła

Sterowanie siecią

Linux

DOS

Opis

ifconfig

X

Konfigurowanie połączenia sieciowego

ifup

X

Uruchamianie interfejsu sieciowego

ifdown

X

Zatrzymywanie interfejsu sieciowego

netstat

X

Statystyki połączenia

ipchains

X

Przekazywanie pakietów / firewall

route

X

Kontrola trasowania

Zarządzanie procesami

Linux

DOS

Opis

top

X

Listuje procesy o największym obciążeniu procesora i wyświetla ich 

statystyki   w   czasie   rzeczywistym.   Pozwala   na   monitorowanie 
określonych procesów.

ps

X

Listuje aktywne procesy

fg

X

Ustawienie procesu na front

bg

X

Przeniesienie procesu w tło

pidof

X

Wyświetlenie numeru wybranego procesu

jobs

X

Listuje aktywne programy

kill

X

Wysyła sygnał do procesu 

Pomoc

Linux

DOS

Opis

man

X

Manual systemowy 

info

X

Podręcznik GNU

apropos

X

Szukanie polecenia o określonym zastosowaniu

Resztę potrzebnych informacji można znaleźć w MANie (man polecenie). Oprócz tego 

istnieje ciekawa książka w ofercie E-Link, opisująca dokładnie polecenia Linuxa. 

Aby wyświetlić listę wszystkich użytkowników wydaj polecenie: 

background image

 more /etc/passwd   

do przeglądania listy wykorzystaj klawisze omówione przy komendzie man

kolejne wiersze to rekordy zawierające dane użytkowników, oddzielone dwukropkiem pola 
oznaczają:

nazwa użytkownika 

zakodowane hasło 

identyfikator użytkownika (uid) 

identyfikator grupy (gid) 

komentarz, dowolna informacja o użytkowniku np. pełne imię i nazwisko 

nazwa katalogu domowego 

nazwa shella instalowanego podczas logowania się użytkownika

Aby wyświetlić listę wszystkich grup zdefiniowanych w systemie wydaj polecenie:
more /etc/group   

kolejne wiersze to rekordy zawierające dane grup, oddzielone dwukropkiem pola 
oznaczają: 

nazwa grupy 

hasło grupy (niewykorzystywane) 

identyfikator grupy (gid) 

lista użytkowników należących do tej grupy

Środowisko użytkownika i shella tworzą pliki, które są przetwarzane podczas otwierania i 

zamykania sesji Unixa. Kolejność wczytywania plików konfiguracyjnych w poszczególnych 
shellach przedstawia poniższa tabelka:

Lp

Bourn

Korn

Bash

C

1

/etc/profile

/etc/profile

/etc/profile

/etc/csh.login

2

$HOME/.profile

$HOME/.profile

$HOME/.bash_profile lub

$HOME/.bach_login lub
$HOME/.profile

$HOME/.cshrc

3

 

$HOME/.kshrc

 

$HOME/.login

W shellu Korna najpierw wykonywane są polecenia z pliku /etc/profile. Definiowany jest 
przez administratora systemu i jego zadaniem jest ustanowienie ogólnego środowiska dla 

wszystkich użytkowników. Te domyślne ustawienia można zmienić lub rozszerzyć za 
pomocą poleceń umieszczonych w pliku .profile, który znajduje się w katalogu domowym 

każdego użytkownika. Plik ten jest doskonałym miejscem do umieszczania zmiennych 
globalnych, własnych aliasów lub skryptów startowych. Jego przeznaczeniem jest 

ustalenie indywidualnego środowiska pracy dla każdego użytkownika. Najczęściej 
użytkownik określa w nim swoją ścieżkę dostępu do plików wykonawczych (PATH), ustala 

maskę praw dostępu (umask), wygląd znaku zgłoszenia shella (PS1), edytor linii komend 
(EDITOR).

W zmiennej ENV można zdefiniować nazwę dodatkowego pliku, który jest wykonywany 
zarówno podczas otwierania sesji, jak i podczas uruchamiania nowego shella poleceniem 

ksh. Powszechnie używana nazwa tego pliku to .kshrc.

 cat - łączenie i wyświetlanie zawartości plików

background image

cat plik(i) -wyświetla zawartość wybranego pliku
cat plik(i)>plik_nowy - łączy zawartość wybranych plików w nowy_plik 

wybrane opcje:
-n - numerowanie wszystkich wyświetlanych wierszy

-nb - numerowanie wyłącznie niepustych wierszy
-v wyświetlanie znaków kontrolnych jako znaków drukowanych

cd - zmiana bieżącego katalogu

cd katalog - przejście do wyszczególnionego katalogu 

cd / - przejście do katalogu głównego 
cd .. - przejście do katalogu nadrzędnego (wyjście z katalogu) 

cd - przejście do katalogu domowego

chmod - zmiana prawa dostępu do plików i katalogów

chmod prawa plik(i) lub katalog(i) - ustala nowe prawa dostępu do wybranego pliku 
lub katalogu

prawa dostępu określa się numerycznie: 
odczyt (read) =4 + zapis (write) =2 + wykonanie (execute) =1

mnożąc dla poszczególnych użytkowników:
właściciel (owner) *100 + grupa właściciela (group) *10 + pozostali * 1

np. prawa wszystkie dla właściciela, odczyt i wykonanie dla grupy, nic dla pozostałych => 
100 * (4+2+1) + 10 * (4+1) + 1* (0) = 750  

chmod komu jakie prawa plik lub katalog
prawa dostępu określa się symbolicznie:

komu: 
u -właściciel (user), g -grupa (group), o -pozostali (other) , a -wszyscy (all)

operacja:
+ dodanie, zabranie, = ustalenie

prawa:
-odczyt (read), w -zapis (write), x -wykonanie (execute)

chown - zmiana właściciela pliku

chown nowy_właściciel plik(i) lub katalog(i) - ustalenie nowego właściciela dla 

wybranych plików lub katalogów

find - poszukiwanie plików według zadanych kryteriów

find katalog kryteria akcja - wyszukuje z podanego katalogu pliki odpowiadające 
podanym kryteriom i wykonuje na nich określoną akcję (komendę) 

wybrane kryteria:
-
name -wyszukuje pliki o podanej nazwie,

-perm -wyszukuje pliki o podanych prawach dostępu,
-type - wyszukuje danych określonego typu: f - plik; d - katalog; l - link,

-links - wyszukuje pliki o podanej liczbie linków,
-size - wyszukuje pliki o podanej wielkości będącej wielokrotnością bloku 512 bajtowego 

lub określonej ilością znaków (parametr c),
-user - wyszukuje pliki, których właścicielem jest podany użytkownik,

-group - wyszukuje pliki użytkowników należących do podanej grupy,
-atime - wyszukuje pliki, dla których czas dostępu jest późniejszy niż podany,

background image

-mtime - wyszukuje pliki, dla których czas modyfikacji jest późniejszy niż podany,

kryteria mogą być łączone przy pomocy następujących znaków:
spacja - koniunkcja (i)

-o - alternatywa (lub)
- negacja (nie)

wybrane akcje:

-print - wydruk wyszukanych plików na ekranie, powinna występować jako ostatnia, 
można opuścić gdyż jest przyjmowana jako standardowa

-exec polecenie {} \; - wykonanie podanego polecenia shella dla każdego 
wyszukanego pliku; polecenie musi być zakończone znakami nawiasów sześciennych, 

pomiędzy które wstawiane są znalezione obiekty oraz cytowanym znakiem średnika 
(spacja\;)

-ok polecenie {} \; - podobnie jak -exec, ale wykonanie polecenia jest poprzedzone 
pytaniem o potwierdzenie jego realizacji, końcówka jak przy exec.

export - udostępnienie zmiennej we wszystkich procesach powoływanych przez 
użytkownika 

export - wyświetlenie wszystkich zmiennych globalnych
export zmienna - przesłanie wyszczególnionej zmiennej do procesów podrzędnych czyli 

zadeklarowanie jej jako zmienna globalna widoczna w otoczeniu

jobs - wyświetla listę zadań pracujących w tle

komenda jobs wyświetla następujące informacje: 

[numer procesu pracującego w tle] - kolejne liczby począwszy od 1; 

stan procesu: Running (praca), Stopped (wstrzymane Ctrl+Z), Done (proces 

zakończony) 

wykonywane w tle polecenie

kill - zakończenie wykonania procesu

kill PID - kończy proces o podanym identyfikatorze

kill -9 PID - bezwarunkowo przerywa proces o podanym identyfikatorze 
komenda stosowana do przerywania procesów drugoplanowych, rezydentnych 

(demonów), procesów uruchomionych z innego terminala. Identyfikator procesu należy 
odczytać komendą ps

let - wykonanie obliczenia arytmetycznego

let wyrażenie_arytmetyczne - wyliczenie wartości wyrażenia arytmetycznego

w skryptach komendę let zastępuje się podwójnymi nawiasami 

(( wyrażenie ))

ln - dowiązanie nowej nazwy do istniejącego pliku

ln plik nowa_nazwa - przypisuje nową_nazwę do już istniejącego pliku (dowiązanie 
sztywne) 

wybrane opcje:
-s - tworzy dowiązanie symboliczne

background image

lp - wydruk plików na drukarce

lp -opcje plik(i) - drukuje wyszczególnione pliki na drukarce domyślnej 

wybrane opcje:
-d nazwa_drukarki - wydruk na określonej drukarce

-m - powiadomienie użytkownika o zakończeniu wydruku poprzez pocztę systemową 
(mailx)

-w - wyświetlenie informacji o zakończeniu procesu wydruku
-n liczba - określenie liczby kopii

lpstat- wyświetlenie informacji o stanie drukarek podłączonych do systemu

lpstat - wyświetla kolejkę zadań do wydrukowania 

wybrane opcje:
-p - wyświetla dostępne drukarki i ich opisy

ls - wyświetla zawartość katalogu

ls katalog -wyświetla zawartość wybranego katalogu

ls plik(i) - wyświetla wybrany plik(i) 

wybrane opcje:

-a - wyświetla wszystkie pliki, łącznie z ukrytymi,
-d - wyświetla nazwy katalogów a nie ich zawartość,

-F - wyświetla specjalne oznaczenie za nazwą pliku wykonawczego (*), linku (@) oraz 
katalogu (/),

-i - wyświetla numer i-węzła,
-l - wyświetla informacje w formie długiej, obejmującej prawa dostępu, właściciela, 

grupę, wielkość pliku, datę i czas ostatniej modyfikacji,
-R - wyświetla również zawartość podkatalogów

mailx - odbieranie, redagowanie i wysyłanie listów elektronicznych

mailx - przeglądanie zawartości skrzynki pocztowej

mailx użytkownik - wysłanie listu do wybranego użytkownika 

wybrane opcje:

-s - umożliwia zdefiniowanie tematu wiadomości (subject),
-c użytkownik - wysyła kopie wiadomości do wybranego użytkownika (do wiadomości),

-d użytkownik - wysyła kopie wiadomości do wybranego użytkownika, ale nie 
powiadamia o tym podstawowego adresata (tzw. ukryte do wiadomości).

Po uruchomieniu programu pocztowego mailx wyświetlane są informacje o otrzymanych 
listach. Kolejne kolumny oznaczają: 

znak > oznacza aktywną (bieżącą) wiadomość; 

status listu:

N -nowa wiadomość, 
U - nieprzeczytana wiadomość, 

R - wiadomość nowa, ale już w tej sesji przeczytana, 
O - wiadomość przeczytana wcześniej i zapisana do skrzynki mbox; 

numer wiadomości; 

nadawca wiadomości; 

background image

data otrzymania wiadomości; 

ilość linii/liter w wiadomości; 

temat listu;

Pod listą wiadomości widoczny jest znak zachęty ( ? ) umożliwiający wprowadzenie 
następujących poleceń:

nr - wyświetla wiadomość o podanym numerze,
h - wyświetla ponownie listę wszystkich wiadomości,

- kasuje bieżącą wiadomość,
d nr - kasuje wiadomość o numerze nr,

u - cofa kasowanie,
r - umożliwia zredagowanie odpowiedzi na bieżącą wiadomość,

| nr lp - wydruk wiadomości o numerze nr,
q - zapisuje wiadomości i wychodzi z programu pocztowego,

- wychodzi z programu bez zapisu zmian i bez zamiany statusu N na O,

Aby wysłać list innemu użytkownikowi wprowadzamy nazwę programu, nazwę 
użytkownika (np. mailx robert) i zatwierdzamy Enter. Pojawia się napis Subject: 

umożliwiający wpisanie tematu wiadomości. Wpisujemy krótki temat i potwierdzając 
Enterem przechodzimy do trybu redagowania wiadomości. Po wpisaniu informacji, 

kończymy wiadomość przechodząc do nowej linii i wpisując . (kropka) Enter lub Ctrl+D

mkdir - zakłada nowy katalog

mkdir katalog - zakłada katalog o wyszczególnionej nazwie 

wybrane opcje: 

-p - tworzy wszystkie katalogi pośrednie niezbędne do utworzenia ostatniego z podanych

mkdir -p szkola/klasa

tworzy katalog szkoła a w nim podkatalog klasa

more - przeglądanie zawartości pliku

more plik -wyświetla zawartość wybranego pliku
komenda | more - dzieli na części wielkości ekranu informacje będące wynikiem 

działania komendy 

wybrane opcje:

-c - wyświetlanie każdej strony od góry
-v -wyświetlanie znaków kontrolnych

+numer wiersza - wyświetlanie pliku od podanego wiersza
+/ciąg - wyświetlanie pliku począwszy od dwóch wierszy poprzedzających ciąg

Polecenie more wyświetla na ekranie zawartość pliku, podobnie jak cat, ale po 

zapełnieniu ekranu wyświetlanie jest wstrzymywane, co umożliwia dokładne zapoznanie 
się z tekstem. 

Gdy wyświetlanie jest wstrzymane na dole ekranu wyświetlany jest napis --MORE--, a 
system oczekuje wyboru dalszego działania poprzez naciśnięcie odpowiedniego klawisza:

Enter - przejście do następnej linii

Spacja lub f - przejście do następnej strony
b - przejście do poprzedniej strony

d - przejście o pół strony do przodu
h - lista poleceń (help)

/ciąg - wyszukiwanie tekstu

background image

= - wyświetlenie numeru bieżącej linii
q - koniec przeglądania tekstu

mount - dołączanie systemu plików

mount - wyświetla informacje o dołączonych systemach plików

mount plik_specjalny katalog - podłącza urządzenie zewnętrzne reprezentowane 
przez plik_specjalny do wybranego pustego katalogu 

wybrane opcje:
-r - udostępnia dołączany system plików tylko do odczytu (read only)

-v - wyświetla informacje o wykonywanym poleceniu

 

umount - odłączenie systemu plików

umount katalog - odłącza urządzenie zewnętrzne podłączone wcześniej do wybranego 
katalogu 

wybrane opcje:
-f - odłącza system plików nawet gdy część plików jest używana

nohup - wykonywanie polecenia w tle mimo wylogowania się użytkownika

nohup polecenie & - uruchomienie polecenia drugoplanowego, którego wykonywanie 

nie zakończy się po wylogowaniu użytkownika. 
Jeżeli nie zostanie określone standardowe wyjście wynik zostanie zapisany w pliku 

nohup.out 

ps - wyświetlenie informacji o stanie procesów

ps -opcja - wyświetlenie wybranych procesów i informacji o nich zgodnie z opcją
ps - wyświetlenie informacji o procesach uruchomionych z tego terminala

komenda ps wyświetla informacje w następujących kolumnach:
UID -identyfikator użytkownika;

PID -identyfikator procesu (process identification);
PPID -identyfikator procesu nadrzędnego;

STIME -czas uaktywnienia się procesu;
TTY -identyfikator terminala, z którego uruchomiono proces;

TIME -czas wykonywania procesy (zajętości procesora);
COMMAND -nazwa polecenia, który uruchomił proces. 

wybrane opcje:

-e - wyświetlenie listy wszystkich procesów
-f - wyświetlenie pełnej informacji o procesach

pwd - wyświetla nazwę bieżącego katalogu

read - wczytanie danych

read zmienne - pobranie informacji z klawiatury i przypisanie ich do zmiennych
read zmienna?zgłoszenie - wyświetlenie na ekranie zgłoszenia i pobranie z klawiatury 

danej podstawianej do zmiennej

background image

rm - usuwa pliki i całe katalogi

rm plik(i) - usuwa plik(i) o wyszczególnionej nazwie wybrane  

wybrane opcje: 
-i - usuwanie plików w trybie interaktywnym (wymaga potwierdzenia kasowania) 

-r - usuwanie katalogów łącznie z plikami i podkatalogami

rmdir - usuwa puste katalogi

rmdir katalog - usuwa katalog o wyszczególnionej nazwie

touch - zakłada nowy plik

touch plik(i) - zakłada nowy, pusty plik o podanej nazwie 

umask - ustalenie praw dostępu do tworzonych plików i katalogów

umask maska - ustawia nową maskę praw dostępu do nowo tworzonych plików i 
katalogów

unalias - usuwa istniejący alias 

unalias nazwa_zastępcza - usunięcie istniejącego aliasu o podanej nazwie

unset - usunięcie zmiennych shella ze środowiska

unset zmienna - usuwa niepotrzebną zmienną z shella

until - wykonuje polecenia tak długo, aż nastąpi spełnienie warunku 

until warunek

do
    lista komend

done 

Polecenia z listy komend wykonywane bądą tak długo, aż warunek zostanie spełniony.

vi - uruchamia edytor tekstów Visual Editor

vi plik - edycja pliku

view plik - otwiera plik w trybie tylko do odczytu (przeglądanie zawartości pliku)
vedit plik - wersja przyjaźniejsza edytora vi (wyświetlane opisy)

wall - wysłanie komunikatu do wszystkich użytkowników

wall - przesłanie wprowadzonego komunikatu do wszystkich aktualnie zalogowanych 

użytkowników systemu
Podobnie jak przy komendzie write komunikat kończymy klawiszami Ctrl+D

while - wykonuje polecenia tak długo, jak długo spełniony jest warunek

while  warunek

do

background image

    lista komend
done 

Polecenia z listy komend wykonywane będą tak długo, aż warunek przestanie być 
spełniony

write - wysłanie komunikatu użytkownikowi 

write użytkownik - wysyła komunikat do wybranego użytkownika

write użytkownik terminal - wysyła komunikat do wybranego użytkownika 
pracującego na określonym terminalu

Komunikat wysłany jest na terminal odbiorcy po naciśnięciu klawisza Enter. Przesyłanie 
informacji kończymy naciskając klawisze Ctrl+D 

Każdy plik i katalog w systemie Unix ma ściśle określone prawa dostępu dla swojego 
właściciela (user), grupy, do której on należy (group) oraz pozostałych użytkowników 

(other). Prawa dostępu określają możliwość odczytu danych (r - read), zapisu (w - write) 
oraz wykonania (x - executable). W sumie należy określić 9 parametrów (trzy prawa dla 

trzech rodzajów użytkowników). Każdy z użytkowników może mieć dowolną kombinację 
praw. 

Tabela przedstawia jakie prawa dostępu powinien mieć użytkownik, aby wykonać 
określone operacje na plikach i katalogach (+ oznacza, że prawo jest wymagane, - 

oznacza, że nie).

Wykonywana czynność

Plik

Katalog

r

w

x

r

w

x

przeglądanie zawartości katalogu

-

-

-

+

-

-

utworzenie nowego pliku w katalogu

-

-

-

-

+

-

zmiana nazwy pliku  w katalogu

-

-

-

-

+

-

usunięcie pliku z katalogu

-

-

-

-

+

-

wyświetlenie zawartości pliku

+

-

-

-

-

+

zapis do pliku

-

+

-

-

-

+

uruchomienie pliku

-

-

+

-

-

+

  

Prawa dostępu do plików i katalogów są ważnym elementem systemu bezpieczeństwa w 

Unixie. Właściciel pliku lub katalogu ustala kto i w jakim zakresie może posiadać dostęp 
do tworzonych przez niego katalogów i plików. Wyróżniamy trzy poziomy 

bezpieczeństwa: to, co może zrobić właściciel, grupa, do której należy właściciel oraz 
wszyscy pozostali użytkownicy Komenda ls z parametrem -l wyświetla prawa dostępu w 

następującej formie:

Prawa dostępu do plików i katalogów można zmieniać przy użyciu komendy chmod. W 

poleceniu tym do określania praw dostępu można wykorzystywać dwa formaty: liczbowy i 
symboliczny. 

Format liczbowy odpowiada potęgom cyfry 2 przypisanym do prawa odczytu, zapisu i 
wykonywania zgodnie ze wzorcem:

background image

prawo wykonania x

=> 

2

0

=1

prawo zapisu w

=> 

2

1

=2

prawo odczytu r 

=> 

2

2

=4

W sumie uzyskujemy 8 możliwych kombinacji, które zawarto w tabeli poniżej:

 zapis liczbowy

reprezentacja znakowa

opis

0

- - -

 brak praw dostępu

1

- - x

 tylko wykonywanie

2

- w -

 tylko zapis

3

- w x

 zapis i wykonywanie

4

r - -

 tylko odczyt

5

r - x

 odczyt i wykonywanie

6

r w -

 odczyt i zapis

7

r w x

 wszystkie prawa 
 (odczyt, zapis i wykonywanie)

Tworząc nowy plik lub katalog przydzielane są mu standardowe prawa dostępu zgodnie z 
maska zadeklarowaną komendą umask. Jest to liczba składająca się z trzech cyfr od 0 do 

7, które odjęte od wzorca dla plików (666) lub katalogów (777) określają prawa dostępu 
do nowo zakładanych obiektów. Standardowo umask posiada wartość 022 co oznacza, że 

nowo tworzone pliki i katalogi maja następujące prawa dostępu:

pliki =>

666 - 022 = 

644

 rw-r--r-- 

katalogi 

=>

777 - 022 = 

755

 rwxr-xr-x 

Znaki specjalne

Niektóre symbole w system Unix mają specjalne znaczenie. Należą do nich:

- oznaczenie katalogu głównego (root - korzeń)
- oznaczenie katalogu bieżącego (w którym aktualnie pracujemy)

.. - oznaczenie katalogu nadrzędnego nad bieżącym
- oznaczenie katalogu domowego użytkownika

- - oznacza katalog, który był bieżącym poprzednio
* - zastępuje dowolne znaki w nazwie pliku (oprócz . oznaczającej plik ukryty) 

? - zastępuje jeden, dowolny znak
[znaki] - określa jakie znaki mogą wystąpić w określonym miejscu w nazwie pliku

[!znaki] - określa jakie znaki nie mogą wystąpić w nazwie pliku 
- odbiera znaczenie znakom specjalnym opisanym powyżej 

< - przeniesienie standardowego wejścia z klawiatury
> - przeniesienie standardowego wyjścia z ekranu

2> - przeniesienie standardowego wyjścia diagnostycznego z ekranu
>> - dopisanie danych do pliku

alias - definiuje nazwę zastępczą polecenia 

alias nazwa_zastępcza="polecenia" - zdefiniowanie nowego aliasu o podanej nazwie, 

który wykonuje wymienione polecenia

background image

alias - definiuje nazwę zastępczą polecenia 

alias nazwa_zastępcza="polecenia" - zdefiniowanie nowego aliasu o podanej nazwie, 

który wykonuje wymienione polecenia

bc - wykonanie dowolnych obliczeń matematycznych na liczbach rzeczywistych

bc - włącza kalkulator podstawowy
quit - kończy pracę kalkulatora

echo "wyrażenie_arytmetyczne" | bc - wylicza wartość podanego wyrażenia 
arytmetycznego

wybrane opcje i funkcje:

scale=liczba - ustala dokładność wykonywanych obliczeń w cyfrach po przecinku
ibase=system (2,8,10,16) - ustala system cyfrowy dla danych wejściowych

obase=system - ustala system cyfrowy dla danych wyjściowych
sqrt(wyrażenie) - pierwiastek kwadratowy

length(wyrażenie) - liczba cyfr w wyrażeniu
-l -inicjuje biblioteką matematyczną z dodatkowymi funkcjami:

s(kąt) - sinus kąta podanego w radianach
c(kąt) - cosinus kąta podanego w radianach

e(wyrażenie) - e podniesione do potęgi wyrażenie
l(wyrażenie) - logarytm naturalny z wyrażenia

a(wartość) - arcus tangens wyrażenia
j(n,x) - funkcja Bessela

bg - przeniesienie wstrzymanego zadania pierwszoplanowego do wykonywania na drugim 
planie

bg %numer_wstrzymanego_zadania - przenosi wstrzymane zadanie o podanym 
numerze do wykonywania w tle

numer wstrzymanego zadania odczytujemy po wydaniu komendy jobs, umieszczony jest 
w nawiasach kwadratowych

case - instrukcja wyboru

case wyrażenie in

wzorzec_1| wzorzec_2...)
   lista poleceń1;;

:
:

wzorzec_i|wzorzec_j...)
   lista poleceń3;;

*)
   lista poleceń*;;

esac

Jeżeli wyrażenie pasuje do wzorca_1 lub wzorca_2 lub innych podanych w tej samej linii, 
wykonane zostaną polecenia z listy1. Jeżeli wyrażenie nie pasuje do tych wzorców 

sprawdzane są następne aż do ostatnich wartości wzorzec_i lub wzorzec_j. Gdy 
wyrażenie przyjmie wartość różną od wymienionych wzorców (1,2...i,j) wykonane 

zostaną polecenia z listy*.

df - wyświetlenie informacji o podłączonych systemach plików

background image

wyświetlane są kolejno: nazwa katalogu, plik specjalny reprezentujący urządzenie, 
zajmowana przestrzeń na dysku w blokach po 512 B, ilość założonych plików i katalogów. 

wybrane opcje:
-k - podaje informacje o systemach plików z ich wolną przestrzenią

wyświetlane są kolejno: nazwa systemu plików, przeznaczony na ten system obszar 
dysku, zajęty obszar dysku, wolny obszar dysku, zajęty obszar dysku w procentach, 

nazwa katalogu, do którego ten system plików jest podłączony. 
-b - podaje wyłącznie wolne miejsce w dołączonych urządzeniach

-e - podaje wyłącznie ilość wolnych i-węzłów

exit - zakończenie pracy shella

exit - zamyka aktywny shell (w przypadku uruchomienia tylko jednej powłoki komenda 
ta kończy pracę w systemie Unix)

export - udostępnienie zmiennej we wszystkich procesach powoływanych przez 
użytkownika 

export - wyświetlenie wszystkich zmiennych globalnych
export zmienna - przesłanie wyszczególnionej zmiennej do procesów podrzędnych czyli 

zadeklarowanie jej jako zmienna globalna widoczna w otoczeniu

expr - wykonanie obliczeń na liczbach całkowitych 

expr wyrażenie_arytmetyczne - wyliczenie wartości podanego wyrażenia 
arytmetycznego

operacje matematyczne stosowane w wyrażeniach:

+ dodawanie
- odejmowanie

* mnożenie
/ dzielenie całkowitoliczbowe

% reszta z dzielenia 

uwaga: przed i po znaku operacji matematycznej należy umieścić spacje !!!

find - poszukiwanie plików według zadanych kryteriów

find katalog kryteria akcja - wyszukuje z podanego katalogu pliki odpowiadające 

podanym kryteriom i wykonuje na nich określoną akcję (komendę) 

wybrane kryteria:

-name -wyszukuje pliki o podanej nazwie,
-perm -wyszukuje pliki o podanych prawach dostępu,

-type - wyszukuje danych określonego typu: f - plik; d - katalog; l - link,
-links - wyszukuje pliki o podanej liczbie linków,

-size - wyszukuje pliki o podanej wielkości będącej wielokrotnością bloku 512 bajtowego 
lub określonej ilością znaków (parametr c),

-user - wyszukuje pliki, których właścicielem jest podany użytkownik,
-group - wyszukuje pliki użytkowników należących do podanej grupy,

-atime - wyszukuje pliki, dla których czas dostępu jest późniejszy niż podany,
-mtime - wyszukuje pliki, dla których czas modyfikacji jest późniejszy niż podany,

kryteria mogą być łączone przy pomocy następujących znaków:

background image

spacja - koniunkcja (i)
-o - alternatywa (lub)

- negacja (nie)

wybrane akcje:
-
print - wydruk wyszukanych plików na ekranie, powinna występować jako ostatnia, 

można opuścić gdyż jest przyjmowana jako standardowa
-exec polecenie {} \; - wykonanie podanego polecenia shella dla każdego 

wyszukanego pliku; polecenie musi być zakończone znakami nawiasów sześciennych, 
pomiędzy które wstawiane są znalezione obiekty oraz cytowanym znakiem średnika 

(spacja\;)
-ok polecenie {} \; - podobnie jak -exec, ale wykonanie polecenia jest poprzedzone 

pytaniem o potwierdzenie jego realizacji, końcówka jak przy exec.

fg- przeniesienie zadania drugoplanowego do wykonywania na pierwszym planie

fg %numer_zadania_drugoplanowego - przenosi zadanie drugoplanowe o podanym 
numerze do wykonywania na pierwszym planie

numer zadania drugoplanowego odczytujemy po wydaniu komendy jobs, umieszczony 
jest w nawiasach kwadratowych

for - wykonuje polecenia w pętli, po jednym razie dla każdej wymienionej wartości

for zmienna in wartość1 wartość2 ....

do
    lista komend

done 

Polecenia z listy komend wykonywane są tylokrotnie, ile jest wartości na liście.

head - wyświetlanie początku pliku

head plik - wyświetlenie początkowych 10 linii z pliku

wybrane opcje:

-n - wyświetlenie n pierwszych linii tekstu

history - wyświetla zawartość pliku historii wydanych poleceń

history - wyświetlenie listy ostatnio wydanych poleceń
Wydawane przez użytkownika polecenia zapisywane są w pliku .sh_history w katalogu 

domowym. Można obejrzeć je komendą more .sh_history.

if - instrukcja warunkowa

if warunek_1
then

   lista_poleceń_1
elif warunek 2

then
   lista_poleceń_2

else
   lista_poleceń_3

fi

background image

Jeżeli warunek_1 jest prawdą wykonywane są polecenia z listy_1, jeżeli jest fałszem 
sprawdzany jest warunek_2. Jeżeli jest on prawdą wykonywane są polecenia z listy_2, 

jeżeli jest fałszem wykonywane są polecenia z listy_3. Części elif i else są opcjonalne i nie 
muszą występować w poleceniu.

jobs - wyświetla listę zadań pracujących w tle

komenda jobs wyświetla następujące informacje: 

[numer procesu pracującego w tle] - kolejne liczby począwszy od 1; 

stan procesu: Running (praca), Stopped (wstrzymane Ctrl+Z), Done (proces 

zakończony) 

wykonywane w tle polecenie

Aby wyświetlić listę wszystkich użytkowników wydaj polecenie: 

 more /etc/passwd   

do przeglądania listy wykorzystaj klawisze omówione przy komendzie man

kolejne wiersze to rekordy zawierające dane użytkowników, oddzielone dwukropkiem pola 
oznaczają:

nazwa użytkownika 

zakodowane hasło 

identyfikator użytkownika (uid) 

identyfikator grupy (gid) 

komentarz, dowolna informacja o użytkowniku np. pełne imię i nazwisko 

nazwa katalogu domowego 

nazwa shella instalowanego podczas logowania się użytkownika

Aby wyświetlić listę wszystkich grup zdefiniowanych w systemie wydaj polecenie:
more /etc/group   

kolejne wiersze to rekordy zawierające dane grup, oddzielone dwukropkiem pola 
oznaczają: 

nazwa grupy 

hasło grupy (niewykorzystywane) 

identyfikator grupy (gid) 

lista użytkowników należących do tej grupy

      
 cp - kopiuj pliki i katalogi

       cp [opcja]...  źródło przeznaczenie
       cp [opcja]...  źródło... katalog_docelowy

background image

Istnieją trzy główne typy zmiennych shella:

zmienne specjalne

zmienne środowiska
zmienne programowe

 (użytkownika)

Zmienne specjalne
Ich wartości przypisywane są w trakcie uruchamiania shella i dostarczają użytkownikowi 

informacji o procesie powłoki. Zmienne te są własnością shella i nie można ich zmieniać. 
Najczęściej wykorzystuje się je w programach shellowych do kontrolowania wykonania 

skryptu.

Zmienna Modyfikacja ?

Opis

$#

NIE

Liczba argumentów skryptu

$0

NIE

Nazwa skryptu

$1, 
$2...$9

TAK

Kolejne argumenty skryptu

$*

NIE

Wszystkie argumenty jako jeden ciąg "$1 $2 ... $9"

$@

NIE

Wszystkie argumenty jako oddzielne ciągi "$1" "$2" 

...

$-

NIE

Opcje shella z polecenia set

$?

NIE

Kod powrotu ostatniego polecenia

$$

NIE

Numer procesu bieżącego shella

$!

NIE

Numer procesu ostatniego zadania wsadowego

Zmienne środowiska

Zmienne środowiska wykorzystywane są przez shell do przekazywania danych 
pomocniczych wykorzystywanych do nadzorowania sesji shella. Użytkownik ma pełen 

dostęp do tych zmiennych i może je modyfikować za pomocą zwykłej instrukcji 
przypisania zmienna=wartość. Część zmiennych środowiska nie ma przypisanych 

wartości i musi to zrobić użytkownik. 

Zmienna

Opis

CDPATH

Ścieżka poszukiwań dla polecenia cd

HOME

Katalog domowy użytkownika

MAIL

Nazwa pliku pocztowego użytkownika

PATH

Ścieżka poszukiwań katalogów z poleceniami

PS1

Znak gotowości shella (standardowo $ dla wszystkich i # dla 
roota)

PS2

Pomocniczy znak gotowości shella

HISTFILE

Nazwa pliku z historią poleceń

HISTSIZE

Liczba pamiętanych poleceń

IFS

Wewnętrzny separator pól dzielący polecenie na części składowe

PWD

Bieżący katalog

EDITOR

Edytor wykorzystywany do edycji wiersza poleceń

MAILCHECK

Czas w sekundach sprawdzania nowo nadesłanej poczty

background image

TMOUT

Czas nieaktywności, po którym shell zakończy sesję (sekundy)

LOGNAME

Nazwa logowania użytkownika

TERM

Tryb pracy terminala

TZ

Symbol strefy czasowej

Zmienne programowe (użytkownika)
Shell umożliwia definiowanie własnych zmiennych użytkownikowi, których zadaniem jest 

przechowywania wartości potrzebnych podczas przetwarzania skryptu. Nazwy zmiennych 
mogą być dowolne ale muszą rozpoczynać się literą lub znakiem podkreślenia "_". W 

nazwie zmiennej mogą występować dowolne znaki "_ a-z A-Z 0-9". Shell rozróżnia 
wielkość liter.

Zmiennej można przypisać wartość wielokrotnie i wielokrotnie można się do niej 
odwoływać. Należy zwrócić uwagę, że przypisując zmiennej wartość za pomocą operatora 

"=" nie można stosować spacji pomiędzy znakiem = a nazwą zmiennej oraz jej wartością.

     

       Quota   podaje  udziały  dla  wszystkich  systemów  plików

       ujętych w /etc/fstab.  W przypadku systemów plików  zamon
       towanych  jako NFS do uzyskania informacji wykonywane jest

       wywołanie rpc.rquotad na maszynie serwera.   Jeżeli  quota
       kończy pracę z niezerowym kodem, to co najmniej jeden sys

       tem plików ma przekroczone udziały.

 Pliki 

       quota.user  położony na głównym systemie plików, opisujący
                   udziały dyskowe użytkowników

       quota.group położony na głównym systemie plików, opisujący

                   udziały grup

       /etc/fstab  do odnalezienia nazw  i  lokalizacji  systemów


Document Outline