PDA

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


_Sniper_
20.03.2008, 18:27
Есть ли такая софтина? Бо файлов много очень. Нужно поставить на файлы права 666 а на папки 777.

LolFEm
20.03.2008, 18:41
http://ru2.php.net/manual/ru/function.chmod.php

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

выбор файлов

<?php
if ($handle = opendir('.')) {
while (false !== ($file = readdir($handle))) {
if ($file != "." && $file != "..") {
echo "$file\n";
}
}
closedir($handle);
}
?>

_Sniper_
20.03.2008, 18:47
Блин. Я в php мало понимаю. Можно конкретнее? Заходил на php.net..Много чего не понял.
Можно ли сразу на ВСЕ файлы и папки поставить права 777?

Isis
20.03.2008, 21:03
chmod +x /www
chmod +s /www
chmod 777 *

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

xaker-boss
20.03.2008, 22:31
Качай WinSCP, подключайся к своему FTP и выдели те папки/файлы которым ты хочешь поменять права, и нажми Свойство там выставь права и жми ОК права поставятся на се файлы которые ты выделил...

ShAnKaR
20.03.2008, 22:58
chmod -R 777 ./*

noisia
20.03.2008, 23:14
легче через тотал командер)

_Sniper_
20.03.2008, 23:14
Качай WinSCP, подключайся к своему FTP и выдели те папки/файлы которым ты хочешь поменять права, и нажми Свойство там выставь права и жми ОК права поставятся на се файлы которые ты выделил...
Я сижу через CuteFTP это всё знаю. Просто много папок и в этих папках много тоже папок..

chmod +x /www
chmod +s /www
chmod 777 *

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

krypt3r
21.03.2008, 07:50
В текущем каталоге и его подкаталогах

$ find . -type d | xargs chmod 0777
$ find . -type f | xargs chmod 0666

-Hormold-
21.03.2008, 14:24
<?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);
}
?>

Вроде должно работать.

krypt3r
21.03.2008, 16:14
Вот готовый скрипт. Меняет права как в текущем каталоге, так и подкаталогах (рекурсивно)

<?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_path, 0777))
echo " directory, chmoded to 0777\n";
treedir ($file_path);
}
elseif (is_file ($file_path))
{
if (false !== chmod ($file_path, 0666))
echo " file, chmoded to 0666\n";
}
else
echo "error\n";
}
}
closedir($handle);
}
}

treedir ("test");
?>

_Sniper_
21.03.2008, 19:14
Чёт не канает..

Forbidden

You don't have permission to access /1.php on this server.

Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.

Ch3ck
21.03.2008, 20:33
Ю донт хэв пермиссон ту аксес /один.пиашпи он вис сервер...
_
Аддишионали э 403 Форбиддиен еррор воз энкоунтеред вайл траин ту юз эн еррордокумет ту хэндл вэ рекьюст.

Чего непонятного то? У тебя права у самого какие?

_Sniper_
22.03.2008, 14:11
Пропарился вначале. Вот ошибка

Warning: opendir(test) [function.opendir]: failed to open dir: No such file or directory in /home/allfre/public_html/chmod.php on line 4

mister
22.03.2008, 14:21
treedir("test") замени на treedir(".")

_Sniper_
22.03.2008, 19:18
Ещё ошибка..

./backup -
Warning: chmod() [function.chmod]: Operation not permitted in /home/allfre/public_html/chmod.php on line 14
./backup/life_2008-02-20_16-16.sql -
Warning: chmod() [function.chmod]: Operation not permitted in /home/allfre/public_html/chmod.php on line 20
./backup/life_2008-02-20_16-16.sql.gz -
Warning: chmod() [function.chmod]: Operation not permitted in /home/allfre/public_html/chmod.php on line 20
./backup/index.html -
Warning: chmod() [function.chmod]: Operation not permitted in /home/allfre/public_html/chmod.php on line 20
./.htaccess -
Warning: chmod() [function.chmod]: Operation not permitted in /home/allfre/public_html/chmod.php on line 20
./chmod.php -
Warning: chmod() [function.chmod]: Operation not permitted in /home/allfre/public_html/chmod.php on line 20