标题: 【已结】怎么设置可创建可删除不可修改的目录权限
[打印本页]
作者: plp626
时间: 2009-9-12 08:46
标题: 【已结】怎么设置可创建可删除不可修改的目录权限
Quote: |
最近研究防毒,最后想到这个简便的方法
-----------------------------------------------------------------
现在我想给ntfs盘里某个目录设置如下的权限:
1.可以在该目录内创建文件或子目录,子目录的权限自动继承该目录的权限,子目录可以重命名,可以删除
(命名与删除我这里实验总是一对孪生兄弟)
2.复制到(或剪切到,或新建到)该目录内的文件变为不可以编辑内容,不可以更改属性,但可以删除,
3.该目录属性不可更改,不可删除,不可重命名(这个容易办到,给父目录设置R权限)
PS: 如果123条要求难以同时实现可以舍弃第1,3条要求重点是第二条!
------------------------------------------------------------------
提前谢谢各位!
题外话:
前不久,我在D盘fat32分区下见到一金山专杀工具,具体名字忘了,只是它有着特殊的写保护功能,不能改名不能删除可以运行起来删毒,而且不能复制!用unlocker查看,里面没挂载任何进程,真佩服作者是怎么实现的?总之这些技巧对于我们使用计算机定能增添许多方便与实惠。 |
|
本帖以结,请参照此贴5楼根据实际做相应修改,
http://www.cn-dos.net/forum/viewthread.php?tid=48807
[
Last edited by plp626 on 2009-9-14 at 01:23 ]
作者: plp626
时间: 2009-9-12 08:52
我现在看到xcacls.vbs有这个参数:(可是那个试了试不行!不知错哪里了)
Perm: Is for "Files Only" and can be:
Permissions...
F Full control
M Modify
X read & eXecute
R Read
W Write
Advanced...
E Synchronize
D Take Ownership
C Change Permissions
B Read Permissions
A Delete
9 Write Attributes
8 Read Attributes
7 Delete Subfolders and Files
6 Traverse Folder / Execute File
5 Write Extended Attributes
4 Read Extended Attributes
3 Create Folders / Append Data
2 Create Files / Write Data
1 List Folder / Read Data
-------------------------------------------------
xcacls.vbs官方介绍:
http://support.microsoft.com/kb/825751
下载地址:
http://download.microsoft.com/do ... Cacls_Installer.exe
作者: 523066680
时间: 2009-9-12 10:54
大哥,虽然讨论了以下。我还是决定重新看你的原则:
Quote: |
1.可以再该目录内创建文件,并且可以重命名,可以删除,
2.不可以编辑目录内任何文件的内容,不可以更改目录内任何文件的属性
3.该目录属性不可更改,不可删除,不可重命名 |
|
我觉得这个要求其实是可以这样实现的:
cacls 遍历该目录 属性为R
也就是该目录树是只读的。
然后你可以在改目录树下建立新的文件,对这个新的文件可以做任何修改。
当然我上面理解的应该不对。
对目录全部系 地只读,又要能建立,删除,重命名文件。
我想现在的cacls是不能做到的。
[
Last edited by 523066680 on 2009-9-12 at 10:55 ]
作者: 523066680
时间: 2009-9-12 10:58
不知道注册表能否做到?
曾经用cacls给 autorun.inf 加权限,结果病毒好像用了某种方法
强制给我的autorun.inf 重命名,然后它再建立它自己的autorun.inf。
也许注册表能实现更细节的限制?
作者: HAT
时间: 2009-9-12 11:47
参考:
http://www.cn-dos.net/forum/viewthread.php?tid=35672#pid242113
作者: plp626
时间: 2009-9-13 03:17
cacls貌似无法实现目录内可删不可改的权限
版主提供的那个帖子,如何实现文件可读不可删?
只要父目录不具有delete权限即可(对于cacls命令只要设置父目录为C权限即可),我知道的。
---------------------------------------------------------------------------------------------
大家思考一下怎么防治文件被病毒感染的方法,当然压缩包,镜像,(这些方法也不保险,现在也有少部分病毒开始感染压缩包勒)等等也可以,但都不如我说的这个来的简便。
至于ifexist说的方法,我现在就这样用着(给右键添加一个命令---"给该文件设置everyone只读权限",但是还不是非常方便),
就是因为不方便才想到这种目录里文件自动赋予可读不可改的方法
---------------------------------------------------------------------------------------------
昨晚试验勒N次均告失败,再次看了这个xcacls.vbs的帮助,想和大家讨论下
3 Create Folders / Append Data
2 Create Files / Write Data
//能创建文件则意味着可以写数据?! 那么则意味着可修改勒?!
1 List Folder / Read Data
难道我的要求是矛盾的
?!
作者: everest79
时间: 2009-9-13 07:52
1.可以再该目录内创建文件,并且可以重命名,可以删除(试验了下,可删除与可重命名好像是"共生的")
2.复制到(或剪切到)该目录内的文件变为不可以编辑内容,不可以更改属性
//复制进去的会继承目标文件夹的设置,剪贴进去的,会使用原来目录的权限设置
3.该目录属性不可更改,不可删除,不可重命名(这个容易办到,给父目录设置R权限)
ACL里只需要禁止创建文件夹就可以禁止修改文件
作者: plp626
时间: 2009-9-13 08:02
Quote: |
Originally posted by everest79 at 2009-9-13 07:52 AM:
1.可以再该目录内创建文件,并且可以重命名,可以删除(试验了下,可删除与可重命名好像是"共生的")
2.复制到(或剪切到)该目录内的文件变为 ... |
|
不知道单独的禁止创建文件夹的参数怎么组合
Quote: |
3 Create Folders / Append Data
2 Create Files / Write Data |
|
从这里看创建文件与创建目录是分开来的,
我说的编辑数据可能很不专业,看里面参数的解释,append应该是追加数据,write应该是创建新文件,不知道cacls对编辑数据是怎么定义的?
[
Last edited by plp626 on 2009-9-13 at 08:03 ]
作者: everest79
时间: 2009-9-13 08:05
3 Create Folders / Append Data 创建文件夹/追加数据 这个禁止掉就不可以修改文件了,但也建立不了文件夹
2 Create Files / Write Data 创建文件/写入数据
作者: plp626
时间: 2009-9-13 09:07
Quote: |
Originally posted by everest79 at 2009-9-13 08:05 AM:
3 Create Folders / Append Data 创建文件夹/追加数据 这个禁止掉就不可以修改文件了,但也建立不了文件夹
2 Create Files / Write Data 创建文件/写入数据 |
|
问题是在那些参数只对文件有效,
Quote: |
Perm: Is for "Files Only" and can be:
Permissions...
F Full control
M Modify
X read & eXecute
R Read
W Write
Advanced...
E Synchronize
D Take Ownership
C Change Permissions
B Read Permissions
A Delete |
|
我之前试了试 cscript xcacls.vbs test /g adm:F everyone:b148 鼠标连test目录都打不开(命令行下也不行,最后用/t 参数查看为test\*.* ACCESS_DENIED:)
查看了test目录acl信息为:
(OI)(IO)(特殊访问:)
READ_CONTROL --- b
SYNCHRONIZE --- e (这个不太懂)
FILE_GENERIC_READ ---?
FILE_READ_DATA ---1
FILE_READ_EA ---- 4
FILE_READ_ATTRIBUTES ----8
而 xcacls.vbs的R权限为
(OI)(CI):
READ_CONTROL ----B
SYNCHRONIZE ----E
FILE_GENERIC_READ ---我还不知道和那个参数有关
FILE_READ_DATA ---1
FILE_READ_EA ---4
FILE_READ_ATTRIBUTES---8
区别在b148是oi+io(只继承+对象继承)而R为oi+ci(只继承+容器继承),就是说前者只有文件获得了b148权限,而文件的所在目录还是不能访问,
现在问题在这里,我还没搞清,只是把我的疑问写出来,
如果要想实现可(创建文件)+(可访问+不可改)+(可删)需要
Create Files ---- 2
Read Data(但这意味着write date,还是那个疑问矛盾吗?)----1
Read Extended Attributes ---4
Read Attributes ---8
Read Permissions ---b
Delete ---- a
--------------------------------------------- 可这也还是仅仅对文件有效,要让文件自动继承目录的这种权限怎么弄?
作者: everest79
时间: 2009-9-13 09:22
你直接新建个文件夹,进安全,把继承去掉,然后取消创建文件夹/追加数据就可以了
作者: plp626
时间: 2009-9-13 09:31
你说的这种"取消"好像没有指定参数,我只能用“不赋予相应权限”来间接实现,可是帮助信息里目录赋予这类权限真让我费脑子。
---------------------------------------------------------------------
/I 参数将可以关闭继承权限,还在试验中。。。。
Quote: |
/F [Used with Directory or Wildcard] This will change all
files under the inputed directory but will NOT
traverse sub directories unless /T is also present.
If filename is a directory, and /F is not used, no
files will be touched.
/S [Used with Directory or Wildcard] This will change all
sub folders under the inputed directory but will NOT
traverse sub directories unless /T is also present.
If filename is a directory, and /S is not used, no
sub directories will be touched.
/T [Used only with a Directory] Traverses each
subdirectory and makes the same changes.
This switch will traverse directories only if the
filename is a directory or is using wildcards. |
|
这些参数表达的含义让人那以理解,/t 参数是针对目录的,可这又什么用处。。
关于xcacls.vbs的使用示例实在太少,网上搜索的也仅仅是官方的帮助。。。
[
Last edited by plp626 on 2009-9-13 at 09:48 ]
作者: everest79
时间: 2009-9-13 09:48
我就没说用脚本,直接手工改
作者: plp626
时间: 2009-9-13 09:49
Quote: |
Originally posted by everest79 at 2009-9-13 09:48 AM:
我就没说用脚本,直接手工改 |
|
不会,
作者: everest79
时间: 2009-9-13 09:55
你在桌面上新建个文件夹,然后右键选属性,再选安全页面,再点高级,然后先把坐父项继承的钩去掉,应用,然后选你当前用户名,点编辑,进去把创建文件夹/追加数据的那个钩去掉再应用确定即可
作者: plp626
时间: 2009-9-13 12:43
我的系统没有你说的那种格式
截图一张:
顺便问下你说的那中ntfs格式,我也在论坛见过

但不知这种"外观"是怎么设置的
[
Last edited by plp626 on 2009-9-13 at 12:45 ]
作者: yishanju
时间: 2009-9-13 14:19
XP 系统默认不显示安全选项,取消简单共享就有了。
作者: everest79
时间: 2009-9-14 01:38
按住shift右键
作者: slore
时间: 2009-9-14 02:52
打开任意文件夹,工具,文件夹选项
使用简单共享去掉。
作者: wxcute
时间: 2009-9-18 07:51
Quote: |
Originally posted by plp626 at 2009-9-13 03:17:
难道我的要求是矛盾的?! |
|
应该不矛盾,把目录与文件分开设置权限就行了。
xcacls我是不会用啦,我用setAcl
缺点是第2点"剪切到"无法实现。
说明:其中D:\test是要得到目录的父目录,target就是要得到的目录。
相关帖子:http://bbs.bathome.cn/thread-3670-1-1.html
set "sup_dir=D:\test"
set "tar_dir=%sup_dir%\target"
md "%tar_dir%"
SetACL.exe -on "%sup_dir%" -ot file^
-actn clear -clr "dacl,sacl"^
-actn ace -ace "n:everyone;p:list_dir;i:sc;m:set"^
-actn setprot -op "dacl:p_nc;sacl:p_nc"
SetACL.exe -on "%tar_dir%" -ot file^
-actn clear -clr "dacl,sacl"^
-actn ace -ace "n:everyone;p:list_dir,del_child,read_ea;i:sc,so;m:set"^
-ace "n:everyone;p:add_file,add_subdir;i:sc;m:grant"
原来[已结]了,不过还是留着罢,就不删了。
[
Last edited by wxcute on 2009-9-18 at 07:54 ]