Imię:
E-mail:
* Komentarz:
(Użyj BBcode - Żadnego HTML)
code
* Kod potwierdzenia:   Przepisz znaki, które widzisz powyżej (wielkość liter ma znaczenie)


CHMOD - czyli uprawnienia do plików

CHMOD - czyli uprawnienia w plików

WSTĘP

Jak wiadomo w systemach takich jak UNIX czy Linux każdy użytkownik ma dostęp tylko do niektórych plików. Dzięki temu nikt nie może np. zmodyfikować cudzej strony. W tym krótkim tekście wyjaśnię zasady, na jakich są nadawane uprawnienia do plików. Polecam zapoznanie się z nimi zarówno osobom które chcą tworzyć własne skrypty CGI lub PHP, jak również osobom które chciałyby skorzystać z już istniejących.

Jeżeli dysponujemy dostępem przez FTP, możliwą do wykorzystania komendą będzie chmod.

UŻYTKOWNICY I GRUPY

Do każdego pliku jest przypisany identyfikator właściciela - użytkownika który stworzył ten plik, oraz grupy - czyli zbioru użytkowników którzy mają do tego pliku uprawnienia inne od pozostałych. Tak więc możliwe jest np. że do pliku aaa.txt może zapisywać i odczytywać tylko jego właściciel, odczytywać z niego dane może cała grupa, a pozostali użytkownicy nie mają do niego żadnych uprawnień. Możliwa jest też oczywiście sytuacja, w której uprawnienia użytkownika, grupy i pozostałych są takie same.

ODCZYT, ZAPIS I WYKONANIE

Istnieją 3 podstawowe prawa dostępu do pliku: prawo do odczytu, zapisu i uruchomienia pliku. Prawa te są nadawane niezależnie właścicielowi pliku, grupie do której plik należy i pozostałym użytkownikom. Aby dowiedzieć się, jakie uprawnienia są ustawione dla poszczególnych plików używa się komendy ls -l. Podaje ona przy każdym pliku w bieżącym katalogu nazwę właściciela i grupy do której należy plik, oraz nadane im uprawnienia. Uprawnienia są przedstawione w formie rwxr-x---. Litera oznacza ustawione uprawnienie, kreska brak uprawnienia. Grupy znaków (po 3 od lewej) oznaczają kolejno uprawnienia dla właściciela, grupy i pozostałych użytkowników. W tym przykładzie właściciel może zapisywać, czytać i uruchamiać plik, grupa może go tylko odczytać i uruchomić, natomiast pozostali użytkownicy nie mają dostępu do pliku. Do zmiany uprawnień służy komenda chmod nowe_uprawnienia nazwa_pliku. Nowe uprawnienia są zapisane jako 3-cyfrowa liczba. Cyfry od lewej oznaczają uprawnienia dla właściciela, grupy i pozostałych. Są one sumą cyfr 4 dla odczytu, 2 dla zapisu i 1 dla uruchomienia. Aby więc ustawić uprawnienia tak jak w powyższym przykładzie, należy wydać polecenie chmod 750 nazwa_pliku.

USTAWIANIE UPRAWNIEŃ W KLIENTACH FTP

Windows Commander - zaznacz plik, wybierz Change Attributes z menu File. Pojawi się okno w którym trzeba ustawić potrzebne uprawnienia i kliknąć ok. WS_FTP - zaznacz plik, kliknij prawym przyciskiem i wybierz chmod(UNIX). Pojawi się okno w którym trzeba ustawić potrzebne uprawnienia i kliknąć ok.

Uprawnienia w UNIX'ie  -   WSTĘP

Jak wiadomo w systemach takich jak UNIX czy Linux każdy użytkownik ma dostęp tylko do niektórych plików. Dzięki temu nikt nie może np. zmodyfikować cudzej strony.
W tym krótkim tekście wyjaśnię zasady, na jakich są nadawane uprawnienia do plików. Polecam zapoznanie się z nimi zarówno osobom które chcą tworzyć własne skrypty CGI lub PHP, jak również osobom które chciałyby skorzystać z już istniejących. Aby móc skorzystać ze wszystkich podanych komend potrzebny
będzie dostęp do shella (przez telnet lub ssh).
Jeżeli dysponujemy tylko dostępem przez FTP, jedyną możliwą do wykorzystania komendą będzie chmod.

UŻYTKOWNICY I GRUPY

Do każdego pliku jest przypisany identyfikator właściciela - użytkownika który stworzył ten plik, oraz grupy - czyli zbioru użytkowników którzy mają do tego pliku uprawnienia inne od pozostałych. Tak więc możliwe jest np. że do pliku aaa.txt może zapisywać i odczytywać tylko jego właściciel, odczytywać z niego dane może cała grupa, a pozostali użytkownicy nie mają do niego żadnych uprawnień. Możliwa jest też oczywiście sytuacja, w której uprawnienia użytkownika, grupy i pozostałych są takie same.

ODCZYT, ZAPIS I WYKONANIE

Istnieją 3 podstawowe prawa dostępu do pliku: prawo do odczytu, zapisu i uruchomienia pliku. Prawa te są nadawane niezależnie właścicielowi pliku, grupie do której plik należy i pozostałym użytkownikom. Aby dowiedzieć się, jakie uprawnienia są ustawione dla poszczególnych plików używa się komendy ls -l. Podaje ona przy każdym pliku w bieżącym katalogu nazwę właściciela i grupy do której należy plik, oraz nadane

 im uprawnienia. Uprawnienia są przedstawione w formie rwxr-x---. Litera oznacza ustawione uprawnienie, kreska brak uprawnienia. Grupy znaków (po 3 od lewej) oznaczają kolejno uprawnienia dla właściciela, grupy i pozostałych użytkowników. W tym przykładzie właściciel może zapisywać, czytać i uruchamiać plik, grupa może go tylko odczytać i uruchomić, natomiast pozostali użytkownicy nie mają dostępu do pliku.


 Do zmiany uprawnień służy komenda chmod nowe_uprawnienia nazwa_pliku. Nowe uprawnienia są zapisane jako 3-cyfrowa liczba. Cyfry od lewej oznaczają uprawnienia dla właściciela, grupy i pozostałych. Są one sumą cyfr 4 dla odczytu, 2 dla zapisu i 1 dla uruchomienia. Aby więc ustawić uprawnienia tak jak w powyższym przykładzie, należy wydać polecenie chmod 750 nazwa_pliku.

CZYJE UPRAWNIENIA MA SKRYPT

     Program po uruchomieniu działa z uprawnieniami takimi, jak osoba która go uruchomiła. W przypadku skryptów PHP i CGI jest to zwykle specjalny użytkownik httpd, należący do grupy o tej samej nazwie. Istnieje jednak możliwość uruchomienia programu z uprawnieniami właściciela - aby było to możliwe właściciel musi ustawić w uprawnieniach do pliku pole zwane SUID (skrót od Set User ID on execution). Aby to zrobić należy wydać komendę chmod +s nazwa_pliku. 
     Jednak w przypadku skryptów PHP nie ma możliwości skorzystania z SUIDa. Jedynym sposobem nadania uprawnień do pliku dla skryptu PHP jest więc nadanie ich wszystkim, lub zmiana grupy do której plik należy na httpd i nadanie uprawnień grupie. Do zmiany grupy do której należy plik służy komenda chgrp nowa_grupa nazwa_pliku.

USTAWIANIE UPRAWNIEŃ W KLIENTACH FTP

Windows Commander - zaznacz plik, wybierz Change Attributes z menu File. Pojawi się okno w którym trzeba ustawić potrzebne uprawnienia i kliknąć ok.

WS_FTP - zaznacz plik, kliknij prawym przyciskiem i wybierz chmod(UNIX). Pojawi się okno w którym trzeba ustawić potrzebne uprawnienia i kliknąć ok.

Parametry pliku:

u - user (użytkownik), g - group (grupa), o - others (reszta);
r - readable (odczyt), w - writable (zapis), x - executable (wykonanie);

Prawa dostępu w Linuksie

W systemie operacyjnym Linux każdy plik i katalog posiada zestaw praw określający, kto ma dostęp do pliku i jakie ma prawa. Każdy plik lub katalog może mieć prawo czytania (read), pisania (write), i wykonywania.Każde z tych praw dostępu reprezentowane jest odpowiednią literą i posiada przypisany odpowiedni parametr cyfrowy.  

Litera Znaczenie Parametr Liczbowy
r prawo odczytu 4
w prawo zapisu 2
x prawo uruchomienia 1
- brak praw dostępu 0

Do każdego pliku lub katalogu możemy wyszczególnić trzy zestawy takich praw:

  • prawa właściciela
  • prawa grupy
  • prawa pozostałych użytkowników

Do wyświetlenia praw dostępu do plików możesz posłużyć się poleceniem ls z opcją -l
przykład:

[waldek@localhost waldek]$ ls -l
razem 944
-rw-r--r--    1 waldek   waldek      16561 sty 28 16:38 blackbox-menu
drwxrwxr-x    6 waldek   waldek       4096 sty 25 19:18 loki/
lrw-rw-r--    1 waldek   waldek      86720 sty 26 15:56 snap.sna
 

Pierwsza kolumna składająca się z dziesięciu znaków opisuje prawa dostępu, przy czym pierwszy znak określa rodzaj pliku (np. - (minus) oznacza plik, d oznacza katalog, l dowiązanie itd).
Znak drugi, trzeci i czwarty określa prawa właściciela do pliku, znak piąty, szósty i siódmy określa prawa grupy do której należy plik,natomiast znak ósmy, dziewiąty i dziesiąty prawa innych użytkowników systemu.

Jak widać w powyższym przykładzie do pliku blackbox-menu przypisano następujące uprawnienia:

prawo odczytu i zapisu dla właściciela (rw-)
prawo odczytu dla grupy (r--)
prawo odczytu dla pozostałych użytkowników (r--)

Dodając do siebie odpowiednie paramatry, zestaw trzech praw możemy przedstawić
za pomocą jednej cyfry.

Oto kilka najczęściej spotykanych kombinacji:

Prawa Wartość Znaczenie
--- 0 brak praw
r-- 4 prawo do zapisu
rw- 6 prawo do zapisu i odczytu
rwx 7 prawo do zapisu, odczytu i uruchomienia
r-x 5 prawo do odczytu i uruchomienia
--x 1 prawo do uruchomienia

W ten sposób za pomocą trzech cyfr możemy przedstawić całkowity (tzn. trzy zestawy) zbiór praw dostępu do pliku (pierwsza cyfra - prawa właściciela, druga cyfra - prawa grupy, trzecia - prawa dla pozostałych użytkowników).
 

Prawa dostępu Wartość liczbowa Znaczenie
-rw------- 600 prawo do odczytu i zapisu tylko dla właściciela pliku
-rw-r--r-- 644 Prawo odczytu i zapisu dla właściciela oraz odczytu dla wszystkich pozostałych użytkowników.
-rw-rw-rw- 666 prawo odczytu i zapisu dla wszystkich użytkowników.
-rwx------ 700 wszystkie prawa (odczyt, zapis, uruchomienie) tylko dla właściciela pliku.
-rwxr-xr-x 755 prawo do odczytu, zapisu i uruchomienia dla właściciela pliku oraz odczytu i uruchomienia dla wszystkich innych użytkowników
-rwxrwxrwx 777 wszystkie prawa dla wszystkich użytkowników (ustawienie niebezpieczne)
-rwx--x--x 711 prawo odczytu zapisu i uruchomienia dla właściciela pliku oraz prawo uruchomienia dla pozostałych użytkowników.
drwx------ 700 Dotyczy prawa zapisu i odczytu w katalogu tylko przez właściciela. Katalogom zawsze musi być ustawione prawo dostępu   x.
drwxr-xr-x 755 Do takiego katalogu wszyskie prawa ma właściciel, a wszyscy pozostali użytkownicy mogą tylko odczytać jego zawartość.
drwx--x--x 711 Wszystkie prawa ma właściciel. Katalog z takimi prawami dostępny jest także dla wszystkich pozostałych użytkowników, lecz jego zawartość jest przed nimi ukryta (polecenie ls nie wyświetli listy plików umieszczonych w tak oznaczonym katalogu). Aby odczytać plik użytkownik musi znać jego nazwę.
 



RSS