Подавлять файлы восстановления при редактировании конфиденциальных файлов в vi, nvi и vim

Access 2.0 указан как золотое приложение в WineHQ:

https://appdb.winehq.org/objectManager.php?sClass=version&iId=2746

Проблема, с которой вы столкнулись, похоже, связана с ахитектурой (ошибки класса ELF). Я полагаю, вы пытаетесь запустить приложение win32 на установке wine64.

Это сообщение должно помочь вам найти правильный способ установки wine для ваших нужд:

https://askubuntu.com/questions/74690/how-to-install-32-bit-wine-on-64-bit-ubuntu#74716

5
28.10.2016, 04:40
1 ответ

Я могу придумать несколько вариантов предоставления пользователям разумного редактора с максимально возможной паранойей. Поскольку это приложение, -чувствительное к безопасности, отнеситесь ко всему здесь с долей скептицизма и исправьте любые ошибки.

Я бы предложил сделать одну из этих вещей по умолчанию, но сделать так, чтобы люди могли использовать свои собственные vimв качестве четко документированного варианта, чтобы они не пытались копировать данные из заблокированный -вниз vi.

Кроме того, некоторые из этих предложений (, в частности возиться с LD_PRELOAD), могут быть совершенно неприемлемыми, отключенными (насколько это возможно )или ограниченными в вашей среде.

Вот некоторые потенциально взаимоисключающие варианты в произвольном порядке,

  1. запустить редактор как непривилегированный пользователь, как это делает sudoedit.
  2. Предоставьте вашему собственному редактору функции, которые вы не хотите исправлять или компилировать
  3. перехватывать вызовы проблемных libcфункций с помощью LD_PRELOAD.
  4. полностью пропустить .vimrcпользователя.

1 )запустить редактор как непривилегированный пользователь

Если у вас есть возможность создавать дополнительных пользователей или требовать, чтобы люди, использующие программное обеспечение, создавали выделенного непривилегированного пользователя, вы можете использовать тот же прием, который sudoeditиспользует :, создавая временный файл и позволяя пользователю редактировать его. как непривилегированный пользователь. Я не знаю, как гарантировать, что временный файл никогда не коснется диска.

Похоже, вы уже делаете что-то подобное, но без непривилегированного пользователя.

Вот ответ суперпользователя, объясняющий, как sudoeditработает .

Кроме того, я бы рекомендовал изучить, как работает функциональность sudoeditв sudo. вот соответствующий код .

2 )свяжите свои собственные vi.

nviнебольшой и имеет лицензию BSD,вы можете исправить его, чтобы никогда не создавать файлы подкачки или компилировать его без поддержки файла подкачки. На самом деле я не знаю, потому что в последний раз, когда я пытался собрать nvi, я не мог понять, как заставить его древнюю версию autotools обнаруживать OS X.

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

Пользователи Emacs могут получить копию mg. Вот ссылка на форк mg . Вариант, который фактически находится в дереве исходных текстов OpenBSD, имеет лицензию ISC. Возможно, вам придется исправить его, потому что он иногда выдает (, например, для взаимодействия сcscope).

Думаю, пользователям нано не повезло.

3)LD_PRELOAD

используйте LD_PRELOADдля направленияld.so(в Linux )для загрузки прокладки для перехвата вызовов libcфункций, таких как fwrite, forkи т. д.

4 )пропустите параметры конфигурации пользователя в vim, вместо этого запустите собственную минимальную конфигурацию.

Это самая надежная командная строка для vim, которую я могу придумать, но я мог что-то упустить. Я получил это только после прочтения справочной страницы vim и просмотра моего .vimrc.

  • -u NONE--нет инициализации
  • -i NONE--нет.viminfo
  • -U NONE--нет инициализации(gvimно эй, вы никогда не должны быть слишком осторожными)
  • -Z--начните так, как если бы ваш argv[0]был rvim.
  • set nocompatible--несовместимы vi-.
  • set backspace=indent,eol,start--сделать возврат назад более интуитивным
  • set noexrc--возможно избыточно, не читайте никакие rcфайлы.
  • set secure--нет autocmd, нет shell, нет write, отображать команды --map.
  • set nobackup--нет параметров резервного копирования
  • set laststatus=2--показать редактируемый файл

Итак, вот командная строка, объединяющая все это.

vim -n -u NONE -i NONE -U NONE -Z \
        --cmd "set nocompatible | set backspace=indent,eol,start | set noexrc | set secure | set nomodeline | set nobackup | set laststatus=2" \
         --
0
27.01.2020, 20:41

Теги

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