Я хочу установить folder
с разрешениями, чтобы пользователи с ограниченными правами могли получить доступ к file.txt
(в folder
), у которого есть права на чтение, указав полный путь, но не смогли отобразить содержимое folder
.
Например, в Linux мы могли бы сделать это так:
$ whoami
cychoi
$ mkdir folder && echo 'file content' > folder/file.txt
$ chmod 111 folder/
$ sudo ls -la folder/
total 12
d--x--x--x 2 cychoi cychoi 4096 Aug 18 21:52 .
drwx------ 3 cychoi cychoi 4096 Aug 18 21:52 ..
-rw------- 1 cychoi cychoi 13 Aug 18 21:52 file.txt
$ ls folder/
ls: cannot open directory folder/: Permission denied
$ cat folder/file.txt
file content
$
В Windows 7 я очищаю все права доступа к folder
кроме execute/traverse
(применить к "только этой папке"). Однако он не может прочитать содержимое file.txt
даже если указан полный путь.
С другой стороны, если для read data/list directory
также задан каталог folder
, file.txt
будет считан успешно, но содержимое folder
будет просочено ограниченным пользователям.
G:\ptest>whoami user-pc\test G:\ptest>runas /u:administrator "cmd /c icacls g:\ptest\folder\ /t & pause" Enter the password for administrator: Attempting to start cmd /c icacls g:\ptest\folder\ /t & pause as user "USER-PC\administrator" ... g:\ptest\folder\ user-PC\test:(S,X) BUILTIN\Administrators:(OI)(CI)(F) NT AUTHORITY\SYSTEM:(OI)(CI)(F) user-PC\cychoi:(OI)(CI)(F) g:\ptest\folder\file.txt user-PC\test:(F) BUILTIN\Administrators:(I)(F) NT AUTHORITY\SYSTEM:(I)(F) user-PC\cychoi:(I)(F) G:\ptest>dir Volume in drive G is ????? Volume Serial Number is DEAD-BEEF Directory of G:\ptest 18/08/2015 21:59 . 18/08/2015 21:59 .. 18/08/2015 21:59 folder 0 File(s) 0 bytes 3 Dir(s) 4,779,642,880 bytes free G:\ptest>dir folder Volume in drive G is ????? Volume Serial Number is DEAD-BEEF Directory of G:\ptest\folder File Not Found G:\ptest>type folder\file.txt Access is denied. G:\ptest>runas /u:administrator "cmd /c icacls g:\ptest\folder\ /grant test:(rd) & pause" Enter the password for administrator: Attempting to start cmd /c icacls g:\ptest\folder\ /grant test:(rd) & pause as user "USER-PC\administrator" ... G:\ptest>runas /u:administrator "cmd /c icacls g:\ptest\folder\ & pause" Enter the password for administrator: Attempting to start cmd /c icacls g:\ptest\folder\ & pause as user "USER-PC\administrator" ... g:\ptest\folder\ user-PC\test:(S,RD,X) BUILTIN\Administrators:(OI)(CI)(F) NT AUTHORITY\SYSTEM:(OI)(CI)(F) user-PC\cychoi:(OI)(CI)(F) G:\ptest>dir folder Volume in drive G is ????? Volume Serial Number is DEAD-BEEF Directory of G:\ptest\folder 18/08/2015 21:59 . 18/08/2015 21:59 .. 18/08/2015 21:59 12 file.txt 1 File(s) 12 bytes 2 Dir(s) 4,779,642,880 bytes free G:\ptest>type folder\file.txt file content G:\ptest>
Итак, как мне добиться того же поведения, что и в примере с Linux, который я показал выше?