The standard way is to use the Win32 :: FileSecurity module :
use Win32::FileSecurity qw(Set MakeMask); my $dir = 'c:/newdir'; mkdir $dir or die $!; Set($dir, { 'Power Users' => MakeMask( qw( READ GENERIC_READ GENERIC_EXECUTE ) ) });
Note that Set overwrite permissions for this directory. If you want to edit existing permissions, you first need to Get them:
my %permissions; Win32::FileSecurity::Get($dir, \%permissions); $permissions{'Power Users'} = MakeMask( qw( READ GENERIC_READ GENERIC_EXECUTE ) ) }); Win32::FileSecurity::Set($dir, \%permissions);
source share