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
、それは書き込み可能でなければなりません。
このモジュールを提案してくれた池上に感謝します。