1
可以使用File::Find::Rule
來確定某個目錄是否可由給定的UID寫入?如何檢查目錄是否可以被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)
導致腳本崩潰。我從來沒有需要在之前的File::Find::Rule
操作中使用以前的用法permissions()
來指定此選項。
如果我按照以下方式調整規則,我就可以正常工作。
在這裏,我測試的父目錄的子目錄列表中的存在:
my @subDirs = File::Find::Rule::Permissions->directory()->permissions(isWriteable => 1, user => "$uid")->maxdepth(1)->name(".")->in("$dir");
的$dir
子目錄的父目錄是.
如果該目錄存在於名單它的@subDirs
,它必須是可寫的。
感謝ikegami建議這個模塊。
嗡嗡... [File :: Find :: Rule](http://search.cpan.org/perldoc?File::Find::Rule)沒有'permissions'方法。 – ikegami 2011-04-12 22:49:18
啊,你必須使用[File :: Find :: Rule :: Permissions](http://search.cpan.org/perldoc?File::Find::Rule::Permissions)。 – ikegami 2011-04-12 22:52:37
對我來說很好(只要你使用File :: Find :: Rule':'權限') – Grrrr 2011-04-12 23:13:17