Может ли File::Find::Rule
использоваться для определения возможности записи в каталог по заданному UID?
Я использовал следующий тест:
my $uid = 123; # or whatever...
my @subDirs = File::Find::Rule->permissions(isWriteable => 1, user => "$uid")->directory()->maxdepth(1)->in( $dir );
if (scalar @subDirs == 0) {
die "$dir is not writeable...";
}
die "$dir is writeable";
Но всегда возвращается, что $dir
доступен для записи, даже для тестовых каталогов, которые, как я знаю, ограничены.
Какие настройки можно внести в этот тест, чтобы он работал?
РЕДАКТИРОВАТЬ
Использование use File::Find::Rule qw(permissions)
вызвало сбой скрипта.Мне никогда не приходилось указывать эту опцию с предыдущим использованием permissions()
в более старых File::Find::Rule
операциях.
Если я настрою правило следующим образом, я получу работу.
Здесь я проверяю наличие родительского каталога в списке подкаталогов:
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
Родительским каталогом подкаталогов $dir
является .
И если этот каталог существует в списке @subDirs
, он должен быть доступен для записи.
Спасибо ikegami за предложение этого модуля.