Ответы пользователя по тегу Linux
  • Чем заменить службу файлового сервера на Windows?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Сильно сомневаюсь, что существует хороший аналог ntfs прав в линукс среде.
    Базовые права там совсем не такие, а селинукс для этого решения слишком громоздкий.
    поддержка ntfs на линуксе не совсем полноценная, она просто достаточная для многих случаев, но прям не полный аналог.

    Лучше немного отступить от своей текущей конфигурации, и посмореть можно ли реализовать свои хотелки именно в рамках стандартов самба + стандартные POSIX права доступа.
    Ответ написан
    Комментировать
  • Почему мой линукс, команда ">" не работает?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Что-то не то с вашей консолью. | и > редиректят совершенно одинаково, не может одно работать, другое не работать.
    Или что-то у вас еще вокруг хелма делается или непонятно.
    Ответ написан
    Комментировать
  • Какие есть инструменты для написания интерфейса для терминала?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    FAR точно не использует движок.
    Консольные интерфейсы достаточно легко отрисовывать самостоятельно, и готовые библиотеки в основном нужны для простых прикладных приложений.
    Для системных, зачастую нюансов много, проще что-то быстро накидать самому.

    И да, FAR под Линукс есть уже давно, а недавно уже прямо в официальных репозиториях начинает появляться.

    Вот чисто на баш отрисовал
    https://asciinema.org/a/468242 (https://github.com/sfkulyk/jks-manager)
    Ответ написан
  • Как происходит управление перемещением программ в пользовательском пространстве?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Это зависит от ОС и зависит от типа программы.
    Программы могут быть разные, исполняемые файлы могут быть разного типа.

    В общих словах да, ОС читает сигнатуру, определяет тип исполняемого файла, затем выполняет загрузку согласно этому типу - читает заголовки, загружает нужное и передает управление.
    Не обязательно все грузится в память, так как некоторые программы подгружают ресурсы по мере надобности, даже если они прямо в исполняемом файле, а в Линукс можно отобразить файл в память.

    Для виндовс, почитай про PE формат - это основной формат исполняемых (.com был в ДОС, там было очень просто но он уже не используется)
    https://en.wikipedia.org/wiki/Portable_Executable

    Вот еще хорошая статья
    https://medium.com/@db2crush/process-of-loading-pr...
    Ответ написан
    Комментировать
  • Как вызвать source при выполнении .sh файла?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Так вы source загрузили, а потом запускается новый баш, в котором уже ничего не загружено
    exec bash --login

    Или я что-то не понял?
    Ответ написан
    Комментировать
  • Как добавить систему аккаунтов в Linux Kernel?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Авторизация в линукс идет через модуль pam
    в /etc/pam.d и должны быть конфиги какие библиотеки вы используете. Локальных юзеров (/etc/passwd) или ldap или active directory или что-то еще подключили.
    Ответ написан
    2 комментария
  • Как включить режим высокой производительности?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Так в общем смысле и нет разницы.
    Разница бывает только в частном. Например баш скрипты быстрее работают в линукс. Докер быстрее работает в Линукс. Потому что написано под Линукс и использует фичи архитектуры Линукс.

    А среднестатистический рендеринг, например, будет зависеть сугубо от процессора или видяшки, а не от ОС.

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

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Нужно определиться зачем вы планируете изучить детально систему - вы собираетесь заняться системным программированием?
    ИЛи прикладным? Если прикладным, то для GUI приложений просто осваиваете любой фреймворк, типа qt, который работает в Линукс и пишете.
    Библиотеки для С++ есть и там и там.
    Ответ написан
    2 комментария
  • Как изменить консоль по умолчанию linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    init это не консоль, это процесс ядра операционки.

    оболочка bash запускается после того, как юзер залогинился, и дефолтная оболочка указывается для юзера в /etc/passwd. И это тоже не консоль.

    Нужно разобраться с терминологией и что именно нужно сделать.
    Ответ написан
    Комментировать
  • Резервный backup с windows на linux?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    та банально можно по ssh скопировать.
    На виндовс есть scp, rsync которые скопируют файлы или директории или посинкают их.
    При этом ставить ничего не нужно, бинарники для винды можно просто скачать, много вариантов.
    Ответ написан
    2 комментария
  • Алгоритм или бестпрактис для синхронизации .dotfiles?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer

    Предполагаю, что можно сделать его зашифрованным через openssl и именно его синхронизировать или даже версионировать через git (или оставить текущую схему с ансибл). При входе в систему расшифровывать его, кладя в RAM и подключать через "source .bashrc". Работать. После окончания рабочего дня расшифрованный файл надо удалить (ну или изначально при начале работы класть его в RAM).
    Но в этот файл регулярно вносятся изменения, бывает раз в день, а бывает лишь один раз в месяц.


    Не самый плохой вариант шифровать через openssl.
    Только зачем расшифровывать файл? Расшифровывайте прямо в память во время использования

    то есть в .bashrc можно например так

    dbuser=database_user
    dbpass="$(openssl enc -d -base64 -aes-128-ctr -nopad -k secret_key.txt<<<"l1k2j3kl14jjkl321h4lk124123;ljk2`13jlkj")"

    Синтаксис из головы написал, надо уточнить как указать путь к файлу с мастер секретом.
    При этом файл остается зашифрованным, но в текущей сесии переменная уже с открытым паролем.
    Либо можно сделать несколько файлов подобного типа и инклюдать их в скрипты прямо перед использованием.
    Ответ написан
    Комментировать
  • Куда приложение Обо мне(mugshot) записывает данные о созданном пользователе?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    да, можно в /etc/passwd - там есть поле gecos

    username:password:userid:groupid:gecos:home-dir:shell

    которое даже имеет под-поля разделенные запятой, где можно указать дополнительную инфу:
    username:password:userid:groupid:FullName,RoomAddress,WorkPhone,HomePhone,Others:home-dir:shell

    некоторые команды умеют ее оттуда доставать, например почтовые клиенты или finger
    Ответ написан
    Комментировать
  • Как правильно составить cron задачу?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Все верно, "0 10 1-7 * 4"
    Ответ написан
  • Почему не запускается приложение на linux alpine?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    пиши ldd seeker

    Скорее всего он не может найти необходимые динамические библиотеки, что покажет ldd (именно поэтому ругается на not found).
    Либо не подходит архитектура, либо не хватает каких-либо зависимостей, которые следует доустановить.
    Ответ написан
    Комментировать
  • Как добавить право записи для группы в Bash скрипте?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    /var/log может содержать логи с небезопасной информацией. Поэтому давать доступ группе надо только если все кто в группе доверенные лица.
    Или запускай скрипт от рута.
    Ответ написан
    Комментировать
  • Почему на хостинге у многих есть папка public_html и почему она так называется?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Даже по названию папки понятно откуда она так называется. public слово понятно, html понятно.
    Дефолтные настройки веб сервера для персональных страничек пользователей.
    При включении они доступны по адресу www.site/~username
    Ответ написан
    Комментировать
  • Какую выбрать систему мониторинга для работы за NAT для небольшого разношерстного парка?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    grafana. Обычно она уже идет с influxDB, можно метрики слать напрямую в influxDB через его АПИ
    Ответ написан
  • Как вырезать слова из вывода?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    у меня так сработало
    sshd -T | grep -oiP '[a-z0-9-.]*etm@[a-z0-9-.]*'
    Ответ написан
    Комментировать
  • Какая утилита подобна wget, но умеет делать upload дерева файлов по https?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    прикол в том, что http в принципе не знает что такое файловая система, поэтому нужно писать скрипт, который оббежит ваши каталоги и зааплоадит файлы по одному.
    Либо архивировать каталог и заливать уже архив со всем внутри, как это делают
    Ответ написан
    Комментировать
  • Context switch per second (Linux) 1.3млн это много или мало?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    Нужно понимать как работает многозадачность и распределение процессорного времени по ядрам.
    В Линукс довольно сложно посчитать реальную занятость процессора.
    В сам свитчинг ничего упираться не может, точнее нет каких-то специальных лимитов. Это обычная процессорная занятость, относящаяся наверное к system cpu usage, но это неточно. Чем быстрее процессор, тем быстрее он может выполнять свитчинг и тем больше свитчингов в секунду может быть выполнено, это просто выполнение инструкций процессора вне рамках процессов, а внутри ядра системы, точнее process scheduler.

    Но проблема в том, как именно распределяется процессорное время. process scheduler в ядре линукса выделяет слайсы примерно по 10-15 милисекунд на процесс, потом переключает на другой. Для процессов, которые что-то активно вычисляют (например архивация), после анализа деятельности может быть выделен более длинный слайс или несколько подряд, то есть уменьшается свитчинг. При этом оценка времени, которая нужна на сам свитчинг - она довольно сложная, ведь для подсчета количество потраченного cpu нужно потратить cpu, и эти 10-15% может на самом деле не существовать.

    Если парралельных процессов очень много и все хотят что-то делать (чекнуть load average), то машина просто не успевает обработать их все, и тратить на переключение приличное количество ресурса, вместо того чтобы непосредственно выполнять код ваших программ.
    Таким образом какого-то определенного лимита на context switching нет, это просто еще одна метрика, которая может подсказать что слишком много одновременно запускаете, можно попробовать оптимизировать.

    Ну или просто не хватает CPU, а система ошибочно показывает свободные ресурсы, которых на самом деле нет.

    Линукс на самом деле не так уж детально может посчитать точное количество ресурсов. Там выполняется все очень просто - на входе в контекст засекается timestamp, на выходе из контекста засекается таймстамп, и потраченное время дописывается в метаданные процесса (для каждого ядра, если процесс многопоточный). Исторические значения не записываются, в метаданных процесса есть только вот это - сколько всего cpu usage с момента старта процесса.
    Если запустить какой-нить top, он будет каждые 1-2 секунды бегать по списку процессов, сравнивать этот параметр и показывать результат загруженности за последние 1-2 секунды, но вот уточнить процесс занял свои 25% cpu плавно в течение секунды, или он занимал 100% cpu первую четверть секунды или третью - вы уже не сможете.

    Ну и само ядро считает свои внутренние потоки так же само.
    И только активность самого process scheduler (то есть cpu затраченное на анализ и переключения процессов) не может быть красиво подсчитана.

    p.s. я не разработчик линукс, поэтому это мое IMHO основанное на наблюдениях и обзорных статьях о работе современного планировщика, если будут гуру которые меня поправят или подтвердят сказанное - будет круто.
    Ответ написан
    Комментировать