Perl 如何检查目录是否可通过UID写入?
是否可以使用Perl 如何检查目录是否可通过UID写入?,perl,file,permissions,rule,file-find,Perl,File,Permissions,Rule,File Find,是否可以使用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) { di
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(权限)
导致脚本崩溃。我以前在较旧的文件::查找::规则
操作中使用权限()
时,从未需要指定此选项
如果我按如下方式调整规则,我会使事情正常进行
在这里,我正在测试子目录列表中是否存在父目录:
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
$dir
子目录的父目录是
如果该目录存在于@subDirs
列表中,则它必须是可写的
感谢ikegami建议使用此模块。在此,我测试子目录列表中是否存在父目录:
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
$dir
子目录的父目录是
如果该目录存在于
@子目录列表中,则它必须是可写的。在此,我测试子目录列表中是否存在父目录:
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
$dir
子目录的父目录是
如果该目录存在于@subDirs
列表中,则它必须是可写的。。。。没有权限
方法。啊,你必须在使用。对我来说效果很好(前提是你使用文件::查找::规则]:权限“
)哼哼。。。没有权限
方法。啊,你必须使用。对我来说效果很好(前提是你使用文件::查找::规则:权限“
)