1

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 推荐这个模块。

4

1 回答 1

1

在这里,我测试子目录列表中是否存在父目录:

my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");

子目录的父目录$dir.

如果该目录存在于 的列表中@subDirs,则它必须是可写的。

于 2011-04-13T16:10:59.413 回答