Podstawy administracji systemu Linux

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:
r -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,

d - 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,

x - 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


Wyszukiwarka

Podobne podstrony:
Podstawy administrowania systemem linux
administrowanie systemem linux, start systemu
administrowanie systemem linux, nfs oreilly
Podstawowe komendy systemu Linux
administrowanie systemem linux, xinetd schemat
administrowanie systemem linux, procfs
administrowanie systemem linux, rpm1
administrowanie systemem linux, syslog and firewall
administrowanie systemem linux, xinetd linuxfocus
Administrowanie systemu Linux Unix
administrowanie systemem linux ssh
02 Podstawy administracji systemem HPUX oraz bazami danych, LEŚNICTWO SGGW, MATERIAŁY LEŚNICTWO SGGW
administrowanie systemem linux, ssh
administrowanie systemem linux, montowanie
administrowanie systemem linux, poziomy pracy
Administracja Systemem Linux Unix ksiezopolski
podstawowe polecanie systemu linux
FreeBSD Podstawy administracji systemem

więcej podobnych podstron