Jak skonfigurować wirtualne hosty Apache w systemie Ubuntu 16.04

Serwer WWW Apache jest najpopularniejszym sposobem udostępniania treści internetowych w Internecie. Stanowi on ponad połowę wszystkich aktywnych stron internetowych i jest niezwykle wydajny i elastyczny.

Apache dzieli swoją funkcjonalność i komponenty na poszczególne jednostki, które można indywidualnie dostosować i skonfigurować. Podstawowa jednostka, która opisuje pojedynczą witrynę lub domenę, nazywa się virtual host.

Te oznaczenia umożliwiają administratorowi korzystanie z jednego serwera do obsługi wielu domen na jednym adresie IP przy użyciu mechanizmu dopasowującego. Jest to istotne dla każdego, kto chce zamieścić więcej niż jedną witrynę na jednym VPS.

Każda skonfigurowana domena kieruje użytkownika do określonego katalogu zawierającego informacje tej witryny, nie wskazując, że ten sam serwer jest odpowiedzialny również za inne witryny. Ten schemat można rozszerzyć bez żadnego limitu oprogramowania, o ile twój serwer może obsłużyć obciążenie.

W tym przewodniku pokażemy, jak skonfigurować wirtualne hosty Apache na systemie Ubuntu 16.04 VPS. Podczas tego procesu dowiesz się, jak wyświetlać różne treści różnym użytkownikom w zależności od żądanych domen.

Wymagania wstępne
Przed rozpoczęciem tego samouczka powinieneś utworzyć użytkownika innego niż root, jak opisano w krokach 1-4 tutaj.

Konieczne będzie również zainstalowanie Apache w celu wykonania tych kroków. Jeśli jeszcze tego nie zrobiłeś, możesz zainstalować Apache na swoim serwerze poprzez apt-get:

sudo apt-get update
sudo apt-get install apache2

Po wykonaniu tych kroków możemy rozpocząć.

Na potrzeby tego przewodnika nasza konfiguracja będzie wirtualnym hostem dla moja.domena.pl dla innego test.com. Zostaną one przywołane w całym przewodniku, ale powinieneś je zastąpić własnymi domenami.

Krok pierwszy – Utwórz strukturę katalogów

Pierwszym krokiem, jaki podejmiemy, jest utworzenie struktury katalogów, która będzie przechowywać dane o witrynie.

Nasz katalog najwyższego poziomu, w którym Apache szuka, aby znaleźć treść do wyświetlenia zostanie ustawiony na poszczególne katalogi w /var/www. Stworzymy tutaj katalogi dla obu wirtualnych hostów, które planujemy.

W każdym z tych katalogów utworzymy folder public_html, w którym przechowywane będą nasze pliki stron.

Dla naszych witryn zamierzamy utworzyć katalogi w następujący sposób:

sudo mkdir -p /var/www/moja.domena.pl/public_html
sudo mkdir -p /var/www/test.com/public_html

 

Krok drugi – Przyznaj uprawnienia

Teraz mamy strukturę katalogów dla naszych plików, ale są one własnością naszego użytkownika root. Jeśli chcemy, aby zwykły użytkownik mógł modyfikować pliki w naszych katalogach internetowych, musimy zmienić uprawnienia:

sudo chown -R $USER:$USER /var/www/moja.domena.pl/public_html
sudo chown -R $USER:$USER /var/www/test.com/public_html

$USER – to zmienna określająca naszego użytkownika musisz wpisać własną.

Powinniśmy również nieco zmodyfikować nasze uprawnienia, aby zapewnić, że dostęp do odczytu jest dozwolony w ogólnym katalogu internetowym oraz wszystkich zawartych w nim plikach i folderach, aby strony mogły być wyświetlane poprawnie:

sudo chmod -R 755 /var/www

Twój serwer internetowy powinien mieć teraz uprawnienia potrzebne do wyświetlania treści, a Twój użytkownik powinien mieć możliwość tworzenia treści w odpowiednich folderach.

Krok trzeci – Utwórz lub przenieś strony  dla każdego wirtualnego hosta

Posiadamy strukturę katalogów. Możemy już przenieść pliki naszej strony przez ftp.

 

Krok czwarty – Utwórz pliki wirtualnego hosta

Pliki wirtualnego hosta to pliki, które określają faktyczną konfigurację naszych hostów wirtualnych i określają, w jaki sposób serwer WWW Apache będzie odpowiadał na różne żądania domeny.

Apache ma domyślny plik wirtualnego hosta,( 000-default.conf ) który możemy wykorzystać jako punkt wyjścia. Należy skopiować go, aby utworzyć wirtualny plik hosta dla każdej z naszych domen.

Utwórz pierwszy plik wirtualnego hosta
Rozpocznij od skopiowania pliku dla pierwszej domeny:

sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/moja.domena.pl.conf

Otwórz nowy plik w edytorze z uprawnieniami roota:

sudo nano /etc/apache2/sites-available/example.com.conf

Plik będzie wyglądać mniej więcej tak (usunąłem tu komentarze, aby plik był bardziej dostępny):

/etc/apache2/sites-available/example.com.conf

<VirtualHost *:80>
 ServerAdmin webmaster@localhost
 DocumentRoot /var/www/html
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Jak widać, nie ma tu zbyt wiele. Spersonalizujemy tutaj elementy dla naszej pierwszej domeny i dodamy kilka dodatkowych dyrektyw. Ta sekcja wirtualnego hosta pasuje do wszystkich żądań, które są wykonywane na porcie 80, domyślnym porcie HTTP.

W sumie nasz plik virtualhost powinien wyglądać tak:

/etc/apache2/sites-available/moja.domena.pl.conf
<VirtualHost *:80>
 ServerAdmin admin@moja.domena.pl
 ServerName moja.domena.pl
 ServerAlias www.moja.domena.pl
 DocumentRoot /var/www/moja.domena.pl/public_html
 ErrorLog ${APACHE_LOG_DIR}/error.log
 CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Zapisz i zamknij plik.

 

Krok piąty – Włącz nowe pliki hosta wirtualnego

Po utworzeniu plików hostów wirtualnych musimy je włączyć. Apache zawiera kilka narzędzi, które pozwalają nam to zrobić.

Możemy użyć  a2ensite, aby włączyć każdą z naszych stron w następujący sposób:

sudo a2ensite moja.domena.pl.conf

Następnie wyłącz domyślną witrynę zdefiniowaną w 000-default.conf:

sudo a2dissite 000-default.conf

Kiedy skończysz, musisz ponownie uruchomić Apache, aby wprowadzić te zmiany:

sudo systemctl restart apache2

lub tym poleceniem:

sudo service apache2 restart

To wszystko, sprawdź czy twoja witryna wyświetla się teraz prawidłowo.

 

 

Instalacja certyfikatu SSL Let’s Encrypt na VPS

Ten samouczek pokazuje, jak skonfigurować certyfikat TLS / SSL z Let’s Encrypt na serwerze Ubuntu 16.04 z uruchomionym Apache jako serwerem WWW.

Certyfikaty SSL są używane na serwerach sieciowych do szyfrowania ruchu między serwerem a klientem, zapewniając dodatkowe bezpieczeństwo użytkownikom uzyskującym dostęp do aplikacji. Let’s Encrypt zapewnia łatwy sposób na uzyskanie i zainstalowanie zaufanych certyfikatów za darmo.

Wymagania wstępne
Aby ukończyć ten przewodnik, będziesz potrzebować:

Serwer Ubuntu 16.04.
Serwer sieciowy Apache2 zainstalowany z jedną lub więcej domenami poprawnie skonfigurowanymi za pomocą wirtualnych hostów, które określają ServerName.

Krok 1 – Zainstaluj klienta Let’s Encrypt

Najpierw dodaj repozytorium Cerbot:

sudo add-apt-repository ppa:certbot/certbot

Musisz nacisnąć, ENTER aby zaakceptować. Następnie zaktualizuj listę pakietów, aby pobrać informacje o nowym repozytorium:

sudo apt-get update

I wreszcie zainstaluj Certbot z nowego repozytorium za pomocą apt-get:

sudo apt-get install python-certbot-apache

Certbot jest teraz gotowy do użycia.

Krok 2 – Skonfiguruj certyfikat SSL
Generowanie certyfikatu SSL dla Apache za pomocą Certbota jest dość proste. Klient automatycznie uzyska i zainstaluje nowy certyfikat SSL, który jest ważny dla domen dostarczonych jako parametry.

Aby uruchomić instalację i uzyskać certyfikat obejmujący tylko jedną domenę, uruchom certbot poleceniem:

sudo certbot --apache -d moja.domena.pl

Jeśli chcesz zainstalować pojedynczy certyfikat, który jest ważny dla wielu domen lub subdomen, możesz wpisać je jako dodatkowe parametry do polecenia. Pierwsza nazwa domeny na liście parametrów będzie domeną podstawową używaną przez Let’s Encrypt do utworzenia certyfikatu i z tego powodu zalecamy podanie nazwy domeny najwyższego poziomu jako pierwszej na liście, a następnie dowolnej dodatkowej subdomeny. lub aliasy:

sudo certbot –apache -d moja.domena.pl -d www.moja.domena.pl

W tym przykładzie będzie to domena podstawowa moja.domena.pl .

Jeśli masz wiele hostów wirtualnych, uruchom certbot dla każdego, aby wygenerować nowy certyfikat dla każdego z nich. Możesz dystrybuować wiele domen i subdomen na swoich wirtualnych hostach.

Po zainstalowaniu zależności zostanie wyświetlony przewodnik krok po kroku, w celu dostosowania opcji certyfikatu. Zostaniesz poproszony o podanie adresu e-mail, aby odzyskać utracone klucze i powiadomienia, a będziesz mógł wybrać między włączeniem http i https uzyskaniem dostępu lub wymuszeniem wszystkich żądań przekierowania https.

Po zakończeniu instalacji powinno być możliwe znalezienie wygenerowanych plików certyfikatów na

/etc/letsencrypt/live.

Możesz zweryfikować status swojego certyfikatu SSL za pomocą poniższego linku (nie zapomnij zamienić  moja.domena.pl na swoją domenę podstawową ):

https://www.ssllabs.com/ssltest/analyze.html?d=moja.domena.pl&latest

Powinieneś teraz mieć dostęp do swojej strony internetowej za pomocą https.

Krok 3 – Weryfikacja automatycznego odnawiania certyfikatów

Certyfikaty Let’s Encrypt mają ważność tylko 90 dni. Jednak zainstalowany przez nas pakiet certbot-a zajmuje się tym dla nas, uruchamiając certbot renew dwa razy dziennie przez systemowy timer. W dystrybucjach niesystemowych tę funkcjonalność zapewnia skrypt cron umieszczony w /etc/cron.d. Zadanie jest uruchamiane dwa razy dziennie i odnawia certyfikat, który kończy w ciągu trzydziestu dni.

Aby przetestować proces odnawiania, możesz wydać komendę certbot:

sudo certbot renew --dry-run

Jeśli nie widzisz żadnych błędów, wszystko jest gotowe. W razie potrzeby Certbot odnowi certyfikaty i przeładuje serwer Apache, aby pobrać zmiany. Jeśli proces automatycznego odnawiania się nie powiedzie, Let’s Encrypt wyśle ​​wiadomość na podany adres e-mail, ostrzegając Cię, gdy Twój certyfikat wkrótce wygaśnie.

Ubuntu – przydatne komendy

Z konsoli korzysta prawie każdy użytkownik Linuksa. Warto poznać najpopularniejsze komendy, które usprawnią naszą pracę z komputerem.

apt-get update – odświeżanie wszystkich dostępnych paczek
apt-get upgrade – aktualizacja wszystkich dostępnych paczek
apt-get dist-upgrade – aktualizacja wszystkich dostępnych paczek z nadpisywaniem; aktualizacja wersji Ubuntu
apt-get install pkg – instalacjia programu o przykładowej nazwie pkg
apt-get purge pkg – usuwanie programu o przykładowej nazwie pkg
apt-get autoremove – usuwanie nieużywanych pakietów

apt-get --purge remove - usunięcie pakietu

sudo apt autoremove – usuwanie nieużywanych pakietów
apt-get -f install – próbuje naprawić uszkodzone pakiety

apt –fix-broken install – próbuje naprawić uszkodzone pakiety
dpkg –configure -a – próbuje naprawić uszkodzone pakiety
dpkg -i paczka.deb – instalacja pliku paczka.deb
(plik) /etc/apt/sources.list – lista repozytoriów APT

sudo chmod nazwa_folderu 666 – sprawi,że każdy będzie mógł zapisywać oraz odczytywać wszystko wewnątrz tego folderu. Jeżeli natomiast użyjemy parametr 777 dla pliku, wszyscy będą mogli go wykonywać(uruchamiać).

sudo kill [PID] – Program może zużywać więcej zasobów niż zwykle lub po prostu nie możesz zamknąć go w normalny sposób. Właśnie wtedy z pomoc przychodzi nam polecenie KILL w terminalu. Na początek musimy znaleźć PID (numer identyfikacyjny procesu). Możemy tego dokonać wykonując np. polecenie TOP lub PS -aux.

sudo auto-apt ./configure – Często się zdarza przy próbie instalacji nowego oprogramowania, że zależności pomiędzy pakietami nie zostały spełnione. Innymi słowy brakuje oprogramowania, które jest niezbędne do poprawnej jego instalacji lub działania. W dystrybucjach opartych na Debianie(w tym Ubuntu) możesz zainstalować pakiet o nazwie auto-apt, który zatrzyma kompilator w momencie wykrycia brakujących zależności abyś mógł je zainstalować ze źródeł

Przełączenie do trybu tekstowego.
Gdy przykładowo serwer Xów zawiesił się lub uniemożliwia Ci wykonanie jakichkolwiek czynności możesz chcieć przełączyć się do trybu tekstowego bez niepotrzebnego resetowania komputera. W każdej chwili możesz się przełączyć używając kombinacji klawiszy CTRL+ALT+F2 ,a następnie zalogować się na swoje konto.

Powrót do trybu graficznego.
Kiedy naprawimy już usterki za pomocą linii komend, bez problemu przełączymy się do środowiska graficznego dzięki kombinacji CTRL+ALT+F7. Gdyby jednak stało się ,iż ten skrót nie zadziała, wtedy należy spróbować F7 zastąpić jednym z Fów pomiędzy F3-F6.

Aby powyższe komendy działały muszą być uruchamiane w trybie roota, w tym celu przed każdą należy dodać polecenie sudo.

Montowanie dodatkowych dysków Ubuntu 17.10

Ubuntu w wersji 17.10 automatycznie montuje wszystkie dodatkowe dyski ( USB i HDD) w katalogu :

/media

System identyfikuje montowanie po UUID

dla przykładu :

/media/user/19f14480-a512-4301-8598-994149037418

Jest to dość skomplikowana metoda montowania i w przypadku większej liczby auto montowanych urządzeń może sprawić użytkownikowi nieco problemów z identyfikacją.

Aby uprościć widok naszych dysków skorzystamy z narzędzia wbudowanego w ubuntu 17.10 ( program “dyski”)

zaznacz dysk w którym chcesz zmienić punkt montowania, naciśnij zębatkę i wybierz modyfikuj opcje montowania:

interesują nas 2 opcje

“punkt montowania”

/mnt/sde1

oraz “identyfikowanie jako” zmień na formę:

/dev/sde1

Dzieki tym zmianom nasz dodatkowy dysk będzie dostępny w katalogu:

/mnt/sde1

Teraz potrzebujemy nadać prawa zapisu i odczytu naszemu użytkownikowi (domyślnie prawa zapisu ma tylko root)

sudo chown -R user /mnt/sde1

 

 

 

 

Ubuntu – montowanie partycji NTFS

Automatyczne montowanie partycji NTFS

Wiele osób (spośród posiadaczy Ubuntu) jest równocześnie użytkownikiem Windowsa. Zdarza się, że dla zaoszczędzenia miejsca posiadają wydzielone partycje NTFS, na których magazynują takie dane jak muzyka, zdjęcia. System Ubuntu gwarantuje do nich dostęp, jednak standardowo taka partycja nie jest automatycznie montowana i przed wejściem na nią trzeba podać hasło. W tym artykule zaprezentuję sposób na automatyczne montowanie partycji od razu po starcie systemu.

Na początek zainstaluj pakiet, dzięki któremu Twój system będzie mógł obsługiwać partycje NTFS:

sudo apt-get install ntfs-3g

Teraz musisz sprawdzić jaki „numerek” przypisał system dyskom, które chcesz zamontować. Otwórz terminal i wydaj polecenie:

sudo fdisk -l

To polecenie wyświetli wszystkie wykrywane przez system partycje. Powinna zainteresować Cię ta część:

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1         898     7213153+   7  HPFS/NTFS
/dev/sda2             899       19456   149067135    f  W95 Ext'd (LBA)
/dev/sda5            8188       19456    90518211    7  HPFS/NTFS
/dev/sda6             899        1022      995967   82  Linux swap / Solaris
/dev/sda7            1023        8187    57552831   83  Linux

Łatwo z niej wywnioskować, że partycje NTFS posiadają oznaczenie sda1 i sda5 – oczywiście w Twoim przypadku mogą być to zupełnie inne oznaczenia.

Nie zamykając terminalu wydaj polecenie:

sudo ls -l /dev/disk/by-uuid/

Tym razem powinieneś zainteresować się tym:

lrwxrwxrwx 1 root root 10 2008-08-08 09:51 343e5ec1-99ed-4682-a6cb-5aa6a8e1f44a -> ../../sda7
lrwxrwxrwx 1 root root 10 2008-08-08 09:51 92701CA6701C9359 -> ../../sda5
lrwxrwxrwx 1 root root 10 2008-08-08 09:51 A080692280690060 -> ../../sda1
lrwxrwxrwx 1 root root 10 2008-08-08 09:51 bb2b23d0-b133-4ca7-b0cb-fc8aa44b32f7 -> ../../sda6

Odszukaj na liście partycje, które chcesz zamontować (w MOIM przypadku sda5 i sda1) i zapisz sobie ich UUID (specjalnie je pogrubiłem)

Aby poprawnie zamontować partycję musisz utworzyć katalog, do którego dana partycja będzie montowana. Aby to zrobić wydaj w terminalu polecenie:

sudo mkdir /media/nazwa_katalogu

Polecam tworzenie katalogów o nazwie odpowiadającej oznaczeniu naszego dysku, czyli dla sda1 będzie to:

sudo mkdir /media/sda1

a dla sda5:

sudo mkdir /media/sda5

Podana ścieżka będzie ważna w dalszej części poradnika! Zapamiętaj ją!

Teraz będzie z górki, jednak nadal musisz być ostrożny. Czas na edycję pliku fstab, aby to zrobić wpisz:

sudo gedit /etc/fstab

Zobaczysz coś takiego:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda7
UUID=343e5ec1-99ed-4682-a6cb-5aa6a8e1f44a /               ext3    relatime,errors=remount-ro 0       1
# /dev/sda6
UUID=bb2b23d0-b133-4ca7-b0cb-fc8aa44b32f7 none            swap    sw              0       0
/dev/sda5    /media/sda5    ntfs    rw,nosuid,nodev,noatime,user_id=0,group_id=0,allow_other,auto    0    1
/dev/sda1    /media/sda1    ntfs    rw,nosuid,nodev,noatime,user_id=0,group_id=0,allow_other,auto    0    1
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0

Odszukaj partycje które chcesz zamontować i je usuń (Ctrl + X) – cały wpis, tak jak zaznaczyłem. Nie zamykaj pliku!

Teraz uzupełnij odpowiednio poniższy przykład:

#/dev/oznaczenie_partycji
UUID=uuid_partycji /media/nazwa_katalogu ntfs defaults,utf8,umask=007,gid=46 0 0

Pogrubione miejsca musisz odpowiednio uzupełnić. I tak, dla partycji sda1 będzie to wyglądać nasŧępująco:

#/dev/sda1
UUID=A080692280690060 /media/sda1 ntfs defaults,utf8,umask=007,gid=46 0 0

0 na końcu zonacza, że nie chcę, aby dostęp do partycji był zabezpieczony hasłem – aby zabezpieczyć ustaw 1

A dla sda5:

#/dev/sda5
UUID=92701CA6701C9359 /media/sda5 ntfs defaults,utf8,umask=007,gid=46 0 0

Ostatecznie uzyskaliśmy takie dwa wpisy:

#/dev/sda1
UUID=A080692280690060 /media/sda1 ntfs defaults,utf8,umask=007,gid=46 0 0
#/dev/sda5
UUID=92701CA6701C9359 /media/sda5 ntfs defaults,utf8,umask=007,gid=46 0 0

Musisz je teraz umieścić w pliku fstab. Przejdź do okna edycji tego pliku i dodaj te wpisy na końcu. Ostatecznie Twój plik fstab powinien wyglądać podobnie do tego:

# /etc/fstab: static file system information.
#
# <file system> <mount point>   <type>  <options>       <dump>  <pass>
proc            /proc           proc    defaults        0       0
# /dev/sda7
UUID=343e5ec1-99ed-4682-a6cb-5aa6a8e1f44a /               ext3    relatime,errors=remount-ro 0       1
# /dev/sda6
UUID=bb2b23d0-b133-4ca7-b0cb-fc8aa44b32f7 none            swap    sw              0       0
/dev/scd0       /media/cdrom0   udf,iso9660 user,noauto,exec,utf8 0       0
/dev/fd0        /media/floppy0  auto    rw,user,noauto,exec,utf8 0       0
#/dev/sda5
UUID=92701CA6701C9359 /media/Pliki ntfs defaults,utf8,umask=007,gid=46 0 0
#/dev/sda1
UUID=A080692280690060  /media/System ntfs defaults,utf8,umask=007,gid=46 0 0

Zapisz plik (Ctrl + S) i uruchom ponownie komputer. Po restarcie na pulpicie powinny pokazać się zamontowane ikony partycji, do których teraz masz swobodny dostęp.

Co robić jeśli powyższy sposób nie pomógł?

1. Na początek spróbuj zamontować partycję ręcznie:

sudo mount -t ntfs-3g /dev/sdaX /media/sdaX

gdzie sdaX to numer partycji, a /media/sdaX to katalog w którym chcesz zamontować partycję.

2. Jeśli dostałeś podobną informację do tej:

$LogFile indicates unclean shutdown (0, 0) Failed to mount '/dev/sdaX': Operation not supported Mount is denied because NTFS is marked to be in use. Choose one action:

Choice 1: If you have Windows then disconnect the external devices by
clicking on the 'Safely Remove Hardware' icon in the Windows
taskbar then shutdown Windows cleanly.

Choice 2: If you don't have Windows then you can use the 'force' option for
your own responsibility. For example type on the command line:

mount -t ntfs-3g /dev/sdaX /media/sdaX -o force

Or add the option to the relevant row in the /etc/fstab file:

/dev/sdaX /media/sdaX ntfs-3g force 0 0

Wydaj w terminalu polecenie:

sudo mount -t ntfs-3g /dev/sdaX /media/sdaX -o force

I sprawdź czy partycja została zamontowana.

3. Teraz dodaj do /etc/fstab wpis, który będzie automatycznie montował partycję przy starcie systemu:

sudo gedit /etc/fstab

i dodaj wpis:

/dev/sdaX /media/sdaX ntfs-3g force 0 0

gdzie /dev/sdaX to numer partycji, a /media/sdaX to katalog, w którym będzie montowana partycja. Zapisz plik (Ctrl + S) i uruchom ponownie komputer, aby zobaczyć rezultaty.

Partycja się montuje, jednak nie masz prawa zapisu?

1. Otwórz terminal i zainstaluj dwa pakiety:

sudo apt-get install ntfs-3g ntfs-config

2. Po zakończonej instalacji wydaj polecenie:

gksu ntfs-config

3. W oknie, które Ci się pojawi zaznacz obie opcje i zapisz zmiany. Uruchom ponownie komputer.

 

Źródło: http://www.ubuntu-pomoc.org

Linux – konfiguracja sieci

Konfiguracja sieci

W systemie Linuks sieć jest w podstawowym zakresie konfigurowana już podczas instalacji. Wszystkie dane konfiguracyjne są przechowywane w katalogu /etc/ i jego podkatalogach.
Dużą dogodnością jest fakt, że Linuks, podobnie jak inne systemy Unixowe może być konfigurowany w czasie pracy, bez konieczności restartowania systemu, co znacznie upraszcza eksperymentowanie i poprawianie problemów konfiguracyjnych.

Najważniejsze pliki konfiguracyjne odpowiadające za działanie sieci to :

  • /etc/sysconfig/network
  • /etc/HOSTNAME
  • /etc/hosts
  • /etc/services
  • /etc/host.conf
  • /etc/resolv.conf

 

/etc/sysconfig/network

Plik network zawiera podstawowe informacje o konfiguracji sieci, takie jak :

NETWORKING
HOSTNAME
DOMAINNAME
GATEWAY
GATEWAYDEV
<YES> jeśli nasz host pracuje w sieci lub <NO> jeśli nie
<nazwa hosta>
<nazwa domeny>
<adres bramy sieciowej>
<nazwa urządzenia, które obsługuje bramę sieciową>

 

/etc/HOSTNAME/

Plik ten powinien zawierać tylko jeden wpis, określający główną nazwę naszego hosta .

 

/etc/hosts

Plik hosts zawiera odwzorowania adresów IP na nazwy komputerów, jak również aliasy tych nazw.
W praktyce plik ten wykorzystywany jest tylko wtedy, gdy nasza sieć nie posiada własnego serwera nazw (DNS).

Każdy wiersz tego pliku powinien składać się z następujących rekordów :

IP nazwa_hosta
np.:
192.168.1.12 stacja1

 

/etc/services

Plik services zawiera odwzorowania nazw usług sieciowych na numery portów wykorzystywanych przez komputer do obsługi danej usługi. Plik ten składa się z wierszy, z których każdy jest jednym rekordem informacji.

Każdy rekord składa się z trzech pól :

nazwa port/protokół aliasy # komentarz
np.:
www     80/tcp      http    # WWW

gdzie :

nazwa – oznacza słowo reprezentujące opisywaną usługę
port – jest numerem określający numer portu, pod którym będzie dostępna dana usługa
protokół – nazwa protokołu TCP lub UDP
aliasy – określają inne nazwy, pod którymi będzie dostępna usługa

 

/etc/host.conf

Plik host.conf zawiera dane o kolejności, w jakiej system powinien odpytywać różne systemy tłumaczeń nazw (DNS, NIS) przy rozwiązywaniu nazwy sieciowej.

Plik ten może składać się z następujących dyrektyw :

order – określa kolejność przepytywania systemów tłumaczeń nazw i może składać się z następujących opcji :
bind (DNS), hosts ( /etc/hosts), nis (NIS)
multi – określa, czy zapytanie kierowane do systemu rozwiązywania nazw zwraca tylko jeden wynik – off, czy może zwrócić ich kilka – on

 

/etc/resolv.conf

Plik resolv.conf jest plikiem konfiguracyjnym klienta DNS. Określa on kolejność przeszukiwania domen i zawiera adresy serwerów nazw.

Najczęściej przy konfiguracji tego pliku stosuje się trzy słowa kluczowe :

nameserver – określa adres serwera DNS
domain – określa nazwę domeny, do której należy komputer
search – określa kolejność przeszukiwania domen

Dodawanie i usuwanie kont w systemie Linux

Dodawanie i usuwanie nowych kont

Linuks posiada dwa sposoby tworzenia nowych kont :

  • poprzez specjalne programy
  • ręcznie – poprzez edycję odpowiednich plików

 

Podstawowym programem do dodawania nowych użytkowników jest useradd o następującej składni :

useradd -d katalog_domowy -g grupa_początkowa -G inne_grupy -s powłoka -u UID login

gdzie :

katalog_domowy – wartość ta określa nazwę nowo utworzonego użytkownika. Domyślnie zmienna ta przyjmuje wartość taką samą jak login
gupa_początkowa – jest nazwą grupy początkowej użytkownika. Grupa ta musi już istnieć. W przypadku nie podania tej zmiennej system sam utworzy grupę dla użytkownika o nazwie zgodnej z nazwą loginu
inne_grupy – lista dodatkowych grup, do których również należy użytkownik powłoka – nazwa powłoki użytkownika
UID – numeryczna wartość identyfikatora użytkownika. Wartość ta musi być niepowtarzalna i większa od 99. W przypadku nie podania tej zmiennej system sam przydzieli użytkownikowi pierwszy wolny numer.

Domyślne wartości dla zmiennych są podawane z pliku /etc/default/useradd

Dodanie użytkownika o nazwie uczen do systemu może wyglądać następująco :

groupadd uczen

useradd -d /home/uczen -g uczen -s /bin/bash uczen
lub
useradd uczen

 

Ręczne tworzenie konta wymaga więcej czasu od administratora systemu, ale za to pomoże w zrozumieniu mechanizmu tworzenia kont.

Aby ręcznie utworzyć nowe konto dla użytkownika uczen należy wykonać następujące czynności :

a) dodać wpis do pliku /etc/passwd i w przypadku maskowania haseł do /etc/shadow

/etc/passwd
uczen::504:504::/home/uczen:/bin/bash

/etc/shadow
uczen::0:99999:7:::

Składnia pliku passwd jest następująca :

nazwa_użytkownika:hasło:UID:GID:komentarz:katalog_domowy:polecenie_logowania

gdzie :

nazwa_użytkownika – jest polem zawierającym jednoznacznie identyfikującą nazwę użytkownika
hasło – jest zakodowanym hasłem użytkownika. Jeśli w systemie użyto maskowania haseł to w miejscu tym znajduje się x. Brak jakiejkolwiek wartości oznacza brak hasła na tym koncie
UID – unikalny numer reprezentujący użytkownika w systemie
GID – unikalny numer wskazujący na domyślną grupę, do której należy użytkownik komentarz – zawiera informacje o użytkowniku dostępną dla innych użytkowników po wydaniu polecenia finger
katalog_domowy – określa miejsce katalogu domowego użytkownika
polecenie_logowania – polecenie, które zostaje uruchomione w trakcie logowania do systemu. Często jest to wpis wskazujący na powłokę.

Składnia pliku /etc/shadow jest następująca :

nazwa_użytkownika:hasło:data_zmiany_hasła:min:max:przypomnienie:ważność_konta: inne

gdzie :

nazwa_użytkownika – jest polem zawierającym jednoznacznie identyfikującą nazwę użytkownika
hasło – zaszyfrowane hasło
data_zmiany_hasła – data ostatniej zmiany hasła
min – minimalny okres pomiędzy zmianami hasła
max – maksymalny okres pomiędzy zmianami hasła
przypomnienie – wartość ta określa na ile dni przed upływem terminu przypominać o zmianie hasła
ważność_konta – termin ważności konta
inne – miejsce zarezerwowane na przyszłe zmienne

b) dodać wpis do /etc/group i /etc/gshadow

/etc/gropu :
uczen:x:504:

/etc/gshadow :
uczen:x::

c) skopiować pliki z /etc/skel do utworzonego katalogu /home/uczen

d) ustawić właściciela i prawa dostępu dla nowego użytkownika :

cd /home/
chown -R uczen:uczen uczen
cd /home/uczen
chmod -R go=u,go-w .
chmod go= .

e) ustawić hasło dla konta :

passwd uczen

Grupy

Grupy umożliwiają dostęp do zasobów systemowych wybranym użytkownikom. Istnieją dwie możliwości zarządzania grupami :

  • tworzenie nowej grupy dla każdego nowo utworzonego użytkownika
  • dodawanie użytkowników do istniejących już grup

Każda z tych metod ma swoje zalety i wady. Tworzenie osobnych grup dla nowych użytkowników zwiększa bezpieczeństwo ich danych.
Załóżmy jednak, że nasz system pracuje w firmie, gdzie zatrudnionych jest pięciu księgowych i dziesięciu pracowników biurowych. Wszyscy ci pracownicy korzystają z zasobów naszego systemu. Księgowi posiadają wspólne bazy danych i pracownicy biurowi wspólne zasoby. Zasoby księgowych nie mogą być dostępne dla pracowników biurowych i odwrotnie.
W takim przypadku dobrym rozwiązaniem jest stworzenie dwóch grup :

  • księgowi
  • biurowi

Każdej z tych grup należy przydzielić odpowiednich pracowników i ustawić odpowiednie prawa dostępu dla nich i innych użytkowników, zabraniając tym ostatnim prawa dostępu.
Takie rozwiązanie daje możliwość dzielenia się zasobami wśród danej grupy nie udostępniając ich innej.

Do tworzenia nowej grupy służy polecenie :

groupadd -g gid nazwa_grupy
lub
groupadd nazwa grupy

gdzie :

gid – numeryczna wartość identyfikatora grupy. Wartość ta musi być niepowtarzalna.
Wartości od 0-99 są zarezerwowane dla kont systemowych i nie powinny być używane.
W przypadku nie podania gid system sam przydzieli grupie pierwszą wolną wartość.

Aby skasować daną grupę należy wydać polecenie :

groupdel nazwa_grupy

Podczas dodawania grup system modyfikuje następujące pliki :

/etc/group

zawiera on wszystkie informacje o grupach.
Każdy wpis zajmuje jedną linię, mającą następujący format :
nazwa_grupy:hasło:GID:lista_użytkowników

/etc/gshadow

zawiera bezpieczne informacje o kontach grup.

Linux – polecenia

Podstawowe polecenia

Dokładny opis każdego poleceń można zobaczyć poprzez wydanie komendy :

man polecenie

Polecenia można podzielić na następujące grupy :

– polecenia związane z plikami i katalogami
– polecenia związane z systemem plików
– polecenia związane z zarządzaniem użytkownikami
– polecenia związane z zarządzaniem modułami jądra
– polecenia związane z procesami
– polecenia związane z siecią
– polecenia związane z wyszukiwaniem
– polecenia związane z szukaniem pomocy
– inne polecenia

 

Polecenia związane z plikami i katalogami :

 

cd ścieżka_dostępu
Opis : zmiana bieżącego katalogu

 

touch [-acm] [MMDDhhmm] lista_plików
Opis : modyfikacja daty i czasu utworzonego pliku, tworzenie nowego pliku
Opcje:
-a – zmienia tylko czas ostatniego dostępu do pliku
-c – jeśli plik nie istnieje nie zostanie utworzony
-m – zmienia czas ostatniej modyfikacji pliku
MMDDhhmm – czas w postaci : miesiąc dzień godzina minuta (np.: 10122122)

 

rm [-fr] nazwa_pliku
Opis : kasowanie pliku
Opcje :
-f – pomija konieczność potwierdzenia pytania o usuwanie plików
-r – usuwa zawartość katalogu wraz z podkatalogami

 

cp [-flpRs] plik plik_docelowy_lub_katalog
Opis : kopiowanie plików i katalogów
Opcje :
-f – powoduje, że program nie uprzedza o nadpisaniu pliku docelowego o tej samej nazwie
-l – tworzy dowiązanie zamiast kopiować plik
-p – opcja ta powoduje, że kopiowane pliki zachowują w miarę możliwości swoje atrybuty
-R – kopiuje zawartość katalogów i podkatalogów
-s – tworzy dowiązanie symboliczne zamiast kopiować plik

 

mv [ -fu] plik plik_docelowy_lub_katalog
Opis : zmiana nazwy lub przenoszenie pliku i katalogu
Opcje :
-f – powoduje, że program nie uprzedza o nadpisaniu pliku docelowego o tej samej nazwie
-u – przenosi pliki tylko wówczas, gdy istniejące pliki docelowe są starsze

 

chmod [-R][ugoa][+-=][rwx] plik_lub_katalog
Opis : zmiana atrybutów pliku
Opcje :
-R – zmiana praw dla plików i katalogów wraz z podkatalogami
-u (user) – właściciel pliku lub katalogu
-g (group) – grupa, do której należy dany plik lub katalog
-o (other) – wszyscy pozostali
+ – dodaje prawa
 – odbiera prawa
= – sprawia, że plik lub katalog będzie miał prawa tylko takie, jakie zostaną podane po tej opcji
-r – prawo czytania danych
-w – prawo zapisu (edycji)
-x – prawo uruchamiania

 

chown [-Rf] właścicel[:grupa] plik_lub_katalog
Opis : zmiana właściciela pliku lub katalogu
Opcje :
-R – zmiana właściciela i/lub grupy plików i katalogów wraz z podkatalogami
-f – zmienia właściciela i/lub grupę tylko tym plikom, które należą do podanego właścicela i/lub grupy

 

mkdir [-mp] katalog
Opis : tworzenie katalogów
Opcje :
-m=prawa – nadaje tworzonym katalogom podane prawa
-p – nie ostrzega, jeśli katalog o podanej nazwie już istnieje

 

rmdir [-p] katalog
Opis : kasowanie katalogów
Opcje :
-p – usuwa katalog wraz z katalogami nadrzędnymi

 

ls [-al] plik_lub_katalog
Opis : wyświetla informacje o plikach i katalogach
Opcje :
-a – wyświetla wszystkie pliki w katalogu, wraz z plikami ukrytymi
-l – listuje w długim formacie pełną informację o plikach i katalogach

 

ln [-dfs] plik_lub-katalog link
Opis : tworzenie dowiązań
Opcje :
-d – tworzy dowiązanie twarde do katalogów
-f – nie informuje o nadpisywaniu istniejącego pliku
-s – tworzy dowiązanie symboliczne

 

less nazwa_pliku
Opis : podgląd plików tekstowych

 

cat nazwa_pliku
Opis : przesyła plik na standardowe wejście

 

Polecenia związane z systemem plików :

 

df [-aht] urządzenie
Opis : sprawdzenie ilości wolnego miejsca na dysku
Opcje :
-a – wyświetla informacje o każdym systemie plików
-h – wyświetlane informacje są podawane w łatwych do odczytania jednostkach
-t=typ – wyświetla informacje tylko o systemie danego typu

 

mkfs [-t] [-c] urządzenie_blokowe
Opis : tworzenie systemu plików
Opcje :
-t – określa typ tworzonego systemu plików, domyślnie ext2
-c – sprawdza uszkodzone bloki urządzenia przed utworzeniem systemu plików

 

mount [-t] [-o] urządzenie_lub_katalog
Opis : montowanie systemu plików
Opcje :
-t – typ montowanego systemu plików
-o – po tej opcji następuje podanie oddzielonych przecinkami wartości :
   remount – przemontowanie zamontowanego już systemu plików
ro – montuje system plików w tryb tylko do odczytu
rw – montuje system plików w tryb tylko do odczytu i zapisu
nouser – zabrania zwykłemu użytkownikowi montowania systemu plików

 

umount urządzenie_lub_katalog
Opis : odmontowanie systemu plików

 

e2fsck [-pcf] [-b] urządzenie
Opis : testowanie systemu plików
Opcje :
-p – napraw automatycznie system plików bez żadnych pytań
-c – uruchom program badblocks w celu znalezienia uszkodzonych bloków
-f – wymuś sprawdzanie, nawet jeśli system plików wydaje się być czysty
-b superblok – użyj podanego superbloku

 

fdisk [-lv] [-s] urządzenie
Opis : obsługa partycji
Opcje :
-l – drukuje tablice partycji
-v – drukuje numer wersji fdiska
-s partycja – jest partycją wybranego dysku
urządzenie – jest plikiem z katalogu /dev wskazującym na nasz dyski (np.: hda)

 

fdformat [-n] urządzenie
Opis : niskopoziomowy format dyskietki
Opcje :
-n – wyłączenie weryfikacji sformatowanej dyskietki

 

Polecenia związane z zarządzaniem użytkownikami :

 

useradd [-d] [-g] [-G] [-s] [-u] nazwa_użytkownika
Opis : dodawanie użytkowników
Opcje :
-d katalog_domowy – wartość ta określa katalog domowy użytkownika, domyślnie zmienna ta przyjmuje wartość taką samą jak nazwa użytkownika
-g gupa_początkowa – jest nazwą grupy początkowej użytkownika. Grupa ta musi już istnieć. W przypadku nie podania tej zmiennej system sam utworzy grupę dla użytkownika o nazwie zgodnej z nazwą użytkownika
-G inne_grupy – lista dodatkowych grup, do których zostanie przypisany użytkownik
-s powłoka – nazwa powłoki użytkownika
-u uid – numeryczna wartość identyfikatora użytkownika. Wartość ta musi być niepowtarzalna i większa od 99. W przypadku nie podania tej zmiennej system sam przydzieli użytkownikowi pierwszy wolny numer.

 

userdel [-r] nazwa_użytkownika
Opis : usuwanie użytkowników
Opcje :
-r – zostaną usunięte pliki w katalogu domowym użytkownika, sam katalog domowy i pliki buforowania poczty

 

groupadd [-g] nazwa_grupy
Opis : dodawanie grup
Opcje :
-g gid – numeryczna wartość identyfikatora grupy. Wartość ta musi być niepowtarzalna. Wartości od 0-99 są zarezerwowane dla kont systemowych i nie powinny być używane. W przypadku nie podania gid system sam przydzieli grupie pierwszą wolną wartość.

 

groupdel nazwa_grupy
Opis : usuwanie istniejących grup

 

usermod [-d] [-g] [-G] [-s] [-u] [-l] nazwa_użytkownika
Opis : modyfikowanie danych użytkowników
Opcje :
-l login – nowa nazwa użytkownika
pozostałe opcje mają identyczne znaczenie jak opcje z polecenia useradd

 

groupmod [-g][-n] grupa
Opis : modyfikowanie danych grup
Opcje :
-g gid – numeryczna wartość identyfikatora grupy
-n grupa – nowa nazwa grupy

 

passwd [-l][-u][-d][-S] nazwa_użytkownika
Opis : zmiana hasła użytkownika
Opcje :
-l – zablokowanie konta
-u – ponowne udostępnienie konta
-S – wyświetlenie informacji o stanie konta

 

su nazwa_użytkownika
Opis : chwilowa zmiana aktywnego użytkownika

 

Polecenia związane z zarządzaniem modułami jądra :

 

insmod [-fp] [-o] plik_modułu
Opis : instalowanie modułu jądra
Opcje :
-f – usiłuje załadować moduł nawet jeśli wersja uruchomionego jądra i jądra dla którego moduł został skompilowany nie zgadza się
-p – sprawdza czy moduł może być załadowany bez kłopotów
-o nazwa_modułu – podanie dokładnej nazwy modułu

 

rmmod [-a] moduł
Opis : usuwanie modułu
Opcje :
-a – usuń wszystkie nieużywane moduły

 

lsmod
Opis : listowanie aktywnych modułów

 

depmod moduł
Opis : sprawdzanie zależności między modułami

 

modprobe moduł
Opis : instalowanie modułu z potrzebnymi opcjami i modułami

 

modinfo [-adnp] plik_modułu
Opis : informacje o modułach
Opcje :
-a – wypisuje autora modułu
-d – wypisuje opis modułu
-n – wypisuje nazwę pliku modułu
-p – wypisuje parametry wspierane przez moduł

 

Polecenia związane z procesami :

 

top [-p]
Opis : listuje procesy o największym obciążeniu procesora i wyświetla ich statystyki w czasie
rzeczywistym
Opcje :
-p – monitoruje jedynie proces o danym id procesu

 

pidof nazwa_programu
Opis : wyświetlenie numeru procesu wybranego programu

 

ps [-auxr][txx]
Opis : listuje aktywne procesy
Opcje :
-a – pokaż procesy innych użytkowników
-u – format użytkownika – podaje nazwę użytkownika i czas startu
-x – pokaż procesy bez kontrolującego terminala
-r – pokaż tylko pracujące procesy
-txx – pokaż tylko procesy z kontrolującym tty XX

 

kill [-s] numer_procesu
Opis : zakańcza działanie procesu
Opcje :
-s – rodzaj wysłanego sygnału

 

jobs
Opis : listuje aktywne programy

 

fg numer_zadania
Opis : ustawienie procesu na front

 

bg numer_zadania
Opis : przeniesienie procesu w tło

 

Polecenia związane z siecią :

 

ifconfig <if> <IP> <nm> <bc>
Opis : konfigurowanie interfejsu sieciowego
Opcje :
if – rodzaj interfejsu (np.: Eth0)
IP – adres IP interfejsu
nm – maska sieci
bc – adres rozgłoszeniowy

 

ifconfig interfejs up
Opis : uruchamianie interfejsu sieciowego

 

ifconfig interfejs down 
Opis : zatrzymywanie interfejsu sieciowego

 

route add|del [-net|-host] gw cel netmask dev
Opis : kontrola trasowania
Opcje :
add – dodanie drogi do tablicy trasowania
del – usunięcie drogi z tablicy trasowania
-net – oznacza, że celem jest sieć
-host – oznacza, że celem jest stacja
gw brama – adres bramy sieciowej
cel – docelowa sieć lub stacja
netmask netmaska – maska sieci
dev interfejs – wymusza związanie trasy z podanym interfejsem

 

netstat [-riM]
Opis : wyświetla połączenia sieciowe i statystyki połączeń
Opcje :
-r -wyświetl tablice routingu
-i – wyświetla tablice wszystkich działających interfejsów sieciowych
-M – wyświetl listę wszystkich maskaradowanych sesji

 

Polecenia związane z wyszukiwaniem :

 

grep [-civ] wzorzec [plik]
Opis : wyszukiwanie ciągów znaków
Opcje :
-c – podaje liczbę wierszy w których znaleziono pasujący wzorzec
-i – pomija różnicę w wielkości liter
-v – wyświetla wiersze, w których nie ma podanego wzorca
plik – nazwa pliku, w którym nastepuje przeszukanie

 

find
Opis : szukanie plików

 

whereis [-bms] nazwa pliku
Opis : lokalizuje źródła, binaria i dokumentację man
Opcje :
-b – szukaj tylko binariów
-m – szukaj tylko sekcji dokumentacji man
-s – szukaj tylko źródeł

 

Polecenia związane z szukaniem pomocy :

 

man polecenie
Opis : manual systemowy

 

info
Opis : podręcznik GNU

 

apropos klucz
Opis : przeszukuje bazy z dokumentacją pod kątem słów kluczowych

 

Inne polecenia :

 

date [-ds]
Opis : podaje lub ustawia datę systemową i czas
Opcje :
-d DATA – podaje datę i czas, określone podanym wyrażeniem
-s DATA – ustawia podany czas i datę

 

logout , exit
Opis : zakończenie sesji

 

clear
Opis : czyszczenie ekranu terminala

 

shutdown [-akh] czas ostrzeżenie
Opis : restart lub wyłączenie systemu
Opcje :
-a – użyj /etc/shutdown.allow w celu zabronienia wykonywania tego polecenia
-k – wyślij komunikat o zamknięciu ale nie wykonuj prawdziwego zamknięcia systemu
-h – zatrzymaj po wyłączeniu systemu
czas – czas po którym system zostanie zamknięty.
Forma czasu : HH(godzina):MM(minuty) lub +m gdzie m jest liczbą minut do odczekania

 

halt
Opis : zamknięcie systemu

 

reboot
Opis : przeładowanie systemu

Polecenie at

Składnia polecenia at jest następująca :

at -f {plik z zadaniem} czas_uruchomienia_zadania
lub
at czas_uruchomienia_zadania

Po naciśnięciu klawisza ENTER wpisujemy zadanie do wykonania.

Określanie czasu dla polecenia at.
Czas można określić na wiele sposobów. Domyślnie przyjmowany jest czas 24-godzinny. Podawanie minut jest opcjonalne. Jeśli dodany zostanie przyrostek am lub pm, czas będzie traktowany jako czas 12-godzinny.
Przy podawaniu czasu dozwolone jest stosowanie słów mających specjalne znaczenie:
midnight (północ)noon (południe)today (dziś)tomorrow (jutro) oraz now (teraz).
Po słowie now należy podać czas, po jakim polecenie ma zostać wykonane.
Oprócz wartości oznaczających godziny można również podawać, w którym miesiącu zadanie ma się rozpocząć (za pomocą liczb od 1 do 12 lub pierwszych trzech liter angielskiej nazwy miesiąca). Rok oznaczany jest liczbą czterocyfrową. Dni tygodnia podaje się za pomocą pierwszych trzech liter nazwy angielskiej.
Odstępy czasu pozwalają na podanie pory rozpoczęcia zadania w odniesieniu do czasu bieżącego. Do ich określania służy znak +, po którym następuje liczba i jeden z wyrazów: minutehourdayweek lub year (można również używać liczby mnogiej, na przykład weeks). Słowo next (następny) ma takie samo znaczenie, jak +1.

Oto kilka przykładów :

at 14:12 January 9
at 2:12am Jan 9
at now + 5 minutes

 

Polecenie crontab

Składnia polecenia crontab :

crontab -l | -r | -e

-e otwiera plik z zadaniami
-l listuje zadania
-r usuwa zadania

Określanie czasu dla polecenia crontab :

Składnia pliku z zadaniami jest następująca :

min godz dzień_miesiąca miesiąc dzień_tygodnia zadanie

Dane podawane są w pięciu kolumnach rozdzielonych przecinkami; myślnik oznacza zakres, natomiast gwiazdka – wszystkie dostępne wartości.

Oto lista poszczególnych pól i dostępnych w nich wartości :

Minuty     0-59
Godziny    0-23
Dni miesiąca     1-31
Miesiące    1-12
Dni tygodnia    0-6, 0 = niedziela

Oto kilka przykładów :

co pięć minut
*/5 * * * * /zadania/zad1

co godzinę -1 minutę po pełnej godzinie
01 * * * * /zadania/zad1

codziennie 5 minut po północy
05 0 * * * /zadania/zad1

co tydzień w niedziele 10 minut po północy
10 0 * * 0 /zadania/zad1

 

Historia poleceń

Powłoka bash posiada zdolność przywoływania wcześniej wydawanych poleceń przez użycie klawiszy kursora. Bash rejestruje je w pliku .bash_history , który znajduje się w katalogu domowym użytkownika.

Historię poleceń określają dwa parametry :

HISTFILE – wskazuje na plik zawierający wywołane wcześniej polecenia
HISTSIZE – określa ile ostatnio wydanych poleceń ma być przechowywanych w pliku historii

Aby obejrzeć listę ostatnio wydawanych poleceń bez otwierania powyższego pliku należy skorzystać z polecenia history z parametrem określającym liczbę wierszy, które mają być wyświetlone :

history 10

pokaże 10 ostatnio użytych poleceń.

Aby powtórzyć wcześniej wydane polecenie można użyć następującej komendy :
!3
gdzie 3 jest trzecią komendą z listy wyświetlonej poleceniem history .

 

Aliasy

Bash daje nam ciekawy mechanizm aliasów umożliwiających zastępowanie złożonych poleceń krótszymi, łatwiejszymi do zapamiętania nazwami.
Aliasy tworzymy korzystając z polecenia alias , którego składnia jest następująca :

alias ‘nasza_definicja’=’polecenie’
np.:
alias ‘p’=’ps -aux’

Teraz poprzez wydanie polecenia p otrzymamy listę wszystkich procesów.
Zdefiniowane aliasy możemy zlikwidować poleceniem unalias :

unalias p

 

Dowiązania stałe i symboliczne

Mechanizm dowiązań (linków) ułatwia dostęp do plików ukrytych głęboko w strukturze katalogów lub umożliwia zgromadzenie potrzebnych plików w jednym katalogu.

Linki dzielimy na stałe i symboliczne.

Dowiązania stałe charakteryzują się tym, że posiadają ten sam i-węzeł co wskazywany plik. W praktyce oznacza to, że dowiązanie takie zawiera pełną informację o pliku i w razie skasowania oryginalnego pliku dowiązanie nadal będzie zawierać informacje o tym pliku (jego zawartość).
Dowiązanie stałe tworzymy poleceniem :

ln plik_lub_katalog link

Dowiązania symboliczne służą jedynie do wskazywania na jakiś plik. Umożliwiają one prace na danym pliku poprzez jego dowiązanie. W przypadku skasowania pliku, do którego prowadzi link symboliczny niemożliwe staje się korzystanie z tego dowiązania (nie zawiera on wówczas żadnych informacji).
Dowiązania symboliczne tworzymy poleceniem :

ln -s plik_lub_katalog link

 

Przekierowania wejścia i wyjścia

Przekierowania zazwyczaj wykorzystywane są do odczytania danych z jakiegoś urządzenia lub pliku albo do wysłania danych na urządzenie lub plik.

Do przekierowań danych służą specjalne znaki :
< dane na wejście
> dane z wyjścia

Najprostszym przykładem przekierowania może być wyświetlenie zawartości jakiegoś pliku poleceniem :

cat < plik.txt

Aby utworzyć nowy plik i wpisać do niego dowolny tekst możemy użyć przekierowania danych z wyjścia :

cat > plik.txt

Polecenie to utworzy nam plik : plik.txt i umieści w nim tekst wpisany z klawiatury.

Jeśli będziemy chcieli ponownie dodać jakiś tekst do tego pliku należy użyć polecenia :

cat >> plik.txt

Spowoduje to dodanie następnych wierszy z informacją do pliku.

Innym przykładem przekierowań może być zapisanie do pliku zawartości jakiegoś katalogu :

ls -al > plik.txt

 

Skrypty powłoki – wprowadzenie

Skrypty powłoki są programami składającymi się z poleceń powłoki i poleceń sterujących programem, takich jak : IF, FOR, REPEAT, WHILE itp.
Skrypty umożliwiają pobranie danych od użytkownika lub z pliku, przetworzenie ich i wyświetlenie wyniku na ekranie monitora lub zapisanie go na dowolnym urządzeniu.

Aby nasz skrypt mógł zostać uruchomiony należy nadać mu prawo do uruchamiania poleceniem :

chmod +x nazwa_skryptu

Każdy skrypt powinien rozpoczynać się linijką :

#!/bin/bash
Zapis ten oznacza to, że do przetworzenie skryptu zostanie użyta powłoka bash.

Przykładowy skrypt może wyglądać następująco :

#!/bin/bash
# to jest tylko komentarz
echo ‘skrypt wyswietla aktualny katalog roboczy’
echo -e “biezacy katalog :\n\a`pwd`”

 

#!/bin/bash
echo “informacje o uruchomionym skrypcie”
echo “nazwa skryptu : $0”
echo “ilosc parametrow : $#”
echo “pierwszy parametr to : $1”
echo “drugi parametr to : $2”
echo -e “zestawienie wszytkich parametrow :\n$*”

 

Skrypty powłoki – wyrażenie read

Wyrażenie read używane jest do pobierania danych z klawiatury i zapisywania ich w zmiennych.

Składnia wyrażenia read jest następująca:

read zmienna1,zmienna2,..zmiennaN

Przykładowy skrypt :

#!/bin/bash
echo “Podaj swoje imię:”
read imie
echo “Cześć $imie !”

 

Linux – struktura katalogów

Struktura katalogów w dystrybucjach Linuksa jest zorganizowana tak, aby spełniała wymagania standardu określającego postać Linuksowego systemu plików.

Katalogi zorganizowane są w następujący sposób :

/            – główny katalog
|_ bin    – pliki wykonywalne
|_ boot  – pliki ładujące system
|_ dev    – pliki urządzeń
|_ etc     – pliki konfiguracyjne
|_ lib      – biblioteki dzielone i moduły jądra
|_ mnt    – punkt montowania systemów plików
|_ opt     – pakiety zainstalowane opcjonalnie
|_ sbin    – pliki wykonywalne (dla administratorów)
|_ tmp    – pliki tymczasowe
|_ usr     – narzędzia i aplikacje
|_ var    – zmieniające się dane

 

Opis zawartości poszczególnych katalogów :

/
Katalog nadrzędny, który rozpoczyna całe drzewo katalogów.

/bin
Katalog ten zawiera programy wykonywalne, dostępne dla zwykłego użytkownika.

/boot
Katalog ten zawiera tylko statyczne pliki dla boot loadera potrzebne podczas procesu bootowania.

/dev
Tu znajdują się pliki reprezentujące poszczególne urządzenia.

/etc
Zawiera ogólnosystemowe pliki konfiguracyjne dla wielu programów.
Pliki konfiguracyjne dla całego systemu można również umieszczać w /usr/etc.
Niemniej jednak programy powinny zawsze szukać tych plików w /etc , a ty możesz umieścić linki do nich w /usr/etc.

/home
Tu znajdują się katalogi domowe użytkowników.

/lib
Ten katalog powinien zawierać te biblioteki dynamiczne, które są konieczne do wystartowania systemu i uruchamiania komend z głównego systemu plików.

/lib/modules
Ładowalne moduły jądra, wymagane do startu systemu i pracy po jego padzie (sterowniki sieciowe, itd. ).

/mnt
Jest punktem montowania systemów plików montowanych tymczasowo.

/opt
Ten katalog powinien zawierać dodatkowe pakiety, które zawierają statyczne pliki.

/proc
System plików /proc jest całkowicie wirtualny – nie istnieje na dysku. Jest tworzony i utrzymywany przez jądro w pamięci. Używany jest w celu dostarczenia informacji o systemie (o działających procesach – stąd nazwa).

/root
Tan katalog jest katalogiem domowym użytkownika root.

/sbin
Tak jak /bin, katalog ten zawiera programy potrzebne do wystartowania i administracji systemu. Z programów tych mogą korzystać tylko administratorzy systemu.

/tmp
Ten katalog zawiera pliki tymczasowe, które może usunąć w dowolnym momencie.

/usr
W katalogu tym znajdują się programy zainstalowane podczas instalacji systemu lub te, które instalowaliśmy ręcznie. Katalog ten można zamontować na oddzielnej partycji, dzięki czemu po aktualizacji lub zmianie systemu nie musimy ponownie instalować dodatkowych programów.

/usr/bin
Jest to główny katalog programów wykonywalnych, używanych przez zwykłych użytkowników, które nie są potrzebne przy starcie lub naprawie systemu, i które nie są instalowane lokalnie.

/usr/etc
Można tu umieszczać pliki konfiguracyjne dzielone między kilkoma maszynami. Programy jednak powinny zawsze odwoływać się do tych plików używając katalogu /etc.
Linki od plików w /etc powinny wskazywać na odpowiednie pliki w /usr/etc.

/usr/lib
Znajdują się tu biblioteki obiektowe, w tym dynamiczne, plus parę plików wykonywalnych.

/usr/local
Katalog ten jest przeznaczony dla programów instalowanych lokalnie.

/usr/local/bin
Tu są binaria programów lokalnych.

/usr/local/doc
Lokalna dokumentacja.

/usr/local/etc
Pliki konfiguracyjne skojarzone z lokalnie zainstalowanymi programami.

/usr/local/lib
Pliki skojarzone z lokalnie zainstalowanymi programami.

/usr/local/include
Pliki nagłówkowe lokalnego kompilatora C.

/usr/local/info
Strony info skojarzone z lokalnie zainstalowanymi programami.

/usr/local/man
Strony podręcznika ekranowego skojarzone z lokalnie zainstalowanymi programami.

/usr/local/sbin
Lokalnie instalowane programy do administracji systemem.

/usr/local/share 
Dane lokalnych aplikacji, które mogą być dzielone między różnymi architekturami tego samego systemu operacyjnego.

/usr/local/src
Kody źródłowe programów instalowanych lokalnie.

/usr/sbin
Ten katalog zawiera binaria programów do administracji systemem, które nie są niezbędne do startu lub naprawy systemu.

/usr/share
Ten katalog zawiera podkatalogi ze specyficznymi danymi aplikacji, które mogą być dzielone między różnymi architekturami tego samego systemu operacyjnego.

/usr/share/doc
Dokumentacja zainstalowanych programów.

/usr/share/info 
Katalog ze stronami info.

/usr/share/locale
Tutaj znajdują się informacje związane z ustawieniami regionalnymi.

/usr/share/man 
Trafiają tu strony podręcznika ekranowego do odpowiednich katalogów według sekcji podręcznika.

/usr/share/zoneinfo
Pliki informacji o strefach czasowych.

/usr/src 
Pliki źródłowe różnych części systemu, dołączane do niektórych pakietów.

/usr/src/linux
Zawiera źródła jądra samego systemu operacyjnego.

/var 
Ten katalog zawiera pliki, które mogą zmieniać wielkość, takie jak logi i spoole.

/var/cache
Zbuforowane dane programów.

/var/lib 
Zmieniające się podczas pracy systemu pliki programów.

/var/local
Zmienne dane dla programów zainstalowanych w /usr/local.

/var/lock
Umieszczane są tu przez programy pliki blokady w celu wskazania na swoje działanie. Inne programy sprawdzają te pliki i odpowiednio działają (np.: wstrzymują się z odwołaniem do danego urządzenia).
Konwencja nazw plików lock dla urządzeń to LCK.<urządzenie> gdzie <urządzenie>, to nazwa urządzenia w systemie plików.

/var/log
Tu znajdują się logi systemowe i innych programów.

/var/opt
Zmienne dane dla /opt.

/var/mail
Skrzynki pocztowe użytkowników. Zastępuje /var/spool/mail.

/var/run
Pliki zawierające bieżące informacje o systemie, np.: pliki zawierające identyfikatory procesów (PIDy) i informację o zalogowanych użytkownikach (utmp). Pliki w tym katalogu są zwykle czyszczone przy starcie systemu.

/var/spool
Kolejkowane pliki różnych programów.

/var/spool/at
Spoolowane zadania dla at

/var/spool/cron
Spoolowane zadania dla crona.

/var/spool/lpd
Spoolowane pliki do drukowania.

/var/tmp
Tak jak /tmp, ten katalog zawiera tymczasowe pliki przechowywane na czas nieokreślony.