1

Я хочу установить folder с разрешениями, чтобы пользователи с ограниченными правами могли получить доступ к file.txtfolder), у которого есть права на чтение, указав полный путь, но не смогли отобразить содержимое 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, который я показал выше?

0