Возникла тут задачка. Необходимо сменить права доступа на все файлы, папки и подпапки в определенной директории. Я наивный думал, что такое должно быть реализовано в каждом FTP-браузере, но в моём любимом Total Commander'е такой функции не обнаружилось. Пришлось писать скрипт.
Как обычно сначала немного погуглил - готового решения не нашел. В общем по кусочкам собрал вот такой вот простенький скриптик:
<?
/* */
/* СКРИПТ ДЛЯ РЕКУРСИВНОЙ СМЕНЫ ПРАВ НА ФАЙЛЫ И ПАПКИ */
/* */
/* Автор: Предводителев Сергей (Niko) */
/* http://predvoditelev.ru */
/* */
/* 27.04.2009 */
/* */
// Папка, в которой находятся файлы и папки для изменения прав
$PARENT_DIR = '/home/*****';
$FILE_MODE = 0644; // права на файлы
$DIR_MODE = 0755; // права на папки
function chmodex($file) {
global $PARENT_DIR;
global $FILE_MODE;
global $DIR_MODE;
if ( file_exists($file) ) {
if ( is_dir($file) ) {
if ( !($file==$PARENT_DIR) ) { chmod( $file, $DIR_MODE ); }
$handle = opendir( $file );
while( $filename = readdir($handle) )
if ( $filename != "." && $filename != ".." ) chmodex( $file."/".$filename );
closedir($handle);
} else {
chmod( $file, $FILE_MODE );
}
}
}
chmodex($PARENT_DIR);
?>
Для использования скрипта необходимо:
Скачать скрипт 940 (chmodex.zip, ~ 0.6 kb)
Комментарии
chmod -R
Kos, это вы о чем? :)
Kos это о том, что рекурсивная смена прав доступа делается стандартной командой. Незачем писать свой скрипт. "Все уже написано до нас".
Не всегда есть доступ для выполнения подобной команды.
а если на моем сайте нельзя размещать скрипты что тогда делать?
Прекрастный скрипт, спасибо большое, меня многое интересует на этакие темы))
Мерси, очень помогло
Не везде сработает -))
Комментатор 3 - хостинг менять!
Вообще скрипт отработает если у пользователя, из под которого он запускается есть право на изменение прав. А так первый комментатор конечно же прав, весь ваш скрипт это две команды:
#find . -type f -exec chmod 644 {} \;
#find . -type d -exec chmod 755 {} \;
Спасибо большое, очень помог скрипт!!!