Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 打开网络驱动器根目录的进程权限_Python_Security_Winapi - Fatal编程技术网

Python 打开网络驱动器根目录的进程权限

Python 打开网络驱动器根目录的进程权限,python,security,winapi,Python,Security,Winapi,打开网络驱动器的根目录需要哪个进程权限 这里,Z:\\是网络驱动器 import win32file import win32con win32file.CreateFile( 'Z:\\', win32file.GENERIC_READ | win32con.ACCESS_SYSTEM_SECURITY, win32file.FILE_SHARE_READ, None, win32file.OPEN_EXISTING, win32file.FILE_FLAG_BACK

打开网络驱动器的根目录需要哪个进程权限

这里,
Z:\\
是网络驱动器

import win32file
import win32con

win32file.CreateFile(
    'Z:\\', win32file.GENERIC_READ | win32con.ACCESS_SYSTEM_SECURITY,
    win32file.FILE_SHARE_READ, None, win32file.OPEN_EXISTING,
    win32file.FILE_FLAG_BACKUP_SEMANTICS | win32file.FILE_FLAG_OPEN_REPARSE_POINT, None
)
上述情况会引发异常
错误\u权限\u未\u保持

我现在已经获得了msdn上的所有进程权限,但上述操作仍然不起作用。可以在用户空间中打开网络驱动器的根目录吗

根据Harry的评论,我检查了自己是否拥有适当的特权:

with closing(win32security.OpenProcessToken(
    win32process.GetCurrentProcess(), win32security.TOKEN_ADJUST_PRIVILEGES | win32security.TOKEN_QUERY
)) as token:
    print(win32security.GetTokenInformation(token, win32security.TokenPrivileges))
这将返回:

((4, 2), (5, 2), (8, 2), (9, 2), (10, 2), (11, 2), (12, 2), (13, 2), (14, 2), (15, 2), (17, 2), (18, 2), (19, 2), (20, 2), (22, 2), (23, 3), (24, 2), (25, 2), (28, 2), (29, 3), (30, 3), (33, 2), (34, 2), (35, 2))

SE\u SECURITY\u NAME
具有8的
LUID
,因此我想我确实拥有所需的特权。

根据文档,您需要SE\u SECURITY\u NAME才能访问系统安全访问。仔细检查您是否实际获得了所请求的特权;请求您无权享有的特权不是错误,这样的请求会被默默地忽略。(也可能根本无法访问网络驱动器的根目录上的系统安全性;您实际上想做什么?@HarryJohnston我已经检查了我是否拥有您建议的适当特权,我想我有,请参阅我的更新问题。但是您在
win32con.ACCESS\u SYSTEM\u SECURITY
上是正确的,如果没有此标志,对
CreateFile
的调用将有效。如果您不需要ACCESS\u SYSTEM\u SECURITY,则不需要启用任何特权。(只要目标目录上的ACL授予您访问权限,FILE_FLAG_BACKUP_SEMANTICS FLAG就不需要特权。)@HarryJohnston我正在尝试调用驱动器根目录上的
BackupRead
,以获取SACL,既然你这么说了,我想知道他们是否有SACL?显然,我也不能用
ACCESS\u SYSTEM\u SECURITY
打开网络驱动器上的文件。那可能是个遥远的问题。