Zabezpieczanie swoich danych (polecenie chmod)


Po co zabezpieczać dane

Jeżeli wydaje ci się, że nie masz nic na tyle ważnego w swoim katalogu domowym, aby uniemożliwiać dostęp do niego, to mylisz się. Musisz uważać przede wszystkim, aby żaden z twoich kolegów nie skopiował twoich (w pocie i znoju pisanych) programów. Plagiaty wykryte będą niezawodnie, a prowadzący może nie mieć ochoty sprawdzać kto jest faktycznym autorem programu i wlepi tobie i kopiującemu po równo ujemnych punktów. Poza tym czasami możesz chcieć coś zabezpieczyć aby mieć poczucie prywatności (np. list od koleżanki). Jak to zrobić?

Atrybuty plików

W systemach unixowych każdy plik ma przypisanego swojego właściciela, grupę użytkowników oraz zestaw atrybutów opisujcych dostęp do niego. Odpowiednie manipulowanie tymi wartościami umożliwia kontrolowanie praw dostępu do pliku przez poszczególnych użytkowników. Służą do tego narzędzia chmod oraz chown (gorąco polecam podręcznik: man chmod i man chown)

Aby obejrzeć atrybuty plików wystarczy wylistować zawartość katalogu z parametrem -l
%ls -l
Można sprawdzić uprawnienia pojedyńczego pliku:
%ls -l <nazwa_pliku>
albo katalogu:
%ls -ld <nazwa_katalogu> (dzięki opcji -d unikniesz wyświetlenia zawartości katalogu)
w sczególności katalogu bierzącego:

%ls -ld .

jak sprawdzić atrybuty plików?

Po wylistowaniu katalogu powinieneś zobaczyć mniejwięcej coś takiego:

drwxrwxr-x   4 mgajewsk ar3         4096 lut 21  2001 ToTu/
-rw-r--r--   1 mgajewsk ar3          508 lis  7  2000 UNTITLED
drwx------  10 mgajewsk ar3         4096 cze  7  2000 ada/
-rw-------   1 mgajewsk ar3           15 wrz  4 16:51 adminitools.info
drwxr-xr-x   2 mgajewsk ar3         4096 paź 29 14:25 am/
drwxr-xr-x   8 mgajewsk ar3         4096 lut 26  2001 apache_1.3.19/
-rw-r--r--   1 mgajewsk ar3      1928677 paź 29 14:33 apache_1.3.19.tar.gz
drwxr-xr-x   2 mgajewsk ar3         4096 paź 19  1999 arc/
-rw-r--r--   1 mgajewsk ar3      16603520 gru  5 13:57 aspell-pl-0.1-1mdk.i586.rpm
drwxr--r--   2 mgajewsk ar3         4096 lis 12 12:55 bin/
drwxr-xr-x   2 mgajewsk ar3         4096 gru  6  2000 bx/
drwx--x--x  23 mgajewsk ar3         4096 gru  5 16:22 c/
-rw-r--r--   1 mgajewsk ar3         2622 lis  7 12:24 c3.html
drwxr-xr--   2 mgajewsk ar3         4096 paź 23 16:12 cgi-bin/
-rw-r--r--   1 mgajewsk ar3        30720 gru 16  1998 cicq-0.01.tar
-rw-r--r--   1 mgajewsk ar3         1395 paź 11  2000 dde.buttons
-rw-r--r--   1 mgajewsk ar3         1994 wrz 19 13:58 ddkenv
-rw-------   1 mgajewsk ar3          382 gru  5 12:32 dead.letter
drwxr-xr-x   2 mgajewsk ar3         4096 paź 17 12:35 diablo/
drwxr-xr-x   2 mgajewsk ar3         4096 gru  1 22:36 dict/
-rw-r--r--   1 mgajewsk ar3        33164 wrz 20 13:26 dnsdump

 ^^^^^^^         ^^^    ^                  ^^^^^^^^      ^
    |             |     |                      |         NAZWA PLIKU (KATALOGU)
    |             |     |                      |
    |             |     |                      DATA OSTATNIEJ MODYFIKACJI
    |             |     |            ROZMIAR (w bajtach)
    |             |     GRUPA
    |             WŁAŚCICIEL
    ATRYBUTY (co oznaczają - o tym niżej)

To co tu widzisz to kawałek listingu mojego katalogu domowego. Uzyskałem go wpisując ls -l, ale u ciebie wyniki mogą być troszke inne. Zwróć uwagę na to, że nazwy katalogów zakończone są ukośnikiem, co bardzo ułatwia czytanie. Aby uzyskać taki efekt, należy uruchomić ls z parametrem -F. Ja ułatwiłem sobie pracę, wpisując do swojego pliku .cshrc następującą linijkę:
alias ls ls -pF
Powoduje to, że każdy wpisany przeze mnie 'ls' jest zamieniany na 'ls -pF'. Jeżeli chcesz dowiedzieć się więcej na temat parametrów ls, sprawdź w podręczniku: man ls

co oznaczają atrybuty

Każdy plik ma przyporządkowanych 10 atrybutów. Widzisz je po lewej stronie listingu. Pierwszy z nich (od lewej) oznacza typ pliku. W szczególności d oznacza katalog, a brak atrybutu (oznaczony minusem) oznacza zwykły plik. Ten atrybut może przyjmować także inne wartości. Ich opis znajdziesz w podręczniku do ls.
Następnych dziewieć atrybutów oznacza prawa dostępu do pliku. Atrybuty pogrupowane są trójkami: pierwsza trójka oznacza uprawnienia właściciela, druga członków grupy a trzecia pozostałych użytkowników.
Każda trójka składa się z trzech atrybutów: rwx, gdzie

Każdy z tych atrybutów może być "zapalony" lub "zgaszony".

jak zmieniać atrybuty

Możesz zmienić uprawnienia pliku za pomocą komendy chmod. Składnia jest następująca:
chmod [u|g|o|a][+|-|=][r|w|x] nazwa_pliku
Pierwszy zestaw liter określa komu zmieniasz uprawnienia:

Nastpnie znak +, - albo = określa sposób w jaki zmieniasz uprawnienia: możesz je nadać (+) lub zabrać (-), lub ustawić dokładnie tak jak pokazuje następny zestaw parametrów (=). Na końcu podajesz jedno lub więcej uprawnień które nadajesz/zabierasz.

Oto przykład:

 plik, którego nikt nie będzie mógł czytać poza mną
%ls -l tajny_plik

-rw-rw-r--  jkowalsk  ar2       tajny_plik

%chmod go-rw tajny_plik
%ls -l tajny_plik

-rw-------  jkowalsk  ar2       tajny_plik

 plik z dowcipami, który każdy może odczytać ale nikt poza mną nie może zmienić 

%ls -l blondynki

-rw-rw----  jkowalsk  ar2       blondynki

%chmod go=r blondynki
%ls -l blondynki

-rw-r--r--  jkowalsk  ar2       blondynki

 katalog z programami; chciałbym, aby wszyscy mogli tam zajrzeć, ale nikt nie mógł nic z niego skopiować 

%ls -ld programy

drwxr-xr-x  jkowalsk  ar2       programy

%chmod go=x programy
%ls -ld programy

drwx--x--x  jkowalsk  ar2       programy

 napisałem skryp szhellowy i chcę żeby można go było uruchomić

%ls -l skrypt

-rw-r-----  jkowalsk  ar2       skrypt

%./skrypt

./skrypt: Permission denied.

%chmod a+x skrypt
%ls -l skrypt

-rwxr-x--x jkowalsk  ar2        skrypt

%./skrypt

Cześć, to ja twój skrypt...

Atrybuty można zmienia także w inny sposób: podając je w systemie ósemkowym. Można też zrobić perę tricków uprawnieniowych, zwłaszcza z programami lub skryptami. Ale o tym przeczytaj sam w man chmod.


Valid HTML 4.01 Transitional