Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: chmody kilka pytań
Forum PHP.pl > Forum > PHP
ultra_18
Witam , od niedawna mam problemy z chmodami i tu moje kilka pytań :
1. czy są jakieś funkcje sprawdzające chmody oprócz is_writable , is_readable?
2. czy jest jakaś funkcja zmieniająca chmody?
3. Dlaczego polecenie `ls /home/plik.txt` może być wykonane na moim serwie a `chmod 777 /home/plik.txt` nie? Co trzeba zrobić żeby mógł wykonywac te polecenie oraz inne np kopiowanie ,usuwanie, zmiana nazwy za pomoca przegladarki.

4. Zaważyłem że na pewnym cmsie można zapisywać dane do pliku nawet jeżeli ma chmody 644 a u siebie na serwie musze mieć 777 inaczej nie ruszy :/ co trzeba zrobić aby móc zapisywac plik nawet z chmodami 644.


Z góry dzieki za odpowiedzi wstydnis.gif
jareeny
Ad 4

Pewnie przy zmianie zawartości pliku ten cms zmienia chmody na 777 a po tem znow na 644

Ad 3

Cytat
Co trzeba zrobić żeby mógł wykonywac te polecenie oraz inne np kopiowanie ,usuwanie, zmiana nazwy za pomoca przegladarki.


Poznać odpowiednie funkcje i troche mysleć winksmiley.jpg

Ad 2

http://pl.php.net/chmod
ultra_18
Cytat(jareeny @ 8.11.2008, 21:48:24 ) *
Ad 4
Pewnie przy zmianie zawartości pliku ten cms zmienia chmody na 777 a po tem znow na 644

troche zbyt piękne żeby było prawdziwe, gdyby tak było to ten sam cms podczas instalacji nie sprawdzał czy pliki sa możliwe do zapisania funkcja is_writable z operatorem błedu @ i po zakonczeniu instalacji nie wysietlalby komunikatu że trzeba zmienić dla bezpieczeństwa chmodów dla pliku xxx na 644

Cytat(jareeny @ 8.11.2008, 21:48:24 ) *


poznałem już wcześniej tą funkcje tylko że linijka
chmod("plik.txt", 0755);
wystetla blad
Warning: chmod() [function.chmod]: Operation not permitted in ...
jareeny
Cytat
chmod("plik.txt", 0755);
wystetla blad
Warning: chmod() [function.chmod]: Operation not permitted in ...


w komentarzach do funkcji chmod() jest na przykład takie coś:

If you get a warning like chmod(): Operation not permitted in ...

You can use the ftp_site() function to send a CHMOD command through.
  1. <?php
  2.  
  3.  $ftp_details['ftp_user_name'] = $row['username'];
  4.  $ftp_details['ftp_user_pass'] = $row['password'];
  5.  $ftp_details['ftp_root'] = '/public_html/';
  6.  $ftp_details['ftp_server'] = 'ftp'.$_SERVER['HTTP_HOST'];
  7.  
  8.  function chmod_11oo10($path, $mod, $ftp_details)
  9.  {
  10.      // extract ftp details (array keys as variable names)
  11.      extract ($ftp_details);
  12.      
  13.      // set up basic connection
  14.      $conn_id = ftp_connect($ftp_server);
  15.      
  16.      // login with username and password
  17.      $login_result = ftp_login($conn_id, $ftp_user_name, $ftp_user_pass);
  18.      
  19.      // try to chmod $path directory
  20.      if (ftp_site($conn_id, 'CHMOD '.$mod.' '.$ftp_root.$path) !== false) {
  21.          $success=TRUE;
  22.      }
  23.      else {
  24.          $success=FALSE;
  25.      }
  26.  
  27.      // close the connection
  28.      ftp_close($conn_id);
  29.      return $success;
  30.  }
  31.  ?>


The key thing to remember is that the document root and the ftp root are not the same.
e.g. document root may be "/home/folder/public_html/"
but the ftp root might be "/public_html/"

Hope this helps someone. You might need this solution if you are on a shared server.
ultra_18
ok jereny pomogłeś zadziałało dałem pomógł jednak jest to "półśrodek" i teraz bardziej zależy mi na odpowiedzi czemu nie mogę wykonywac poleceń systemowych pomimo:


safe_mode Off
disable_functions No value
open_basedir (puste)

wersja php:
PHP Version 5.2.0-8+etch11


Jak by ktoś umiał pomóc to mogę podac inne ustawienia konfiguracyjne.
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.