Linux отдельно не очень полезен, потому что нет никаких приложений: это - просто ядро. На самом деле, когда ядро заканчивает загружаться, первая вещь, которую оно делает, запускают названное приложение init
. Если то приложение не там, Вы получаете большое сообщение об ошибке, и Вы ничего не можете сделать с it*.
Дистрибутивы так называют, потому что они распределяют ядро Linux наряду с рядом приложений.
Аналогично, утилиты GNU собой не полезны без ядра. Вы могли поместить их на носитель и включить компьютер, но нет ничего там для запущения тех программ. Кроме того, даже если было что-то, что запустилось init
, init
и все другие программы полагаются на ядро для сервисов. Например, первая вещь, что программа, которую обычно называют init
делает открыть файл /etc/inittab
; для открытия того файла это вызывает функцию open()
; та функция обеспечивается ядром.
Теперь, можно создать распределение, которое имеет не (или немногие) приложения GNU. См. альпийский Linux для примера. Поэтому я не называю Linux GNU/Linux; когда я говорю, что Linux, не обращаюсь к подмножеству систем Linux, которые имеют утилиты GNU.
*Технически, существуют некоторые вещи, которые можно сделать только с ядром.
То, что сказал Gilles, корректно, Вы не можете препятствовать тому, чтобы корень получил доступ к монтированию. Это не может получать доступ к монтированию непосредственно (без предохранителя allow_other
опция), но это может всегда переключаться на того пользователя.
Однако то, что можно сделать, является ленивым размонтированием монтирование после того, как процесс изменился, это - текущий рабочий каталог в точку монтирования. После того как процесс в точке монтирования, можно сделать ленивое размонтирование. Это предотвратит любые новые процессы от способности получить доступ к точке монтирования, но процессы, которые работали в ней, продолжат иметь доступ.
encfs /enc/source /enc/target
( cd /enc/target && some_long_running_process) &
fusermount -uz /enc/target
some_long_running_process
, и любые дети обрабатывают, это мечет икру прочь, будет иметь полный доступ к точке монтирования. Но если что-нибудь не ребенок того процесса попытается получить доступ к монтированию, то это просто получит пустой каталог.
Обратите внимание, что существует краткое окно, где точка монтирования доступна, в котором что-то еще может изменить каталог в него, но окно является очень маленьким, если задано сценарием.
Также отметьте, существует все еще несколько способов, которыми корень мог получить доступ к точке монтирования, но они не просты, и очень hackish.
Только монтирующийся пользователь может получить доступ к encfs файловой системе. Даже процессы, работающие как корень, добираются, “разрешение отклонило” ошибку; конечно, они могут переключиться на монтирующегося пользователя и затем получить доступ к данным.
Невозможно сделать данные недоступными корню. По определению корень всесилен и имеет доступ ко всему. Вы больше не можете препятствовать тому, чтобы корень получил доступ к файлам, чем можно предотвратить родителей God/Santa/your / … ¹ от знания, что Вы сделали вчера ночью. Если Вы не доверяете пользователю, не давайте им полномочие командам выполнения как корень.
¹ Выбор, какой бы ни применимо.
Хорошо согласно этому названные Вопросы и ответы: encfs с ожидают доступ запрещен, он кажется, что даже корень не может получить доступ к EncFS, если конкретный пользователь сделал монтирование.
выборка
Но похоже на использование обычного пользователя для монтирования зашифрованного каталога, и затем Вы пытаетесь видеть смонтированные файлы с корнем с помощью sudo. Это не будет работать и является смыслом encfs.
В Вашем примере каталог cr является устройством хранения данных, используемым encfs. Содержание этого не является никаким большим секретом, это - зашифрованные данные. Вы монтируете эти данные по млн, так, чтобы Вы видели его содержание человекочитаемым способом как файлы менее чем млн.
Только пользователь, который монтирует cr, сможет считать то, что является внутренними млн. Даже корень не может.
Но большему количеству опытного пользователя, нет ничего сохраняющего корень от просто выполнения a su - <user>
и становление тем пользователем, так, чтобы они могли получить доступ к смонтированной доле EncFS.
Как много раз говорился на этом сайте, нет ничего, что можно сделать, чтобы мешать корню получить доступ к чему-либо, что это локально для системы. Это, как система работает. То же может быть сказано для Администратора в Windows System.