воскресенье, 20 ноября 2016 г.

Защита данных от случайных изменений в LibreOffice Writer

На прошлой неделе Mike Kaganski (один из русских разработчиков) попросил меня поправить несколько вещей в справке. На самом деле, речь шла даже о добавлении пары строк в статью о защите данных от случайного изменения. Но, по ходу работы, я понял, что нужно переписывать всё. Вчера послал патч в справку LibreOffice. Здесь хочу кроме перевода, дать дополнительные пояснения к пунктам, и заодно рассказать то, что на мой взгляд в справке не очень уместно.

Обратите внимание, что данная защита не защищает документ от несанкционированного доступа к данным. Эта защита документа (или частей документа) может предотвратить только случайное изменение данных. Данные не шифруются, они доступны в файле в открытом виде. В любом случае, даже если вы используете пароль, он может быть очень просто обойден средствами самого LibreOffice Writer.


Защита раздела в LibreOffice Writer от изменений

Любой раздел в текстовом документе LibreOffice Writer может быть защищён от случайного редактирования как с применением пароля, так и без применения его. Пароль обходиться элементарно, так что даже не надейтесь… В принципе, пароль был сделан для совместимости с MS Office Word, и что там он обходиться элементарно, что в LibreOffice.

Включение защиты раздела от изменений

В первую очередь нужно выбрать раздел, который вы хотите защитить. И на сегодняшний день, есть два диалоговых окна в LibreOffice Writer, одно для создания, а другое для редактирования разделов. Эти диалоговые окна почти одинаковые, но служат разным целям. (Почему их не объединят, я не знаю. Это вопрос к команде дизайнеров.) Если раздел не существует, выделите текст (или не выделяйте, если это будет вставка), пройдите в главном меню Вставка — Раздел… Если раздел уже существует, пройдите в главном меню Формат — Раздел… и выберите раздел. Во втором случае, можно так же воспользоваться Навигатором, нажмите правой кнопкой мыши на нужном разделе и в контекстном меню выберите Правка...
Как я уже говорил, саму защиту можно организовать с паролем и без. Если вы хотите защиту без пароля, достаточно поставить флажок Защищено в разделе диалогового окна Защита от изменений. Если вы хотите защиту с паролем, нужно поставить флажок Защищено, а затем Паролем... После этого появиться окно, где вам будет предложено ввести и подтвердить пароль, и предупреждение, что пароль должен быть не менее 5 символов.
Для справки скажу, раньше пароль был один символ, но решили увеличить защиту. Зачем, не знаю, скорее всего для совместимости. Пароль обходится в несколько кликов мышью, и 1 или 35 символов, значения не имеют... но об этом я расскажу позже.

Модификация защиты раздела от изменений

Пройдите в главном меню Формат — Раздел... и выберите раздел, или можно воспользоваться Навигатором, нажав правую кнопку мыши на нужном разделе и в контекстном меню выбрать Правка... А дальше:
  • Если защита не имеет пароль, но вы хотите его установить, установите флажок Паролем, и в появившемся окне введите и подтвердите пароль (минимум 5 символов).
  • Если пароль есть и вы хотите его удалить, снимете флажок с поля Паролем, и в появившемся окне введите действующий пароль.
  • Если защита с паролем и вы хотите изменить пароль, нажмите кнопку Пароль... В появившемся окне введите действующий пароль, а в следующем введите и подтвердите новый.

Отключение защиты раздела от изменений

Пройдите в главном меню Формат — Раздел... и выберите раздел, или можно воспользоваться Навигатором, нажав правую кнопку мыши на нужном разделе и в контекстном меню выбрать Правка… Далее:
  • Если зашита не имеет пароля, снимите флажок Защищено.
  • Если зашита с паролем, то снимите флажок Защищено, и появившемся окне введите действующий пароль.
Как видите, всё это доступно методом тыка, и за исключением нескольких пунктов достаточно логично.

Защита ячеек в таблицах LibreOffice Writer от изменений

В LibreOffice Writer можно защитить как одну ячейку или несколько, так и всю таблицу целиком. В отличии от разделов, таблицы не могут быть защищены паролем, но как вы понимаете, защита паролем не имеет, по большому счету, смысла.

Включение защиты ячеек или таблицы от изменений

Включение для одной ячейки, нескольких ячеек или таблицы происходит абсолютно одинаково за исключением выделения необходимого объекта. Если у одна ячейка, вы можете поставить курсор в ячейку. Если ячеек несколько, то их необходимо выделить, а если вы хотите защитить всю таблицу, выделите всю таблицу целиком. Далее, нужно выбрать в главном меню Таблица — Защита ячейки.

Отключение защиты ячеек или таблицы от изменений

Для отключения защиты ячеек и таблиц в LibreOffice Writer можно использовать разные методы, но можно использовать и одинаковые. Таблицы имеют дополнительную возможность. Выделите ячейки с которых нужно снять защиту от изменений. Как вы понимаете, таблица целиком, это просто все ячейки. Для одной ячейки, можно просто поставить курсор в неё. Далее в главном меню выберите Таблица — Снять защиту ячеек.
Для всей таблицы можно использовать Навигатор. В Навигаторе, нажмите правой кнопкой мыши на необходимую таблицу, и в контекстном меню выберите Таблица — Снять защиту. По умолчанию в LibreOffice Writer включена функция разрешающая нахождение курсора в защищенных областях. Отключить или включить обратно эту функцию можно в параметрах. Пройдите Сервис — Параметры — Writer — Знаки форматирования и в разделе Защищённые области снять/поставить флажок Разрешить курсор.

Защита оглавлений и указателей

Оглавления, библиография, перечни таблиц и рисунков создаются автоматически в LibreOffice Writer, и по умолчанию имеют защиту против случайных изменений. И это правильно, потому что в 99,9% случаях, нам не нужно ничего в них менять руками. Но её тоже можно убрать. Сделать это можно тремя способами, из контекстного меню по правой кнопке мыши,в Навигаторе и в главном меню.


Отключение защиты оглавления и указателей

В предыдущем разделе этой статьи я упоминал об функции Разрешить курсор. Если она отключена, вам нужно будет её включить, если вы используете контекстное меню по правой кнопке мыши или главное меню.
  • Щёлкните правой кнопкой мыши на области оглавления/индекса, в контекстном меню выберите Правка оглавления, и в открывшейся вкладке снимите флажок Защищено от изменений в ручную на вкладке Тип.
  • Щёлкните правой кнопкой мыши на необходимом оглавлении или указателях в Навигаторе, и снимете флажок в контекстном меню Указатели — Только для чтения.
  • Поставьте курсор в требуемый указатель и пройдите в главном меню Вставка — Оглавление и указатели — Оглавление,указатели и библиография. Выпадающий список Тип будет заблокирован в этом случае, но снять флажок Защищено от изменений в ручную на вкладке Тип будет возможно.

Включение защиты оглавлений и указателей

Для включения защиты нужно проделать тоже самое что описывалось в прошлом пункте, но вместо снятия флажка, установить его.

Защита всего документа в LibreOffice Writer от случайных изменений

В LibreOffice Writer можно защитить сразу весь документ от изменения. Работать это должно с фалами, у которых расширение .doc, .docx, .odt, .ott. Зачем это сделали для шаблонов, я не знаю. Представляете себе шаблон, который нельзя изменить :) Могу предположить только, что это недоработка, не очень критичная, но всё же.


Для включения защиты от изменения целого документа пройдите в главном меню Сервис — Параметры…, в открывшемся окне выберите Writer — Совместимость, и установите флажок Защита формы. Для выключения защиты, этот флажок нужно снять.
Хочу заметить, что эта функция является свойством для документа. Но ни значок Сохранить на панели инструментов, ни значок Состояния документа в строке состояния не показывают, что документ изменён и требует сохранения. Так что, будьте внимательны: изменили состояние флажка — сохраните документ.

Игнорирование защиты от изменений

И вот теперь я вам расскажу о самой интересной штуке. Но очень рекомендую не пользоваться ей без острой надобности. В LibreOffice Writer есть галочка, которая делает всю «защиту» описанную выше бессмысленной. Именно по этой причине везде выше уточняется, что защита от случайных изменений, и только.
Пройдите в меню Сервис — Параметры..., в открывшемся окне выберите раздел Writer - Знаки форматирования и в разделе Защищённые области найдите флажок Игнорировать защиту. Этот флажок, такой доступный и простой, делает не работающей, в том числе, и защиту разделов по паролю. Гениально.. старался, делал, защищал, а тут 5 нажатий мыши и ничего не работает.
Игнорирование защиты не является свойством документа, а настройка приложения. То есть, поставив его, во всех документах у нас будет отсутствовать защита от случайного изменения, в том числе и в Оглавлении и указателях. Что не есть хорошо, так как испортить, то что портиться не должно, как показывает практика, проще простого. Помните анекдот про русского и 2 шара: «Один сломал, другой потерял.» Вот.
В версии 5.3 эту галку вроде бы как хотят убрать от греха подальше. В смысле возможность то останется, резать функционал никто не будет.
С версии 5.3 эта функция будет доступна в Экспертных настройках. Вы можете её найти в Сервис — Параметры... и в открывшемся окне перейти в раздел LibreOffice — Продвинутые. Внизу будет кнопка Открыть экспертные настройки. В новом открывшемся окне эту функцию можно найти пройдя org.openoffice.Office.Writer — Cursor — Options — IgnoredProtectedAria. Если изменить её значение с false на true, то все области защищенные от случайного редактирования станут доступны в этой инсталляции LibreOffice, до тех пор пока значение не поменяют обратно.
Если вы решите использовать этот функционал, я бы рекомендовал бы вам пользоваться отдельным профилем пользователя, так как забыть поменять значение обратно очень просто.
Вроде я рассказал всё о защите от случайных изменений.

Дополнительная литература и источники: