Taki hack na szybko. Standardowo działa, choć nie wiem czy kod odpowiedzialny za obsługę ntfs nie pokaszani tych uprawnień.
Możesz zbindować (bind-mount) katalog
/mnt/02CC6ABF4036A989/download w jakimś innym miejscu (np.
/mnt/user/download) dostępnym tylko dla wybranego użytkownika.
Następnie podobnie podmontować jakiś pusty katalog bez uprawnień (np.
/mnt/null) w
/mnt/02CC6ABF4036A989/download, aby przesłonić oryginalną zawartość.
W ten sposób do
/mnt/user/download wejdzie tylko wybrany user, a
/mnt/02CC6ABF4036A989/download nie zobaczy nikt.
$ sudo su
# mkdir /mnt/null
# chmod 0700 /mnt/null
# mkdir -p /mnt/user/download
# chown -R user:user /mnt/user
# chmod -R 0700 /mnt/user
Natomiast w
/etc/fstab:
# <file system> <mount point> <type> <options> <dump> <pass>
UUID=012345678-0123-0123-0123-0123456789012 /mnt/02CC6ABF4036A989 ntfs nie,znam,opcji,ntfs 0 0
[...]
/mnt/02CC6ABF4036A989/download /mnt/user/download none bind 0 0
/mnt/null /mnt/02CC6ABF4036A989/download none bind 0 0
Rezultat:
Drzewo
/mnt z poziomu user-a przed zamontowaniem:
user@computer:/mnt$ tree -ugp
.
├── [drwxrwxrwx root root ] 02CC6ABF4036A989
│ ├── [drwxrwxrwx root root ] cos
│ │ ├── [-rwxrwxrwx root root ] C.txt
│ │ └── [-rwxrwxrwx root root ] S.txt
│ ├── [drwxrwxrwx root root ] download
│ │ ├── [-rwxrwxrwx root root ] D.txt
│ │ └── [-rwxrwxrwx root root ] W.txt
│ └── [drwxrwxrwx root root ] tam
│ ├── [-rwxrwxrwx root root ] M.txt
│ └── [-rwxrwxrwx root root ] T.txt
├── [drwx------ root root ] null [error opening dir]
└── [drwx------ user user ] user
└── [drwx------ user user ] download
i po zamontowaniu (
fstab zapewni to automatycznie):
# mount /mnt/user/download
# mount /mnt/02CC6ABF4036A989/download
user@computer:/mnt$ tree -ugp
.
├── [drwxrwxrwx root root ] 02CC6ABF4036A989
│ ├── [drwxrwxrwx root root ] cos
│ │ ├── [-rwxrwxrwx root root ] C.txt
│ │ ├── [-rwxrwxrwx root root ] S.txt
│ ├── [drwxrwxrwx root root ] download [error opening dir]
│ └── [drwxrwxrwx root root ] tam
│ ├── [-rwxrwxrwx root root ] M.txt
│ └── [-rwxrwxrwx root root ] T.txt
├── [drwx------ root root ] null [error opening dir]
└── [drwx------ user user ] user
└── [drwxrwxrwx root root ] download
├── [-rwxrwxrwx root root ] D.txt
└── [-rwxrwxrwx root root ] W.txt
Za to inny użytkownik zobaczy tylko to:
user2@computer:/mnt$ tree -ugp
.
├── [drwxrwxrwx root root ] 02CC6ABF4036A989
│ ├── [drwxrwxrwx root root ] cos
│ │ ├── [-rwxrwxrwx root root ] C.txt
│ │ ├── [-rwxrwxrwx root root ] S.txt
│ ├── [drwxrwxrwx root root ] download [error opening dir]
│ └── [drwxrwxrwx root root ] tam
│ ├── [-rwxrwxrwx root root ] M.txt
│ └── [-rwxrwxrwx root root ] T.txt
├── [drwx------ root root ] null [error opening dir]
└── [drwx------ user user ] user [error opening dir]