Это то, что мы обсуждали еще в школе.
Идет примерно так,
- Создать каталог (названный
data
, для справки здесь)
- изменить разрешения как "
chmod 711 data
"
- группа и другие имеют только
x
- доступ для входа в каталог
- они не могут перечислить каталог
- Теперь создайте каталог
difficult-name-here
(это может быть хеш-строка)
- изменить разрешения как "
chmod a+rx difficult-name-here
"
- содержимое этого каталога является безопасным, в то время как внешний каталог не может быть указан
- люди, которые знают «трудное имя», могут перейти в этот второй каталог
- "
cd path/to/data/difficult-name-here
"
- другие не видят имя и не могут получить доступ к содержимому каталога
- Тем не менее,
root
всегда можно получить доступ ко всему (что не является проблемой здесь)
- поделиться
difficult-name-here
с людьми, которых вы хотите, чтобы эти данные
- Храните общие файлы в этом втором каталоге
Довольно грубо, но если это можно сломать без нарушения контроля доступа Unix, я бы хотел знать.
Обновление на комментарий от dmckee
,
Это именно то заключение, к которому мы пришли!
«безопасность по неизвестности» имеет ограниченную безопасность .
Сказав это, при разработке защиты данных
важно определить их ценность.
Вы должны стремиться к,
- Стоимость взлома безопасности выше, чем,
- Стоимость защищенного контента,
- Фактором, пропорциональным вашей паранойе
В этом случае, если root
решит перечислить дерево каталогов где-нибудь в открытом доступе,
ваш секрет исчезнет! Но вы защищаете от корней или их потенциальной безответственности?
Если это так, у вас есть гораздо больше поводов для беспокойства, чем общие файлы.
Обновление о неработающей заметке в вопросе .
Я использовал это в первые дни Linux, чтобы знать, что это работает.
Если вы получите « cannot access non-existant file
вместо 'permissions denied
», вы, скорее всего, допустили ошибку в последовательности. То, что вы хотите, должно выглядеть так,
755 711 755 независимо - === Права доступа
BasePath / CoverDir / Obscure / protectedFile.txt
| | ^^^^^^^^^^^^^^^^^ Нельзя увидеть без
| ^^^^^^^ Имя каталога, доступ для чтения к
^^^^^ Публично поделился с другом. Неясный каталог.
доступной
каталог.
- Если вы установите «
CoverDir
доступ как 'rwx--x--x
»,
группа и другие пользователи могут только войти в каталог, но не смогут прочитать его содержимое.
- Теперь, если вы используете скрытое имя каталога,
' Obscure
', внутри него и предоставляете полный доступ для чтения с помощью ' rwxr-xr-x
',
любой , кто знает это имя, может перечислить его содержимое.
- Этот доступ должен будет осуществляться извне с «
ls BasePath/CoverDir/Obscure
»
Потому что люди в вашей группе и других не будут в состоянии « ls BasePath/CoverDir
».