banesong has asked for the wisdom of the Perl Monks concerning the following question:
my %HASH_OF_DIRS = ( '.' => { svc_priv => "none", usr_priv => "RO", src_dir => ".", file_masks => ['default.htm', 'site_config.pl']}, Dir10 => { svc_priv => "none", usr_priv => "RW"}, Dir9 => { svc_priv => "RW", usr_priv => "RO"}, Dir8 => { svc_priv => "none", usr_priv => "RW"}, Dir8 => { svc_priv => "none", usr_priv => "RO", src_dir => "map_images", file_masks => ['*.gif']}, Dir7 => { svc_priv => "none", usr_priv => "RX", src_dir => "map_scripts", file_masks => ['*.idc', '*.htx']}, Dir6 => { svc_priv => "RW", usr_priv => "RW"}, Dir5 => { svc_priv => "none", usr_priv => "RO", src_dir => "tailored_images", file_masks => ['*.gif', '*.jpg']}, Dir4 => { svc_priv => "RX", usr_priv => "RX", src_dir => "tailored_scripts", file_masks => ['*.pl', '*.plx', '*.idc', '*.htx']}, Dir3 => { svc_priv => "none", usr_priv => "RO", src_dir => "tailored_static", file_masks => ['*.txt', '*.htm']}, Dir2 => { svc_priv => "none", usr_priv => "RO", src_dir => "userman_content", file_masks => ['*.pdf']}, DIR1 => { svc_priv => "none", usr_priv => "RS", src_dir => "database", file_masks => ['*.txt']} ); my %dir_masks = ( none => &MakeMask, admin => MakeMask(qw(FULL GENERIC_ALL)), RO => MakeMask(qw(READ GENERIC_READ)), RS => MakeMask(qw(READ GENERIC_READ GENERIC_EXECUTE)), RX => MakeMask(qw(READ GENERIC_READ GENERIC_EXECUTE)), RW => MakeMask(qw(CHANGE GENERIC_READ GENERIC_WRITE)) ); buildFileDirectory($var, \%HASH_OF_DIRS); my ($region_root, $pDirHash) = @_; my %dir_list = %$pDirHash; setRights($region_dir_name, $dir_masks{admin}, $dir_masks{none}, $di +r_masks{none}); sub setRights { use Win32::FileSecurity qw(Get Set MakeMask); my ($dir, $admin_mask, $user_mask, $svc_mask) = @_; my $none_mask = MakeMask; my (%rights, $lc_region, $lc_cof); #if ($debug & $DBG_DIR_CREATE) { print "Get rights for: $dir\n"; } if (Get($dir, \%rights)) { $rights{Administrators} = $admin_mask; $rights{Everyone} = $none_mask; $lc_region = lc $var2; $lc_cof = lc $var; if ($lc_region ne $lc_cof) { $rights{"$region_web_user"} = $user_mask; $rights{"$region_svc_user"} = $svc_mask; } Set($dir, \%rights); } else { print ("Error #", int($!), ": $!\n"); } }
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re: Win32::FileSecurity and File Permission flubs
by tilly (Archbishop) on Dec 01, 2003 at 00:37 UTC | |
by banesong (Acolyte) on Dec 04, 2003 at 16:48 UTC | |
by tilly (Archbishop) on Dec 08, 2003 at 21:22 UTC |