Ответы пользователя по тегу Linux
  • Как использовать сторонние C++ библиотеки в Visual Code на Linux?

    @res2001
    Developer, ex-admin
    Не зависимо в какой ОС вы работает и какой IDE пользуетесь схема одна и та же:
    1. Для того что бы в своих исходниках вы могли использовать вызовы сторонней библиотеки вы должны включить заголовочные файлы библиотеки с помощью директивы #include.
    2.Чтоб компилятор смог откомпилировать ваш код вы должны задать ему место расположение заголовочных файлов сторонней библиотеки с помощью опции -I компилятора. В линуксе, если библиотека установлена штатным пакетным менеджером, возможно это не потребуется, т.к. заголовочные файлы будут доступны по стандартным путям поиска заголовочных файлов.
    3.Чтоб линковщик смог собрать исполняемый файл вы должны указать ему путь и имя двоичных файлов библиотеки с помощью опции -L и -l. Опять же в линуксе, возможно, путь (-L) указывать не потребуется (см.п.2), только имя библиотеки (-l).
    4.Если библиотека установлена не в стандартные каталоги, то загрузчик исполняемых файлов может ее не найти. Чтоб это исправить возможно потребуется запустить утилиту ldconfig или даже добавить каталог библиотеки в конфигурационный файл ldconfig. Как вариант добавить в переменную окружения LD_LIBRARY_PATH путь к библиотечным бинарным файлам перед запуском программы.
    В винде ldconfig нет - библиотечные файлы должны быть либо в каталоге где лежит исполняемый файл программы, либо в одном из путей, заданных в переменной окружения PATH.

    Когда вы запускаете сборку в IDE, то обычно опции компилятора из пп.1-3 вы должны указывать в свойствах проекта.
    Ответ написан
    3 комментария
  • Как определить протокол без привязки к порту?

    @res2001
    Developer, ex-admin
    И FTP и POP3, а так же SMTP, IMAP и многие другие являются текстовыми протоколами, там так же можно определить протокол по содержимому пакета.
    В двоичных протоколах такой метод то же может работать, только анализировать нужно уже двоичную информацию, а не текстовую.
    В любом случае для анализа нужно знать сам протокол хоть текстовый, хоть двоичный.
    Но, конечно, не все так можно определить. Например, если любой из протоколов спрятан за SSL, то снаружи вы увидите шифрованный трафик, а что внутри без расшифровки понять уже не возможно.

    Кроме того определение протокола по номеру порта - так себе идея, т.к., наверное, любой сервер поддерживает возможность смены порта.
    Ответ написан
    Комментировать
  • Изменение прав доступа у определенной группы в Linux?

    @res2001
    Developer, ex-admin
    Для этого эту определенную группу нужно сделать группой владельцем.
    В никсах права работают не так как в винде, где можно любой группе/пользователю дать любые права.
    В никсах есть только владелец, группа владелец и другие, вот этими понятиями и нужно оперировать.
    Владельца и группу менять с помощью chown.
    Ответ написан
    Комментировать
  • Как приблизить Linux Ubuntu до Windows?

    @res2001
    Developer, ex-admin
    Обычно пользователи в офисе не работают с операционной системой, они работают с софтом, установленным в ОС. Пользователю пофиг как выглядит ОС, главное, чтоб на раб.столе он нашел ярлыки запускающие нужный ему софт.
    Поэтому ваша основная задача - заставить работать используемый софт под линукс.
    Возможно, для части софта есть версии для линукс.
    Какую-то часть софта можно попробовать запустить через wine.
    Что-то может совсем не работать под линукс.

    Достойного аналога MS Office в природе не существует. Но если у вас MS Office используется для создания простых документов в ворде и выравнивают с помощью пробелов, и ексел используется как текстовый редактор для таблиц, то любой вариант линуксового офиса вам подойдет.
    Если в офисных документах используются макросы, сложные диаграммы и т.п. фичи MS Office, то нужно будет либо все переделывать на линуксовый офис (для многих вещей из MS Ofiice аналогов просто нет), либо оставаться на MS Office. Обычно, сложные документы из MS Office криво открываются и работают (если вообще работают) в линуксовом офисе.

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

    Переход на Линукс тема достаточно сложная и с ходу обычно не решается.
    Ответ написан
    1 комментарий
  • Как восстановит файл xls?

    @res2001
    Developer, ex-admin
    Из бэкапа.
    Не ведитесь только на вымогательства трояна, обычно это ни к чему не приводит.
    Ответ написан
    1 комментарий
  • Каким образом организовать терминальный сервер на Linux?

    @res2001
    Developer, ex-admin
    Вы путаете терминальный доступ и виртуальные машины.

    На линуксе вы можете предоставлять терминальный доступ только к линуксу (ssh, VNC). ssh - только консоль, VNC - тормозной, никогда не использовал его для работы пользователей, думаю счастья у них не прибавиться. Хотя в локальной сети, возможно, будет нормально работать.

    На гипервизоре под линуксом вы можете поднять любую ОС в качестве ВМ и раздавать доступ к ней. Поднимите нужное количество виндовых ВМ, подключайтесь к ним по RDP.
    Сервер с гипервизором не стоит использовать в других целях (SQL, Дело, ...) - просядет производительность и ВМ и других служб.
    Кстати: разве "Дело" работает на линуксе? На сколько помню, там исключительно винда, т.к. .Net/IIS/MSSQL.
    Ее то же будете поднимать на виртуалке?

    Вам было бы удобней поднять на сервере Windows Server в качестве терминального сервера и использовать RDP для подключения клиентов. Но Windows Server стоит денег и лицензии на терминальное подключение то же не бесплатные.
    Если сервер достаточно мощный, а одновременно работающих клиентов относительно не много и у них "легкие" задачи, то на сервер можно повесить и дополнительный функционал.

    Если будете покупать железный сервер, то рекомендую сразу же включить в комплект Windows Server и лицензии для терминального подключения. Так бывает проще протащить покупку нужного ПО - вместе с железом без которого обойтись нельзя.

    На счет проброса USB портов с ключами шифрования - могут быть проблемы. Только вариант с Windows Server + RDP + локальный USB порт сервера для ключей дадут гарантию работоспособности. Но часто по разным причинам невозможно использовать порты сервера. Нужно сначала тестировать ту конфигурацию, на которой вы остановитесь.
    Ответ написан
    2 комментария
  • Как открыть порт на ПК используя VPS?

    @res2001
    Developer, ex-admin
    без установки драйверов и прочего

    Никак.
    Какое-то "прочее" все равно потребуется.
    На VPS поднимаете ВПН сервер, все ПК цепляете к нему и можете открывать порты внутри ВПН вполне безопасно.
    Я советую OpenVPN, но есть и другие варианты.
    Для OpenVPN есть и сервер и клиент как по Вин так и под Линукс. Так же клиенты есть и под Андроид и iOS.
    Ответ написан
  • Какие макросы у линухи и винды?

    @res2001
    Developer, ex-admin
    Смотри тут.
    Ответ написан
    Комментировать
  • Не могу удалить папку владельцем которой являюсь?

    @res2001
    Developer, ex-admin
    Папка может не удалятся, например, потому что она открыта в другом процессе.

    Вообще все работает противоположно тому, как вы описываете.
    Проведите реальный эксперимент и убедитесь, что разграничение прав есть.
    Ответ написан
    2 комментария
  • Слетает маршрутизация vpn через Yota, подбросьте идей?

    @res2001
    Developer, ex-admin
    На прямую роутер не может изменять таблицу маршрутизации на вашем хосте.
    Возможно прокисает аренда DHCP, хост повторно запрашивает аренду адреса, при этом, возможно, сам хост изменяет маршруты. Попробуйте задать статический IP на хосте.
    Если так, то виноват не роутер, а специфика реализации IP стека на линуксе.
    Ответ написан
    4 комментария
  • Связь между cpp файлами? Как можно получить и записать значение переменной из одного cpp в другой?

    @res2001
    Developer, ex-admin
    Возвращайте значения из одной функции и передавайте их в другую как параметры.
    Вернуть 2 значения можно в структуре или с помощью входных параметров ссылок. Пример.
    void writeCfgFile(int & directX, int & analogX){
           analogX =6;
           discretX=8;
    }
    void writeBinaryFile(int directX, int analogX) {
    }
    main() {
    int analog, direct;
    writeCfgFile(direct, analog);
    writeBinaryFile(direct, analog);
    }

    Когда нужно возвращать много значений, то их объединяют в структуру и точно таким же образом заполняют структуру.
    Глобальные переменные - это, конечно, просто и работает, но это не правильный подход.
    Ответ написан
    Комментировать
  • Как быстрее скопировать 600 тысяч файлов на удаленный сервер?

    @res2001
    Developer, ex-admin
    Объедините их в один файл без сжатия и копируйте один файл, потом распакуете.
    tar может это сделать.
    Ответ написан
    5 комментариев
  • Выбор ос. Windows 10 или Linux?

    @res2001
    Developer, ex-admin
    На вопрос вам никто не ответит, кроме вас. Что хотите то и ставьте.
    Что больше нужно, что больше нравится, чем лучше владеете.
    Можете поставить обе системы сразу, можете одну в виртуалку. Можете wine или WSL. Выбор за вами.
    Кто знает, что вы собираетесь делать за компом?

    В вин10 есть Windows subsystem for Linux - там убунту под капотом (сейчас вроде уже не только убунту - есть выбор), только без графики. Это лучше, чем bash for Windows.
    В винде то же можно перетащить пользовательский профиль на другой диск без проблем. Тут неоднократно об этом писалось.
    Из "дебианобразных" тут советуют Ubuntu или linux mint.
    Ответ написан
    Комментировать
  • Какие opensource решения для почты на серврере (imap и smtp) кроме devcot + postfix сущестуют?

    @res2001
    Developer, ex-admin
    Ваш вариант вполне не плох. Возможно dovecot + exim был бы лучше, но в плане настройки примерно так же. Включите логирование на сервере и клиенте и исправляйте ошибки конфигурации.
    Инструкций разных полно в интернете, ищите.
    Ответ написан
    Комментировать
  • Скажите, с чего начать изучение Linux?

    @res2001
    Developer, ex-admin
    Основное преимущество - в бесплатности. Минусов то же хватает, как и везде.
    На счет будущего - врут. Линукс вполне актуален для определенного круга людей, вряд ли что-то изменится в ближайшие годы в этом плане.
    Поставьте Убунту в виртуалку (или любой "десктопный" дистрибутив). Самое первое что нужно - освоить менеджер пакетов для установки дополнительного софта, в разных семействах дистрибутивов они разные.
    Программистом быть не надо, нужно немного привыкнуть.
    Для того что бы настроить систему как-то не стандартно потребуется командная строка и ручное редактирование конфигов.
    Ответ написан
    3 комментария
  • Как из программы на c++ отправлять ответ на запрос в консоль linux?

    @res2001
    Developer, ex-admin
    Генерируйте random_port > 1024 и запроса на ввод пароля не будет.
    Ответ написан
    Комментировать
  • Какие книги почитать про программирование для GNU/Linux?

    @res2001
    Developer, ex-admin
    То что встречал по make в интернете:
    1. "The GNU make book" на английском.
    2. "Управление проектами с помощью GNU make" на английском, так же есть ее перевод энтузиастами, лежит где-то на гитхабе в "исходниках" на LaTex
    В принципе для достаточно продвинутого написания makefile этого будет достаточно.
    Ответ написан
    Комментировать
  • Как установить лимит на размер проверяемых файлов для grep?

    @res2001
    Developer, ex-admin
    Запускайте через find - findoм можно сделать фильтр и на прошедшие фильтр файлы запускать grep.
    Ответ написан
    Комментировать
  • Как сделать мост из через NAT?

    @res2001
    Developer, ex-admin
    В конфигурационном файле клиента (который на стороне сервера) можно директивой
    iroute 192.168.1.0 255.255.255.0
    указать, что за клиентом доступна соответствующая сеть (адреса для примера).
    директивой
    push "route 192.168.15.0 255.255.255.0"
    указываем что за сервером OpenVPN есть соответствующая сеть
    Ответ написан
    Комментировать
  • Какие дистрибутивы Linux вы посоветуете для практики NASM и C с низким порогом входа?

    @res2001
    Developer, ex-admin
    Для ваших целей не важно какой дистрибутив - внутри на Си у всех POSIX, а на asm - процессорные инструкции и тот же POSIX.
    Берите широко распространенный, с большим сообществом, у которого регулярно выходят новые версии и есть "нормальная" графическая оболочка из коробки. Например Убунту вполне подойдет.
    Т.к. вы "виндузятник", то в любом случае сначала придется привыкать, поэтому современный поддерживаемый дистрибутив вам поможет преодолеть первый этап вхождения.
    Ответ написан
    Комментировать