Почему файлы, созданные Puttygen, скрыты в проводнике Windows 7?

17

В Windows 7 Home Premium после сохранения закрытого ключа в PuTTY Key Generator (он же Puttygen) в корневом каталоге диска C он не отображается в Проводнике.

Как воспроизвести:

  1. Запустите Puttygen.
  2. Сгенерируйте ключ.
  3. Нажмите «Сохранить закрытый ключ» (это также работает для «Сохранить открытый ключ», но я проверил только оригинальный случай с этим).
  4. Перейдите к C:.
  5. Введите имя, например id_rsa, чтобы сохранить файл как C:\id_rsa.ppk.
  6. Запустите проводник.
  7. Перейдите к C:.

Результат: Нет id_rsa.ppkвидно.

Чтобы доказать, что файл существует:

  1. Вернитесь в Путтиген.
  2. Снова нажмите кнопку «Сохранить закрытый ключ».
  3. Перейдите к C:.

В этом окне вы можете взаимодействовать с файлом. Я проверил свойства файла оттуда:

  • Это не спрятано.
  • «Полный контроль» проверен для моего пользователя.
  • «Открывается с» странно говорит «Windows Shell Common Dll».

Дополнительная информация:

  • Я вчера установил Windows, так что это не какое-то чудовище, зараженное Sony.
  • Там есть все последние обновления безопасности и .NET 4.0.
  • У меня установлена ​​интеграция TortoiseGit и 7zip, поэтому вполне возможно, что они как-то связаны с этим (хотя файлы .ppk не должны быть связаны ни с одним из них).

Вещи , которые так делают файл отображаться в проводнике:

  • Сохранил файл в другом каталоге, затем скопировал / переместил его (оба работали) с помощью Проводника в C:\. Я получил запрос «Отказ в доступе к целевой папке», где мне сначала пришлось нажать «Продолжить».
  • Сохраните файл в другом каталоге и перейдите туда.
  • Сохранил файл в корне другого диска ( D:в данном случае) и переместился туда.

Вещи , которые не удалось сделать файл отображаться в проводнике (ударять , F5чтобы обновить в окне проводника после каждого действия):

  • Переименовал файл в foo.ppk.
  • Сохранена вторая копия под другим именем.
  • Включено «Показывать скрытые файлы, папки и диски».
  • Отключено «Скрыть защищенные файлы операционной системы».
  • Сохраните файл в другом каталоге, а затем C:\ скопируйте его в диалог сохранения Puttygen . Меня не просили дать разрешение на сохранение файла, как в Проводнике.

Мое наивное предположение состоит в том, что в Проводнике есть специальный встроенный случай для «ограниченных» (фактически не ограниченных, поскольку Puttygen тривиально игнорирует их) каталогов, которые обновляют только список файлов через диалоговое окно «Запрещен доступ к целевой папке». Какова реальная причина?

l0b0
источник

Ответы:

23

В Vista и более новых версиях Windows непривилегированный процесс не может быть сохранен в папки, где «Пользователи» не имеют доступа к записи (даже если вы являетесь локальным администратором и у группы «Администраторы» есть доступ). Поэтому, когда непривилегированная программа пытается записать туда файл, она фактически сохраняется в %localappdata%\VirtualStore.

Крис С
источник
2
Спасибо, это было так. Хорошие старые окна, постоянно отнимающие у вас контроль над собственной ОС.
Амальговинус
@Amalgovinus - Контроль не был снят, только рабочий процесс был изменен, из соображений безопасности повышенный процесс работает точно так же, как и всегда. Vista просто изменила способ повышения уровня, пользователь должен специально запросить его, а не процесс, автоматически запущенный с теми же разрешениями, что и пользователь.
Ramhound
Это также работало для Windows 10 x64
user38537
0

Ну, я видел такое же поведение, и файлы действительно находятся в VirtualStore, но мне показалось интересным, если я загружу оболочку bash (у меня установлен cygwin), она показывает файлы как в Program Files \ putty, как я и думал они должны быть, а не странно не видны, как говорит оболочка windows cmd. Так что, если у вас есть Cygwin, вы можете смотреть на свои ключевые файлы таким образом, а не перехватывать всю файловую систему.

Патрик Тейлор
источник
Ваш ответ почему-то не кажется мне совершенно понятным!
Сок Pimp IT