Praca z plikami i poleceniami
Przygotuj się do laboratorium
Zdobądź dane dostępowe do serwera SPK – jeżeli ich nie pamiętasz (albo nie wiesz czy masz konto), pomogą w tym administratorzy (
dane kontaktowe)
Zapoznaj się z poleceniem
chmod (przejrzyj manual do polecenia
chmod i/lub
stronę w wikipedii)
Wiedza
1. Pomoc
2. Uruchamianie programów
Pliki programów są przechowywane w systemie plików.
Każdy plik programu w systemie ma nazwę (case sensitive).
Program jest uruchamiany przez powłokę poprzez podanie nazwy jego pliku.
Powłoka zapewnia mechanizmy kontroli pracy uruchamianych zadań (ang. job), programów.
Powłoka zapewnia mechanizmy przekazywania wyników pracy zadań.
3. Argumenty poleceń
Polecenia mogą przyjmować argumenty.
Argumenty mogą być obowiązkowe (np. nazwa pliku) lub opcjonalne (tzw. opcje).
Niektóre opcje przyjmują dodatkowe argumenty (obowiązkowe, lub opcjonalne).
Nazwy opcji maja format długi i krótki.
Argumenty są case sensitive.
Spis opcji programu jest podany w man lub przez opcje
-h|--help
Kolejność można zmieniać.
Krótkie opcje można scalać.
Przykłady wykorzystania opcji:
ls --all # format długi
ls -a # format krótki
# zmiana kolejności opcji:
ls -a -l
ls -l -a
# przekazanie argumentów
ls --ignore=\*.png # format długi
ls -I \*.png # format krótki
# scalanie opcji
ls -al # OK
ls -la # OK
ls -alI \*.png # OK
ls -Ila \*.png # ŹLE!
4. Praca z plikami
System plików ma strukturę drzewiastą:
/
/bin
/bin/bash
/home
/home/gjn
/home/gjn/plik
/home/gjn/katalog/plik
Jest zawsze tylko jedna taka struktura podczas pracy systemu.
W związku z tym zawsze jest bezwzględny początek systemu plików: /
Inne systemy mogą być włączane jako kolejne gałęzie.
Katalog bieżący: .
Katalog nadrzędny: ..
Katalog jest plikiem!
Nazewnictwo:
Wszystkie pliki i katalogi mają nazwy będące ciągami znaków alfanumerycznych.
Nazwy mogą być długie i są case sensitive.
Katalogi rozdziela się znakiem / (ang. slash).
Ścieżka dostępu to nazwa pliku pozwalająca na jego umiejscowienie.
Pełna (bezwzględna) ścieżka określa jego położenie względem początku drzewa, zaczyna się od /, np. /etc/init.d/cups
.
Względna ścieżka określa położenie względem katalogu bieżącego.
~user
oznacza katalog domowy użytkownika user
(mechanizm na poziomie powłoki, nie systemu plików!)
5. Polecenia dotyczące plików i katalogów
Pliki:
cp kopiowanie
mv przenoszenie, zmiana nazwy
rm usuwanie
touch zakładanie pustego, modyfikacja daty
file typ pliku
Katalogi:
cd zmiana bieżącego
pwd podanie bieżącego
mkdir zakładanie
rmdir usuwanie (pustego!)
ls pokazywanie zawartości
du pokazywanie objętości (również pliku)
W nazwach plików do których użytkownik odwołuje się w powłoce można używać 2 metaznaków (znaków specjalnych), które zastępują ciągi znaków w nazwie pliku (ścieżce dostępu):
znak ?
zastępuje dokładnie jeden znak,
znak *
zastępuje ciąg znaków o dowolnej (w tym zerowej) długości.
6. Prawa dostępu
7. Atrybuty pliku
Przykład:
$ ls -l cruise
-rw-r--r-- 1 tom staff 683 Jul 4 2000 cruise
$ ls -l /tmp/cruise
-rwxr-xr-x 1 tom staff 783 Jul 4 2000 /tmp/cruise
8. SUID, SGID i sTicky bit
SUID -
set user id - pozwala na uruchomienie programu z prawami właściciela tego pliku
$ ls -l /usr/bin/passwd
-rwsr-xr-x 1 root root 31704 lis 14 15:41 /usr/bin/passwd
SGID - set group id - pozwala na uruchomienie danego pliku z prawami grupy tego pliku
SGID - set group id - w przypadku katalogu, sprawia, że nowo-tworzone pliki, należą do tej grupy, do której należy katalog, a nie do grupy z uprawnieniami której pracuje użytkownik
sTicky bit - pliki w katalogu z ustawionym sticky bit mogą być usuwane lub zmieniane tylko przez właściciela danego pliku lub katalogu
$ ls -l | grep tmp
drwxrwxrwt 22 root root 12288 lis 14 15:41 tmp
9. Zmiana praw dostępu
Prawa dostępu zmienia się przy pomocy polecenia
chmod (ang.
change mode):
chmod prawa nazwa_pliku
Numeryczne prawa dostępu
r=4, w=2, x=1
su=4, sg=2, t=1
chmod NNNN plik
Na przykład:
chmod 755 plik
chmod u=rwx,g=rx,o=rx plik
chmod 644 plik
chmod u=rw,g=r,o=r plik
chmod 44 plik
chmod 0044 plik
Administrator może zmieniać właściciela
chown i grupę
chgrp pliku:
chown user plik
chgrp grupa plik
10. Domyślne prawa, umask
$ umask
0022
$ umask -S
u=rwx,g=rx,o=rx
$ touch nowy1 ; ls -l nowy1
-rw-r--r-- 1 gjn gjn 0 Feb 26 20:39 nowy1
$ umask 700 ; touch nowy2 ; ls -l nowy2
----rw-rw- 1 gjn gjn 0 Feb 26 20:40 nowy2
$ umask 077 ; touch nowy3 ; ls -l nowy3
-rw------- 1 gjn gjn 0 Feb 26 20:40 nowy3
$ umask 000 ; touch nowy4 ; ls -l nowy4
-rw-rw-rw- 1 gjn gjn 0 Feb 26 20:40 nowy4
11. Prawa do katalogów
write → zapis do katalogu
read → odczyt zawartości (spisu plików!), możliwość wykonania ls
execute → dostęp do zawartości (plików), możliwość wykonania cd
Przykład:
$ chmod a=rx katalog
$ ls katalog
plik
$ cd katalog
$ cd ..
$ chmod a=r katalog ; ls katalog
plik
$ cd katalog
sh: cd: katalog: Permission denied
$ chmod a=x katalog ; cd katalog
$ ls
ls: .: Permission denied
12. Dowiązania symboliczne
są wskaźnikami, skrótami do plików,
pozwalają na udostępnianie pliku pod różnymi nazwami, w różnych katalogach,
tworzenie przy pomocy
ln -s
:
ln -s plik dowiazanie
polecenie ls -L
wyświetla pliki na które wskazuje link symboliczny.
bez opcji -s
→ dowiązania sztywne,
liczba dowiązań sztywnych do pliku to
N
w
ls -l
-rwxrwxrwx N uzytkownik grupa rozmiar data nazwa
13. Midnight Commander
Jest to program do zarządzania plikami. Obsługuje się go podobnie jak inne typu “commander”. Dodatkowo:
zmiana praw dostępu: C-x c
dostęp do klawiszy Fn (np. F1) przez Esc+N (np. Esc+1)
lynx-like motion w konfiguracji
wiele innych możliwości…
Z MC dostępny jest edytor: mcedit.
Ćwiczenia
I. Polecenia
sprawdzić w manualu opis poleceń ls(1) cp(1) mkdir(1) rm(1)
jakie opcje tych poleceń wyświetlają opis argumentów?
w przypadku ls przetestować działanie opcji l a A F d R
, w przypadku mkdir opcji p m
, dla rm f
i R
dla poznanych powyżej opcji przetestować zmianę kolejności i łączenie
znaleźć opcje ls, które przyjmują argumenty; przetestować je; na co należy zwrócić uwagę przy łączeniu?
należy sprawdzić, czy nie są zdefiniowane aliasy zmieniające pracę używanych poleceń (polecenie un/alias)
przy czytaniu manuala można przełączyć sesję na pracę w języku polskim przy pomocy export LANG=pl_PL.UTF-8
(o ile jest dostępny dla danej strony), można też spróbować ustawić inne języki, np. fr_FR.UTF-8
, czy de_DE.UTF-8
.
II. Pliki
poruszając się po stworzonej strukturze należy przetestować działanie poleceń cd i pwd wykorzystując bezwzględne i względne ścieżki dostępu, a tym katalogi specjalne .
i ..
przetestować działanie metaznaków (gwiazdka, pytajnik) z poleceniem ls w katalogu /usr/bin
jak przejść do katalogu poprzedniego?
jak przejść do katalogu domowego podanego użytkownika?
III. Prawa dostępu
przeczytać podręcznik do chmod i sprawdzić sposób działania polecenia
przetestować zmiany praw dostępu na plikach stworzonych w strukturze unix/lab2
odczyt testować przy pomocy cat plik
zapis przy pomocy echo “cos” » plik
uruchamianie przy pomocy ./plik
wykonać ćwiczenia w parach (wykonanie ćwiczeń w parach uzależnione jest od aktualnej konfiguracji systemu)
ćwiczenie podobne do powyższego, aby obserwować wpływ zmiany praw dostępu na możliwości dostępu do plików drugiej osoby
prawa dostępu na katalogach - próbuj czytać pliki w katalogach drugiej osoby: czym różni się read od execute? sprawdzić działanie pwd, ls i cd przy różnych kombinacjach tych praw (szczególnie: tylko read, tylko execute)
jakie muszą być spełnione warunki aby użytkownik A mógł tworzyć katalogi w katalogu, który należy do użytkownika B, a co wystarczy do zapisu plików w katalogu?
prawa numeryczne: sposób działania i użycie; czym się różnią od symbolicznych?
numeryczne prawa dostępu a polecenie umask, sprawdzić działanie dla różnych wartości.
oglądnąć bity
SUIG/sTicky na plikach/katalogach:
ls -ld /tmp
ls -l /usr/bin/passwd
IV. Linki
przeczytać opis do ln(1)
stworzyć dowiązania symboliczne do plików przy pomocy
ln -s
:
ln -s plik dowiazanie
co się dzieje przy czytaniu, zapisywaniu, uruchamianiu dowiązania?
co przy jego usuwaniu?, a co przy usuwaniu samego pliku?
sprawdzić działanie dowiązań do katalogów; jak działa pwd, co dają opcje P L
V. Midnight Commander