Для ограничения объема позвольте, предполагают, что мы находимся в мире Windows только.
Также предположите, что мы не хотим играть с политикой разрешения.
Для нас действительно ли возможно создать файл, который не может быть скопирован?
Заранее спасибо.
Нет. Вы не можете создать файл, который не сможет скопировать SYSADMIN. Однако его можно зашифровать.
А как насчет создания файла, который занимает более 50% общего пространства на этой машине и не сжимается?
Например, предположим, что вы хотите таким образом сохранить логическое значение (истина или ложь).
В зависимости от его значения, вы можете записать битовый поток единиц
или ноль
es и зашифровать этот поток, используя какой-либо алгоритм шифрования, например AES в режиме CBC. Это дает вам дополнительное преимущество исправления ошибок. Даже в случае серьезного повреждения данных вы сможете восстановить логическое значение, проверив, преобладают ли в расшифрованном потоке единица
или ноль
.
В этом случае вы не можете скопировать его (полностью) на машине ...
Конечно, любой тип внешней памяти, которую можно добавить в систему, может создать проблему в этом сценарии. Но файл уже будет зашифрован, так что не беспокойтесь об этом ...
Хорошая попытка, RIAA.
А если серьезно, никак нельзя. Всегда можно скопировать, вы можете просто усложнить понимание файла людьми или попытаться скрыть его, используя шифрование. Spotify делает это.
Если вы очень постараетесь, вы можете сделать рут-кит для Windows и использовать его, чтобы Windows даже не узнала о файле, а также для предотвращения копий. Файл по-прежнему будет там, и его можно будет скопировать другими инструментами или Linux, имеющим доступ к ntfs.
«Пытаться сделать цифровые файлы не копируемыми - все равно что пытаться сделать воду не влажной». ~ Брюс Шнайер
Любой файл, который можно прочитать, может записать свое содержимое в другое место (например, в другой файл, т.е. скопировать).
Единственное, что вы можете сделать, это ограничить, кто/что может читать файл.
Краткий ответ: Нет.
Вы, конечно, можете использовать настройки безопасности, чтобы ограничить круг лиц, которые могут читать файл. Но если кто-то может это прочитать, то они могут скопировать. Даже если вы нашли уловку операционной системы для отключения «обычного» копирования, если кто-то может прочитать файл, он может извлечь содержимое, сохранить его в памяти, а затем записать в другое место.
Вы можете зашифровать содержимое, чтобы оно было полезно только вашей собственной программе, которая знает, как его расшифровать.
Вот и все.
Технически вы можете создать и записать в сетевой ресурс только для записи.
Чем это мотивировано? Если это файл только для чтения, вы можете иметь его в качестве встроенных ресурсов в вашей сборке.
При использовании Windows 7 для копирования некоторых файлов с жесткого диска, некоторые файлы выдавали сообщение о невозможности их полного копирования; определенные данные были пропущены в копии. Я подозреваю, что это как-то связано со свободным пространством в конце файлов, хотя сообщение показалось мне любопытным. Я бы ожидал, что операция копирования просто проигнорирует свободное место.
В старые времена DOS вы могли помечать сектора диска как поврежденные и по-прежнему читать с них. Это означало, что ОС игнорировала рассматриваемый сектор, но ваше приложение знало, где искать, и могло получить данные. Не уверен, что сейчас это сработает.
Еще одна старая уловка MS-DOS заключалась в том, чтобы поместить символ пробела в середине имени файла (да, пробелы были допустимыми символами для имен файлов). Поскольку в командной строке не было способа избежать пробела, файл нельзя было скопировать с помощью команд DOS.
Если в запущенном процессе вы открываете файл и удерживаете эксклюзивную блокировку, то другие процессы не смогут прочитать файл, пока вы не закроете хэндл или ваш процесс не завершится. Однако, будучи администратором, вы можете принудительно снять ручку блокировки.
Если вы используете старые (OLD) версии windows, есть определенные символы, которые вы можете вставить в имя файла, чтобы сделать его недействительным, не указанным в папках и т.д.. Они часто использовались в старые времена pub ftp для обмена файлами ;)