Это то, что мы обсуждали еще в школе.
Идет примерно так,
- Создать каталог (именованные
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 whatever --=== Access permissions
BasePath/CoverDir/Obscure/protectedFile.txt
| | ^^^^^^^^^^^^^^^^^ Can't be seen without
| ^^^^^^^ Directory Name read access to
^^^^^ Public shared with friend. Obscure directory.
accessible
directory.
- Если вы установите доступ к «
CoverDir » как 'rwx--x--x »,
Группа и другие могут только войти в каталог, но не могут прочитать его содержимое.
- Теперь, если вы используете неясное имя каталога,
« Obscure », внутри него и полный доступ для чтения с помощью « rwxr-xr-x »,
любой, кто знает это имя, может перечислить его содержимое.
- Этот доступ должен быть сделан снаружи с помощью «
ls BasePath/CoverDir/Obscure »
Потому что люди в вашей группе и другие не смогут « ls BasePath/CoverDir ».