Массовая смена прав на файлы [нужна помощь]

Discussion in 'PHP' started by _Sniper_, 20 Mar 2008.

  1. _Sniper_

    _Sniper_ Banned

    Joined:
    21 Jul 2007
    Messages:
    409
    Likes Received:
    147
    Reputations:
    -17
    Есть ли такая софтина? Бо файлов много очень. Нужно поставить на файлы права 666 а на папки 777.
     
  2. LolFEm

    LolFEm Elder - Старейшина

    Joined:
    8 Sep 2006
    Messages:
    160
    Likes Received:
    52
    Reputations:
    5
    http://ru2.php.net/manual/ru/function.chmod.php

    и рекурсия по каталогам

    выбор файлов
    Code:
    <?php 
    if ($handle = opendir('.')) {
        while (false !== ($file = readdir($handle))) { 
            if ($file != "." && $file != "..") { 
                echo "$file\n"; 
            } 
        }
        closedir($handle); 
    }
    ?>
    
     
    #2 LolFEm, 20 Mar 2008
    Last edited: 20 Mar 2008
  3. _Sniper_

    _Sniper_ Banned

    Joined:
    21 Jul 2007
    Messages:
    409
    Likes Received:
    147
    Reputations:
    -17
    Блин. Я в php мало понимаю. Можно конкретнее? Заходил на php.net..Много чего не понял.
    Можно ли сразу на ВСЕ файлы и папки поставить права 777?
     
  4. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    chmod +x /www
    chmod +s /www
    chmod 777 *

    /www это родительская папка веб-сервера
     
  5. xaker-boss

    xaker-boss Elder - Старейшина

    Joined:
    6 Mar 2007
    Messages:
    251
    Likes Received:
    49
    Reputations:
    -11
    Качай WinSCP, подключайся к своему FTP и выдели те папки/файлы которым ты хочешь поменять права, и нажми Свойство там выставь права и жми ОК права поставятся на се файлы которые ты выделил...
     
  6. ShAnKaR

    ShAnKaR Пачка маргарина

    Joined:
    14 Jul 2005
    Messages:
    904
    Likes Received:
    297
    Reputations:
    553
    chmod -R 777 ./*
     
  7. noisia

    noisia Elder - Старейшина

    Joined:
    13 Mar 2007
    Messages:
    20
    Likes Received:
    10
    Reputations:
    0
    легче через тотал командер)
     
  8. _Sniper_

    _Sniper_ Banned

    Joined:
    21 Jul 2007
    Messages:
    409
    Likes Received:
    147
    Reputations:
    -17
    Я сижу через CuteFTP это всё знаю. Просто много папок и в этих папках много тоже папок..

    Я так понял это поставить на все папки. Спасибо. А можно поставить на файлы отдельные права а на все папки тоже отдельные?
     
  9. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    В текущем каталоге и его подкаталогах
    Code:
    $ find . -type d | xargs chmod 0777
    $ find . -type f | xargs chmod 0666
    
     
    #9 krypt3r, 21 Mar 2008
    Last edited: 21 Mar 2008
  10. -Hormold-

    -Hormold- Кто, если не ты?

    Joined:
    29 Sep 2007
    Messages:
    418
    Likes Received:
    290
    Reputations:
    44
    PHP:
    <?php  
    $ch
    ="0777";//Начинается с 0 
    if ($handle opendir('.')) { 
        while (
    false !== ($file readdir($handle))) {  
            if (
    $file != "." && $file != "..") {  
                echo 
    "$file - ";  
               
    chmod($file$ch); 
               echo 
    "set chmod ".$ch."<br>"
            }  
        } 
        
    closedir($handle);  

    ?>
    Вроде должно работать.
     
    #10 -Hormold-, 21 Mar 2008
    Last edited: 21 Mar 2008
    1 person likes this.
  11. krypt3r

    krypt3r Elder - Старейшина

    Joined:
    27 Apr 2007
    Messages:
    1,507
    Likes Received:
    389
    Reputations:
    101
    Вот готовый скрипт. Меняет права как в текущем каталоге, так и подкаталогах (рекурсивно)
    PHP:
    <?php
      
    function treedir ($path ".")
      {
        if (
    $handle opendir ($path))
        {
          while (
    false !== ($file readdir($handle)))
          {
            if (
    $file != "." && $file != "..")
            {
              
    $file_path $path "/" $file;
              echo 
    "$file_path - ";
              if (
    is_dir ($file_path))
              {
                if (
    false !== chmod ($file_path0777))
                  echo 
    " directory, chmoded to 0777\n";
                
    treedir ($file_path);
              }
              elseif (
    is_file ($file_path))
              {
                if (
    false !== chmod ($file_path0666))
                  echo 
    " file, chmoded to 0666\n";
              }
              else
                echo 
    "error\n";
            }
          }
          
    closedir($handle);
        }
      }

      
    treedir ("test");
    ?>

     
  12. _Sniper_

    _Sniper_ Banned

    Joined:
    21 Jul 2007
    Messages:
    409
    Likes Received:
    147
    Reputations:
    -17
    Чёт не канает..
     
  13. Ch3ck

    Ch3ck Elder - Старейшина

    Joined:
    9 Jun 2006
    Messages:
    1,363
    Likes Received:
    1,190
    Reputations:
    430
    Ю донт хэв пермиссон ту аксес /один.пиашпи он вис сервер...
    _
    Аддишионали э 403 Форбиддиен еррор воз энкоунтеред вайл траин ту юз эн еррордокумет ту хэндл вэ рекьюст.

    Чего непонятного то? У тебя права у самого какие?
     
    #13 Ch3ck, 21 Mar 2008
    Last edited: 21 Mar 2008
  14. _Sniper_

    _Sniper_ Banned

    Joined:
    21 Jul 2007
    Messages:
    409
    Likes Received:
    147
    Reputations:
    -17
    Пропарился вначале. Вот ошибка
     
  15. mister

    mister Elder - Старейшина

    Joined:
    24 Jul 2007
    Messages:
    30
    Likes Received:
    16
    Reputations:
    4
    treedir("test") замени на treedir(".")
     
  16. _Sniper_

    _Sniper_ Banned

    Joined:
    21 Jul 2007
    Messages:
    409
    Likes Received:
    147
    Reputations:
    -17
    Ещё ошибка..