Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prawa i znowu prawa ...
Forum PHP.pl > Forum > Przedszkole
Nosfi
Witam,

Żeby było jasno nie znalazłem odpowiedzi w poprzednich postach na nurtujący mnie problem dlatego tworzę nowy wątek.

Przeprowadźmy mały eksperyment ...

Pierwszy katalog tworzymy z poziomu php i nadajemy mu wysokie prawa:
  1. <?php
  2.  
  3. $oldumask = umask(0);
  4. mkdir(&#092;"sciezka/folderPHP\", 01777);
  5. umask($oldumask);
  6.  
  7. ?>


Drugi katalog (folderTC) tworzymy w Total Commanderze i nadajemy mu prawa 777.

Jak by nie patrzeć oba katalogi mają takie same prawa.

Następnie przy pomocy formularza i php uploadujemy do obu katalogów plik:

  1. <form method="post" action="<?php $PHP_SELF; ?>" enctype="multipart/form-data">
  2. <input type="file" name="plik">
  3. <input type="submit" value="Wyslij plik">
  4. </form>


  1. <?php
  2.  
  3. copy($_FILES[&#092;"plik\"][\"tmp_name\"],\"sciezka/folderPHP/\". $_FILES[\"plik\"][\"name\"]);
  4.  
  5. copy($_FILES[&#092;"plik\"][\"tmp_name\"],\"sciezka/folderTC/\". $_FILES[\"plik\"][\"name\"]);
  6.  
  7. ?>


Czy użyjemy COPY czy MOVE_UPLOADED_FILE nie ma różnicy.

I teraz ważna rzecz ... mianowicie wynik naszego eksperymentu:

logujemy się na FTP przez Totala i wchodzimy tam gdzie tworzyliśmy katalogi:

folderTC - możemy robić wszystko, zmiana uprawnień, usuwanie folderu, pliów itp ...
folderPHP - nie możemy już nic zrobić, prócz zmiany nazwy katalogu. Dosłownie tracimy wszelkie uprawnienia, nie możemy zmienić praw katalogu, usunąć plików, NIC.

Ciekawe jest to, że pomimo widzianych uprawnień w Totalu '777' w standardowym FTPie mamy uprawnienia:
folderTC - drwxrwxrwx
folderPHP - drwxrwxrwt

Różnica w ostatniej literce ...



Sądze, że coś pominąłem w mojej twórczości i mam nadzieję, że pomoc nadejdzie (szybko biggrin.gif )
GSulko
Spróbuj zmienić:

  1. <?php
  2. mkdir(&#092;"sciezka/folderPHP\", 01777);
  3. ?>

na
  1. <?php
  2. mkdir(&#092;"sciezka/folderPHP\", 0777);
  3. ?>
Nosfi
Ok dziwna sprawa ...

Wcześniej jak robiłem "0777" lub "777" to mi nadawał "411" ... a teraz jest ok ...

Chyba zostane księdzem ...

P.S. Może ktoś wyjaśnić mi różnice w nadawaniu praw plikom i katalogom ?

Dzięki
GSulko
Cytat
Typy praw

W linuxie istnieją tylko trzy typu praw dostępu. W zupełności jednak wystarczają do całkowitej kontroli systemu. Prawo do zapisu pliku (write), pozwala na modyfikacje go, a także na usuwanie, prawo do odczytu (read) daje możliwość przeczytania pliku, ale i skopiowania! Trzeci typ to wykonywanie (execute). Jeśli plik nadaje się do uruchomienia (binaria, skrypty), system go wykona. Nadawanie prawa execute dla zwykłego pliku nie ma sensu, gdyż system nie będzie potrafił go wykonać.

Jeśli chodzi o katalogi to prawo do zapisu pozwala na tworzenie, przenoszenie, usuwanie plików w nim zawartych. Prawo wykonywania daje możliwość wejścia do katalogu poleceniem cd.


Więcej.
Nosfi
Ja wiem jakie są typy praw, jedynie nie rozumiem jaka jest różnica pomiędzy

777, 0777, 01777 ... wiem, że są zapisy dziesiętne, ósemkowe itp ... tego mi wyjaśniać nie trzeba, ale każde z tych praw jest tylko teoretycznie takie samo ... praktycznie różnią się od siebie ... dlaczego ?

Dzięki
GSulko
Cytat(GSulko @ 2004-10-15 12:44:27)
Cytat
Typy praw

W linuxie istnieją tylko trzy typu praw dostępu. W zupełności jednak wystarczają do całkowitej kontroli systemu. Prawo do zapisu pliku (write), pozwala na modyfikacje go, a także na usuwanie, prawo do odczytu (read) daje możliwość przeczytania pliku, ale i skopiowania! Trzeci typ to wykonywanie (execute). Jeśli plik nadaje się do uruchomienia (binaria, skrypty), system go wykona. Nadawanie prawa execute dla zwykłego pliku nie ma sensu, gdyż system nie będzie potrafił go wykonać.

Jeśli chodzi o katalogi to prawo do zapisu pozwala na tworzenie, przenoszenie, usuwanie plików w nim zawartych. Prawo wykonywania daje możliwość wejścia do katalogu poleceniem cd.


Więcej.

Nie mam linuxa(jeszcze), wiec moge sie nie znać.
Nosfi
Tak ... OK ale ciągle mówisz o typach ... a mnie interesują różnice ...

mimo wszystko dzięki ...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.