Что заставляет файлы в моем корневом каталоге появиться, когда я вхожу в систему через SSH затем выполненный ecryptfs-mount-private?

Это может быть полезно:

$ zip all.zip *.xml  ## create a big archive.

Найдите общий размер архива:

$ ls -lh all.zip

Теперь, разделите крупный архив на небольшие архивы, поскольку Вам нужно:

$ split -b 5M all.zip ## creates 5 MB zips

Примечание: извлечение архивов не работает, если Вы не присоединяетесь к ним назад:

cat x* > oldbigzip.
1
21.08.2018, 05:16
3 ответа

Ситуация: у Вас есть зашифрованный корневой каталог.

Шаг 1: Вы входите в систему по SSH. Ваши зашифрованные данные не смонтированы, поэтому что Вы видите, Ваш “реальный” корневой каталог в (незашифрованной) основной файловой системе. Этот корневой каталог не содержит много, это непосредственно применимо:

  • ~/.ecryptfs/ содержит управляющую информацию для Ваших зашифрованных данных
  • ~/.Private/ содержит Ваши зашифрованные данные в зашифрованном виде
  • ~/Access-Your-Private-Data.desktop значок на рабочем столе должен смонтировать Ваши частные данные
  • ~/README.txt содержит человекочитаемые инструкции смонтировать Ваши данные.

Ваш .bashrc и другие точечные файлы, к которым Вы привыкли, не доступны, потому что они находятся на зашифрованном томе, который не смонтирован.

Шаг 2: Вы работаете ecryptfs-mount-private. Это монтирует Ваши зашифрованные данные к ~ (Ваш корневой каталог). После той точки, ls -lA ~ покажет Ваши точечные файлы такой как ~/.bashrc. При выполнении нового экземпляра удара он поэтому считает Ваш .bashrc и Вы будете иметь свои псевдонимы в наличии.

Тонкость - то, что после шага 2, текущий каталог Вашей интерактивной оболочки удара является все еще корневым каталогом на незашифрованном томе. Монтирование зашифрованного тома на ~ измененный каталог это ~ относится к, но не изменяет каталог, что удар имеет открытый ¹. Если Вы работаете cd ~ в ударе (или ярлык cd), это изменит свой текущий каталог на то, что теперь называют ~, даже при том, что это не будет влиять на значение, о котором сообщают pwd.

Если Вы входите в систему по SSH, в то время как Ваш зашифрованный корневой каталог уже смонтирован, то, как только Ваша оболочка входа в систему запускается, она видит файлы в Вашем зашифрованном томе, таким образом, Ваши псевдонимы загружаются. Монтирование зашифрованного тома (или любая другая файловая система) является глобальным действием, это не ограничено сессией входа в систему. Если Вы работаете ecryptfs-umount-private, это делает Ваши зашифрованные данные недоступными, назад к состоянию времени начальной загрузки.

¹ Технически, это - текущий каталог процесса удара, не, открытый файл, но поведение является тем же.

6
27.01.2020, 23:11
  • 1
    Превосходный ответ!Большое спасибо. Это все совершенно ясно, и все это имеет смысл теперь. Мне все еще любопытно знать хотя: что на самом деле произошло бы, если бы я не работал cd ~, прямо после ecryptfs-mount-private, но сделал touch test, например, в земельном участке? Это испортило бы файловую систему (я сомневаюсь относительно этого, но все еще...)? Или удар дал бы мне ошибку, возможно? Каково состояние "текущего каталога процесса удара" в тот момент, так сказать? –  Decent Dabbler 11.02.2014, 21:05
  • 2
    @fireeyedboy test файл был бы создан в текущем каталоге удара (который наследован touch, который является каталогом, это скрыто точкой монтирования. –  Gilles 'SO- stop being evil' 11.02.2014, 22:16

Монтирование не изменяет Ваш текущий рабочий каталог. Я предполагаю, что точка монтирования является каталогом, в котором Вы находитесь. Или необходимо сделать монтирование откуда-либо или выйти из того каталога:

ls -al
ecryptfs-mount-private
ls -al
cd ..
cd -
ls -al

или

cd ..
ecryptfs-mount-private
cd -
ls -al

Все символьные ссылки имеют lrwxrwxrwx. Это не имеет значения, поскольку права доступа символьной ссылки никогда не используются. Те из цели используются вместо этого.

Монтирование

Монтирование средств, которые содержание смонтированного объема показывают вместо содержания каталога, который используется в качестве точки монтирования. Приложения видят одномерное пространство имен файловой системы. Но это - просто проекция двумерной укладки файловых систем. Смонтированные объемы выше, чем корневая файловая система и покрывают части ее (соответствующая точка монтирования).

/dev/sdx:                        |mounted volume|
root FS: |---dir-1---|---dir-2---|---dir-3---   |---dir-4---|

Вам нужны определенные приемы для доступа к покрытым частям. Тривиальный прием: "Быть ли" перед монтированием (Ваш случай). Прохладный:

mkdir dir-1 dir-2
touch dir-1/file
ls -l dir-1 dir-2
mount --make-private --bind dir-1 dir-2
ls -l dir-1 dir-2
mount -t auto /dev/whatever dir-1
ls -l dir-1 dir-2

Псевдонимы

Случайное поведение очевидно трудно объяснить. Псевдонимы определяются и в файлах запуска в расчете на пользователя и в в масштабе всей системы (см., например. man bash: вызов). Кроме того, это может быть различие (в зависимости от конфигурации), называют ли оболочку как оболочка входа в систему или нет. Проигрывание с sudo может привести к некоторым оболочкам, являющимся оболочками входа в систему, почему другие не. Это не было бы случайно, все же.

4
27.01.2020, 23:11
  • 1
    О символьных ссылках: это имеет смысл. О монтировании — в терминах неспециалиста — Вы говорите, что я должен "обновить" каталог для наблюдения изменений? Или это - что-то более сложное (все снова и снова. Уставление отчасти от всей этой неинтуитивной сложности, чтобы быть честным)? –  Decent Dabbler 11.02.2014, 15:03
  • 2
    @fireeyedboy, Если Вы находитесь в /home/foo, и Вы просто смонтировали что-то сверху /home/foo, если Вы cd и въезжайте задним ходом, Вы находитесь все еще в базовом /home/foo. –  Patrick 11.02.2014, 15:29
  • 3
    @Patrick, Что делает "монтирование на вершине" среднего каталога, точно? Извините за то, чтобы быть плотным; мне просто нелегко визуализировать/осмыслять то, что все это, как предполагается, означает. Я думал ecryptfs-mount-private просто добавили бы дешифрованные частные файлы вместе с другим содержанием в моем домашнем dir, но это, кажется, намного более сложно, чем это. Вы говорите предыдущее /home/foo "экземпляр" также все еще одновременно доступен где-нибудь и не является тем же как новым /home/foo? –  Decent Dabbler 11.02.2014, 15:45
  • 4
    @fireeyedboy, Монтирующимся на "вершине": когда я монтирую ntfs раздел на своем Linux, он смонтирован на/mnt/nt..., когда-то смонтировал, что я вижу содержание, но файлы не "в" dir, Если размонтировано, я видел бы пустой dir. Я могу поместить файлы в тот пустой dir, Если я монтирую, что раздел снова там, файлы, которые я вижу, является файлами от раздела, не тех, которых я добавил бы при размонтировании. Для наблюдения их, я должен размонтироваться и CD назад к главному dir затем CD назад к dir там существует абстракция.Надеюсь, это поможет. –   11.02.2014, 20:20
  • 5
    Спасибо за приложение! Я оказываюсь перед необходимостью экспериментировать с Вашим примером монтирования сначала, понимать точную импликацию, все же. Не сразу очевидно, что это делает. Действительно ли безопасно протестировать это? ;-) –  Decent Dabbler 11.02.2014, 21:14

Скрытые файлы являются файлами с именем, запускающимся с периода, они не отображены, если explicitely не запросил, при помощи -a опция или конкретно упоминающий точку в списке аргументов. например, `ls -la или ls -l .*

псевдонимы файла называют ссылками, они могут быть твердыми или символьными. у Вас есть символьные ссылки там (первый символ полномочий l обозначая ссылку), это - просто указатель на фактический файл, и это - полномочия фактического файла, которые Вы хотите быть обеспокоенными, не сама ссылка.

Нет ничего, что включает это поведение или прочь, если Вы переключаетесь, пользователи (при помощи sudo) затем помнят как другого пользователя, у Вас есть различные полномочия.

псевдонимы являются установкой Вашей оболочкой, когда Вы входите в систему, (если Ваша оболочка является ударом), затем проверяют man bash страница и чтение о вызове, для наблюдения, какие файлы запуска это читает, обычно .bashrc или .aliases, - то, где они устанавливаются.

посмотрите на свой ~/.profile, можно добавить команды в конце такой как ls -la если это - то, что Вы хотите.

Веб-сайт Ubuntu имеет статью о encryptfs, мог бы также помочь.

1
27.01.2020, 23:11

Теги

Похожие вопросы