Настройка sudo для пользователя

Задача: разрешить пользователю username выполнять все команды с правами суперпользователя (root) и без запроса пароля. Так же должена работать sudo -i

Настраивается под root. Открываем для редактирования файл /etc/sudoers и в самый конец добавляем строку


username ALL = NOPASSWD: ALL

Важно добавить строку именно в конец файла.

Файл в режиме «только чтение», в том числе и для пользователя root. Поэтому для сохранения в vim вводим w!

Рубрика: Сисадминское | Метки: | Добавить комментарий

КриптоПро: создание тестового сертификата

Про то как работать с КриптоПро, как создавать и добавлять сертификаты на платформе Windows, в интернете куча информации. Для Linux систем информации меньше. И вся она разрозненная. Поэтому немного полезностей для разработчика, работающего в Linux.

Основая задача на сегодня: создать тестовый сертификат и добавить его в систему, чтобы им можно было пользоваться при отладке функционала подписания документов с помощью КриптоПро.
Читать далее

Рубрика: ЭДО для идиотов | Метки: , , | 1 комментарий

Вход на сервер по ключам

Для того чтобы была возможность входить на сервер по ключам надо отредактировать файл /etc/sshd_config.

Добавить или поменять следующие настройки

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

И перезапустить сервер SSH:

service sshd restart

Рубрика: Сисадминское | Метки: | Добавить комментарий

Jenkins деплой из командной строки

Jenkins может использоваться в том числе как и система деплоя веб-приложения на сервера. При всех плюсах — есть одно неудобство — надо заходить в интерфейс деплоя и «кликать мышью». Если делается это долго, то утомляет.
В тоже время вроде бы как в Jenkins есть API. Но я, например, потратив пару часов, так и не понял как через АПИ сделать простой деплой нужного проекта. В результате поиска в гугле и метода проб и ошибок был написан скрипт на bash.
Читать далее

Рубрика: Полезности, Работа | Метки: , | Добавить комментарий

Лицензия на КриптоПро

Программный комплекс КриптоПро CSP просто незаменим при работе с электронным документооборотом. Это и подписывание документов и авторизация по электронной цифровой подписи (ЭЦП). Т.е при разработке или отладке функционала ЭДО наступает момент когда на компьютер разработчика надо ставить КриптоПро. И при длительной работе нужно покупать лицензию. А это не очень просто.
Читать далее

Рубрика: Жизнь, ЭДО для идиотов | Метки: , , | 1 комментарий

mongoexport и даты

У монго есть довольно удобная утилита mongoexport. Как понятно из названия и инструкции она позволяет выгрузить содержимое базы монго в фай формата JSON. При этом есть возможность указать конкретную коллекцию, из которой будет делаться выгрузка. А очень удобный параметра -q позволяет указать условия в формате JSON, в согласии с которым будут выбрана записи для экспорта.

Т.е. это позволяет не выгружать всю коллекцию целиком, например для отладке на тестовом сервере, а получить только «проблемные» записи. Но тут есть подводные камни связанные с датами. Как выяснилось mongoexport не совсем корректно обрабатывает запросы с датами. Если в mongo shell нет проблем с использованием ISODate и различными вариантами new Date, то mongoexport обрабатывает такие запросы не совсем корректно.
Читать далее

Рубрика: Работа | Метки: , | Добавить комментарий

ЭДО для идиотов

По ходу жизни накопилась некоторая информация связанная с электронным документооборотом (ЭДО). Тема в последние время похоже очень сильно развивается. Но каких либо материалов об этом очень мало, либо написаны они так что понять их может только юрист или бухгалтер. Или сделать вид что понял. А вот программисту все это надо разрабатывать, а тестеру проверять. И тут уже умный вид не сделаешь — должно работать. И работать правильно.

И да, небольшое уточнение, говорится здесь будет больше о документообороте между организациями. Т.е. счета, счета-фактуры, акты выполненных работ, акты сверки, накладные и т.п. Т.е. То что предоставляется в налоговые испекции для финансовой отчетности. А значит шаг влево или шаг вправо здесь недопустим.

Почему для идиотов? Исходя из предыдущих абзацев могу четко сказать — сколько бы ума не было бы у разработчика систем электронного документооборота, но все равно на фоне бухгалтеров и юристов он будет чувствовать идиотом. Всегда и везде. С этим надо только смириться 🙂

Рубрика: Жизнь, ЭДО для идиотов | Метки: | Добавить комментарий

Стек с изменяемым размером

Стек (stack) является одной из базовых структур хранения данных. Организуется по принципе LIFO (last in first out) т.е. первый пришел, последний вышел. Чаще всего при программировании реализуется с помощью массива и указателя на верхушку стека. При внесении данных (push) элемента записывается в верхушку стека, а указатель увеличивается на единицу. При извлечении данных (pop) элемент извлекается из верхушки стека, а указатель уменьшается на единицу.
Работает все нормально до тех пор, пока количество помещаемых данных не превышает длину выделенного для хранения стека массива. Возникает переполнение стека. Исправить это можно заранее выделив больший объем памяти. Но это не рационально с точки зрения использования памяти. Вполне логичным было бы увеличивать или уменьшать размер стека при необходимости.
Читать далее

Рубрика: Алгоритмы | Метки: | Добавить комментарий

Настройки консоли PostgreSQL

В названии слишком громко сказано. Настраивать будем не всю консоль, я только строку приглашения (PROMPT)
Зачем это нужно? Зачастую бывает что откртыто в разных окошках по несколько баз данных. Одна отладочная, другая боевая… И можно совершенно случайно запустить запрос не на той базе. Да, возможно это не совсем правильно держать постоянно открытой консоль боевой базы. Но лень двигатель прогресса. Поэтому возникает задача как-то обозначить где какая база. Легче всего это сделать через разное оформление строки приглашения (PROMPT), которую показывает psql.
Читать далее

Рубрика: Полезности | Метки: , , | Добавить комментарий

Узнать структуру таблицы PostgreSQL

Иногда требуется узнать структуру таблицы в базе данных. Для MySQL существует куча вариантов. С PostgreSQL все чуть сложней.
Если есть pgphpadmin или другая утилита для администрирования базы, то там как правило можно просмотреть колонки их тип и прочие параметры. В консоли psql так же есть способ узнать информацию о таблице, но он не так очевиден.

SELECT column_name, column_default, data_type 
FROM INFORMATION_SCHEMA.COLUMNS 
WHERE table_name = 'my_table';

Этот запрос возвращает название колонки, ее значение по умолчанию и тип данных. Если этого недостаточно, то можно «поэкспериментировать» со столбцами из таблицы INFORMATION_SCHEMA.COLUMNS и добавить то что необходимо.

Рубрика: Полезности | Метки: | Добавить комментарий