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ówW 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 .
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
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.