Це те, про що ми говорили ще в школі.
Виходить приблизно так,
- Створіть каталог (названий
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
".