Просмотр полной версии : Массовая смена прав на файлы [нужна помощь]
_Sniper_
20.03.2008, 18:27
Есть ли такая софтина? Бо файлов много очень. Нужно поставить на файлы права 666 а на папки 777.
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?
chmod +x /www
chmod +s /www
chmod 777 *
/www это родительская папка веб-сервера
xaker-boss
20.03.2008, 22:31
Качай WinSCP, подключайся к своему FTP и выдели те папки/файлы которым ты хочешь поменять права, и нажми Свойство там выставь права и жми ОК права поставятся на се файлы которые ты выделил...
легче через тотал командер)
_Sniper_
20.03.2008, 23:14
Качай WinSCP, подключайся к своему FTP и выдели те папки/файлы которым ты хочешь поменять права, и нажми Свойство там выставь права и жми ОК права поставятся на се файлы которые ты выделил...
Я сижу через CuteFTP это всё знаю. Просто много папок и в этих папках много тоже папок..
chmod +x /www
chmod +s /www
chmod 777 *
/www это родительская папка веб-сервера
Я так понял это поставить на все папки. Спасибо. А можно поставить на файлы отдельные права а на все папки тоже отдельные?
В текущем каталоге и его подкаталогах
$ 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);
}
?>
Вроде должно работать.
Вот готовый скрипт. Меняет права как в текущем каталоге, так и подкаталогах (рекурсивно)
<?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.
Ю донт хэв пермиссон ту аксес /один.пиашпи он вис сервер...
_
Аддишионали э 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
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
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot