Люди, подскажите!
Нужен скрипт, который просканирует мой сайт и выдаст списком все папки и файлы с их правами (777, 775 и т.д.). Пользовались ли вы подобными вещами и где их взять? Самому ставить страшно неопробованное на сайт...
1. - 6 июля 2015 — 11:29 - перейти к сообщению
2. 1Bot - 6 июля 2015 — 18:05 - перейти к сообщению
Guyver пишет:
Люди, подскажите!
Нужен скрипт, который просканирует мой сайт и выдаст списком все папки и файлы с их правами (777, 775 и т.д.). Пользовались ли вы подобными вещами и где их взять? Самому ставить страшно неопробованное на сайт...
Нужен скрипт, который просканирует мой сайт и выдаст списком все папки и файлы с их правами (777, 775 и т.д.). Пользовались ли вы подобными вещами и где их взять? Самому ставить страшно неопробованное на сайт...
Это совсем несложно. Ниже пример скрипта для решения вашей задачи. Скрипт view_list.php нужно положить в корень сайта и вызвать его из браузера.
view_list.php
CODE:
<?php
// составление списка всех файлов и каталогов с рекурсивным поиском во вложенных директориях
function make_list( $directory ) {
$list = array();
if( $df = opendir( $directory ) ) {
while( $f = readdir( $df ) ) {
if( $f == '.' || $f == '..' ) continue;
$path = $directory . '/' . $f;
if( is_dir( $path ) ) {
$s = stat( $path );
clearstatcache();
$dir = array();
$dir[] = array(
'filename' => $path, // полное имя файла
'size' => $s[ 'size' ], // размер файла в байтах
'mtime' => $s[ 'mtime' ], // время последнего изменения файла
'owner' => $s[ 'uid' ], // числовой идентификатор владельца posix_getpwuid( $s[ '
'group' => $s[ 'gid' ], // числовой идентификатор группы posix_getgrgid( $s[ '
'perms' => sprintf( '0%o', 0777 & $s[ 'mode' ] ), // права доступа на файл
);
$list = array_merge( $list, $dir, make_list( $path ) );
continue;
}
if( is_file( $path ) && file_exists( $path ) ) {
$s = stat( $path );
clearstatcache();
$list[] = array(
'filename' => $path, // полное имя файла
'size' => $s[ 'size' ], // размер файла в байтах
'mtime' => $s[ 'mtime' ], // время последнего изменения файла
'owner' => $s[ 'uid' ], // числовой идентификатор владельца posix_getpwuid( $s[ '
'group' => $s[ 'gid' ], // числовой идентификатор группы posix_getgrgid( $s[ '
'perms' => sprintf( '0%o', 0777 & $s[ 'mode' ] ), // права доступа на файл
);
}
}
closedir( $df );
}
return $list;
}
$list = make_list( '.' ); // вместо точки можно задать абсолютный путь к папке
echo '<pre>', print_r( $list, false ), '</pre>';
?>
// составление списка всех файлов и каталогов с рекурсивным поиском во вложенных директориях
function make_list( $directory ) {
$list = array();
if( $df = opendir( $directory ) ) {
while( $f = readdir( $df ) ) {
if( $f == '.' || $f == '..' ) continue;
$path = $directory . '/' . $f;
if( is_dir( $path ) ) {
$s = stat( $path );
clearstatcache();
$dir = array();
$dir[] = array(
'filename' => $path, // полное имя файла
'size' => $s[ 'size' ], // размер файла в байтах
'mtime' => $s[ 'mtime' ], // время последнего изменения файла
'owner' => $s[ 'uid' ], // числовой идентификатор владельца posix_getpwuid( $s[ '
'group' => $s[ 'gid' ], // числовой идентификатор группы posix_getgrgid( $s[ '
'perms' => sprintf( '0%o', 0777 & $s[ 'mode' ] ), // права доступа на файл
);
$list = array_merge( $list, $dir, make_list( $path ) );
continue;
}
if( is_file( $path ) && file_exists( $path ) ) {
$s = stat( $path );
clearstatcache();
$list[] = array(
'filename' => $path, // полное имя файла
'size' => $s[ 'size' ], // размер файла в байтах
'mtime' => $s[ 'mtime' ], // время последнего изменения файла
'owner' => $s[ 'uid' ], // числовой идентификатор владельца posix_getpwuid( $s[ '
'group' => $s[ 'gid' ], // числовой идентификатор группы posix_getgrgid( $s[ '
'perms' => sprintf( '0%o', 0777 & $s[ 'mode' ] ), // права доступа на файл
);
}
}
closedir( $df );
}
return $list;
}
$list = make_list( '.' ); // вместо точки можно задать абсолютный путь к папке
echo '<pre>', print_r( $list, false ), '</pre>';
?>
3. - 7 июля 2015 — 10:03 - перейти к сообщению
Спасибо большое. Попробую в работе!
4. - 27 марта 2016 — 00:05 - перейти к сообщению
Попробовал. Прекрасный скрипт. Поубирал лишнее, оставив только название файла и права доступа...
CODE:
<?php
// составление списка всех файлов и каталогов с рекурсивным поиском во вложенных директориях
function make_list( $directory ) {
$list = array();
if( $df = opendir( $directory ) ) {
while( $f = readdir( $df ) ) {
if( $f == '.' || $f == '..' ) continue;
$path = $directory . '/' . $f;
if( is_dir( $path ) ) {
$s = stat( $path );
clearstatcache();
$dir = array();
$dir[] = array(
'filename' => $path, // полное имя файла
'perms' => sprintf( '0%o', 0777 & $s[ 'mode' ] ), // права доступа на файл
);
$list = array_merge( $list, $dir, make_list( $path ) );
continue;
}
if( is_file( $path ) && file_exists( $path ) ) {
$s = stat( $path );
clearstatcache();
$list[] = array(
'filename' => $path, // полное имя файла
'perms' => sprintf( '0%o', 0777 & $s[ 'mode' ] ), // права доступа на файл
);
}
}
closedir( $df );
}
return $list;
}
$list = make_list( '.' ); // вместо точки можно задать абсолютный путь к папке
echo '<pre>', print_r( $list, false ), '</pre>';
?>
// составление списка всех файлов и каталогов с рекурсивным поиском во вложенных директориях
function make_list( $directory ) {
$list = array();
if( $df = opendir( $directory ) ) {
while( $f = readdir( $df ) ) {
if( $f == '.' || $f == '..' ) continue;
$path = $directory . '/' . $f;
if( is_dir( $path ) ) {
$s = stat( $path );
clearstatcache();
$dir = array();
$dir[] = array(
'filename' => $path, // полное имя файла
'perms' => sprintf( '0%o', 0777 & $s[ 'mode' ] ), // права доступа на файл
);
$list = array_merge( $list, $dir, make_list( $path ) );
continue;
}
if( is_file( $path ) && file_exists( $path ) ) {
$s = stat( $path );
clearstatcache();
$list[] = array(
'filename' => $path, // полное имя файла
'perms' => sprintf( '0%o', 0777 & $s[ 'mode' ] ), // права доступа на файл
);
}
}
closedir( $df );
}
return $list;
}
$list = make_list( '.' ); // вместо точки можно задать абсолютный путь к папке
echo '<pre>', print_r( $list, false ), '</pre>';
?>