Это то, что мы обсуждали еще в школе.
Идет примерно так,
- Создать каталог (именованные
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
».