ExBB Community » » PHP/Perl » Скрипт выводящий права доступа

Страниц (1): [1]
 

1. Guyver - 6 июля 2015 — 11:29 - перейти к сообщению
Люди, подскажите!

Нужен скрипт, который просканирует мой сайт и выдаст списком все папки и файлы с их правами (777, 775 и т.д.). Пользовались ли вы подобными вещами и где их взять? Самому ставить страшно неопробованное на сайт...
2. 1Bot - 6 июля 2015 — 18:05 - перейти к сообщению
Guyver пишет:
Люди, подскажите!

Нужен скрипт, который просканирует мой сайт и выдаст списком все папки и файлы с их правами (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>';
?>
3. Guyver - 7 июля 2015 — 10:03 - перейти к сообщению
Спасибо большое. Попробую в работе!
4. Guyver - 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>';
?>

Яндекс.Метрика   

Powered by ExBB
[Script Execution time: 0.0135]     [ ]