当前位置:  开发笔记 > 编程语言 > 正文

如何在Perl中修改Windows NTFS权限?

如何解决《如何在Perl中修改WindowsNTFS权限?》经验,为你挑选了2个好方法。

我在Windows Server 2003上使用ActiveState Perl.

我想在Windows NTFS分区上创建一个目录,然后授予Windows NT安全组对该文件夹的读取权限.在Perl中这可能吗?我是否必须使用Windows NT命令或是否有Perl模块来执行此操作?

一个小例子将非常感谢!



1> cjm..:

标准方法是使用Win32 :: FileSecurity模块:

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 ) ) });

请注意,Set它将覆盖该目录的权限.如果要编辑现有权限,首先需要Get它们:

my %permissions;
Win32::FileSecurity::Get($dir, \%permissions);
$permissions{'Power Users'}
  = MakeMask( qw( READ GENERIC_READ GENERIC_EXECUTE ) ) });
Win32::FileSecurity::Set($dir, \%permissions);



2> Vinko Vrsalo..:

这是ActivePerl的通用权限包.

use Win32::Perms;

# Create a new Security Descriptor and auto import permissions
# from the directory
$Dir = new Win32::Perms( 'c:/temp' ) || die;

# One of three ways to remove an ACE
$Dir->Remove('guest');

# Deny access for all attributes (deny read, deny write, etc)
$Dir->Deny( 'joel', FULL );

# Set the directory permissions (no need to specify the
# path since the object was created with it)
$Dir->Set();

# If you are curious about the contents of the SD
# dump the contents to STDOUT $Dir->Dump;

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有