• Почему на хостинге у многих есть папка public_html и почему она так называется?

    martin74ua
    @martin74ua Куратор тега Linux
    Linux administrator
    Раньше, когда трава была зеленее, интернет меньше и добрее, существовало вот такое в настройках веб сервера:

    # UserDir: The name of the directory that is appended onto a user's home
    # directory if a ~user request is received.
    #
    # The path to the end user account 'public_html' directory must be
    # accessible to the webserver userid. This usually means that ~userid
    # must have permissions of 711, ~userid/public_html must have permissions
    # of 755, and documents contained therein must be world-readable.
    # Otherwise, the client will only receive a "403 Forbidden" message.
    #
    # See also: httpd.apache.org/docs/misc/FAQ.html#forbidden
    #


    Т.е. можно было просто получить логин на сервер, где был запущен веб сервер и получить домашнюю страничку вида:
    example.com/~username

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

    trapwalker
    @trapwalker
    Программист, энтузиаст
    По-хорошему, надо знать то, что потребуется для работы.
    Обычно это понимание как работает командная строка, терминал, ssh.
    Немножко вглубь: файлы, дескрипторы, файловая система, монтирование, симлинки, хардлдинки, пайпы, конвейеры, синтаксис перенаправления между стандартными потоками ввода/вывода, базовые утилиты командной строки (grep, ls, tee, tail, cat и т.д.), желателен какой-то опыт работы со всем этим, понимание как обычно устроен механизм передачи параметров в таких утилитах, как их выстроить в конвейер, как запаковать\распаковать поток данных на лету. Желательно понимать что такое, как устроены и для чего нужны make-файлы.
    Нужно понимать как пользоваться менеджерами пакетов основных дистрибутивов, желательно в общих чертах понимать что такое докер, контейнеризация в целом, ориентироваться в командах управления образами и контейнерами, понимать что такое вольюмы и где их искать, уметь читать докер-файлы и компоуз-файлы, понимать как вообще это всё работает. Ну и GIT нужно уметь использовать.

    Это основа, но наверно от джунов всего списка никто ожидать не будет - обучат по ходу дела, а если вы претендуете на большее, то сможете быстро разобраться в нужных вопросах, если претензии ваши обоснованы, а пробелы обнаружились.
    Ответ написан
    6 комментариев
  • Как правильно работать с ветками?

    AshBlade
    @AshBlade
    Просто хочу быть счастливым
    Для пет проекта достаточно 2 веток - master и dev:
    - master - работающий код, красивый, причесаный
    - dev - в нем ведется вся работа

    Нет смысла упарываться во всякие git flow, github flow и еже с ними. Над проектом работаешь ТОЛЬКО ТЫ, а значит делать надо как тебе удобнее.
    Думать об этом надо только если над одним проектом работает больше 1 человека.

    P.S. можно и одной веткой обойтись, но так удобнее откатываться и точно знаешь, что рабочий код не затронется
    Ответ написан
    Комментировать
  • Что это такое и как защититься?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    По двору прошелся жулик и попытался хакнуть эксплойтом для "майбаха" (условно) все тачки в вашем дворе. Майбахов не нашлось, этот жулик пошел дальше и забыл уже про ваш дворик.

    Надо ли защищаться от атаки, не релевантной вашему сетапу? Не надо.
    Надо ли делать выводы об уязвимости того или иного оборудования? Надо.
    Надо ли проверять свои конфигурации на эксплойты? Надо.
    Надо ли реагировать на всякую нерелевантную хрень в логах с ошибками порядка 400? Не надо.
    Надо ли позаботиться об оркестрации быстрого развёртывания ваших серверов на случай взломов или проблем с железом? Конечно надо!

    Вообще, если ваш сетап на виртуальных машинах в повторяемой среде и с декларативной конфигурацией вроде кубера или докера, то вы легче сможете пережить всякие такие факапы.
    Схема такая.
    Есть признаки взлома - бэкап логов, снапшот базы, бэкап стораджа, остановка сервисов (если позволяет продакшн), анализ атаки и последствий. Устраняем уязвимость по вектору атаки (гугление по логам и курение тредов), правим конфиги развёртывания и запускаем прод. Потом долго и тщательно разбираемся по логам, снапшотам и бэкапам что затронуто. Делаем тестовый чистый сетап по старой конфигурации и сравниваем пофайлово с атакованной системой, выясняем в какие места вмешались злодеи. Дифаем базу и смотрим на подозрительные различия. Делаем выводы, объявляем об утекших данных, если есть такие признаки (чтобы не подставлять пользователей), принимаем превентивные меры против похожих векторов атак.

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

    Это взгляд дилетанта по безопасности, если чего пропустил -- поправьте. Если где не прав -- расскажите.
    Ответ написан
    3 комментария
  • Dockerfile как задать ограничение памяти?

    @0x0f80
    В Dockerfile напрямую нельзя задать ограничение на использование памяти. Dockerfile используется для создания образа, а ограничения ресурсов применяются на уровне контейнеров, когда они запускаются из образа.
    Ответ написан
    Комментировать
  • Dockerfile как задать ограничение памяти?

    В Dockerfile — никак.

    Либо в параметрах запуска контейнера Runtime options with Memory, CPUs, and GPUs

    Либо в docker-compose файле см. секцию deploy Например:
    services:
      frontend:
        image: example/webapp
        deploy:
          resources:
            limits:
              cpus: '0.50'
              memory: 50M
              pids: 1
            reservations:
              cpus: '0.25'
              memory: 20M
    Ответ написан
    Комментировать
  • Как узнать реально занятое место файлами?

    karabanov
    @karabanov Куратор тега Linux
    Системный администратор
    ncdu
    Ответ написан
    Комментировать
  • Как узнать реально занятое место файлами?

    @pfg21
    ex-турист
    $ df -H /dev/sda2

    с забитостью разделов помогает консольная ncdu прекрасно работает чеез ssh
    есть аналоги и с гуевым интерфейсом.
    Ответ написан
    1 комментарий
  • Как настроить ansible для Firewalld?

    ky0
    @ky0
    Миллиардер, филантроп, патологический лгун
    Не должны Ансибл волновать никакие "уже существующие порты". Всё необходимое для использования в модуле фаерволла должно быть перечислено в инвентори, а не добываться через задний проход башизмами с регулярками.
    Ответ написан
    Комментировать
  • Как отследить падение Апача и перезапустить его?

    @q2digger
    никого не трогаю, починяю примус
    monit
    Ответ написан
    8 комментариев
  • Как выйти из двух пользователей в Linux, и при этом выполнить команду один раз?

    shurshur
    @shurshur
    Сисадмин, просто сисадмин...
    И не будет, ведь такая команда будет исполняться в одном shell, а не в двух разных. После первого exit дальше уже всё, остаток будет проигнорирован.

    Способы есть:

    1. Из суперпользователя убить shell пользователя. Некрасиво и неудобно, но закроет оба шелла.

    2. Переключение в суперпользователя оформить сразу с выходом, тогда выход из внутреннего сделает выход и из внешнего, например:

    sudo -i; exit

    Недостаток - если не удастся правильно ввести пароль - сразу же и выкинет. Ну, можно поразбираться с кодами возврата, чтобы не делать exit.

    3. Вместо предыдущего можно сделать exec, тогда запускаемая команда заместит текущий shell, а не будет запущена как дочерний процесс:

    exec sudo -i

    Недостаток тот же - если не ввести правильно пароль, то выкинет.

    Но в целом я не вижу во всём этом смысла. Выход можно делать комбинацией Ctrl-D. Нажать дважды Ctrl-D ничто не мешает, это даже удобнее.
    Ответ написан
    2 комментария
  • Как код from datetime влияет на ошибку?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Модуль называется datetime, в нем лежит класс datetime. Никакой разницы по сравнению с обычными библиотеками, в принципе, нет. Хотите, импортируйте полностью datetime, тогда для использования методов класса datetime, придется обращаться к классу полностью: datetime.datetime.now(). Хотите, импортируйте только класс datetime, тогда будете обращаться сразу к нему: datetime.now()

    В коде, соответственно, тоже можно использовать один из этих двух вариантов

    1.
    import datetime 
    datetime2 = datetime.datetime.now()  
    datetime2 = datetime2.strftime("%Y-%m-%d %H:%M")  
    dateFormatter = '%Y-%m-%d %H:%M' 
    dateString = "2022-02-9 20:00"
    
    spisok_start_date = datetime.datetime.strptime(dateString, dateFormatter) 
    datetime2 = datetime.datetime.strptime(datetime2, dateFormatter) 
    timedelta =  datetime2 - spisok_start_date


    2.
    from datetime import datetime 
    datetime2 = datetime.now()  
    datetime2 = datetime2.strftime("%Y-%m-%d %H:%M")  
    dateFormatter = '%Y-%m-%d %H:%M' 
    dateString = "2022-02-9 20:00"
    
    spisok_start_date = datetime.strptime(dateString, dateFormatter) 
    datetime2 = datetime.strptime(datetime2, dateFormatter) 
    timedelta =  datetime2 - spisok_start_date


    Если больше ничего не нужно, кроме класса datetime, то логично было бы сделать from datetime import datetime, чтобы избежать вот такого вот расстянутого кода
    Ответ написан
    2 комментария
  • Что такое LF, CLRF и как с этим бороться?

    Adobe
    @Adobe
    php developer
    Я когда первый раз брался за это дело, тоже без мата не получалось. Времени кучу убил на все разбирательства.
    Это директивы перевода строк. Чтобы не было косяков между винды/юниксы/маки и прочих в переносах строк.
    Я себе в конфиге сделал autocrlf = false и больше меня не мучил этот вопрос.
    Ответ написан
    7 комментариев
  • Как корректно изменить права во всей системе, чтобы others не могли ничего делать?

    @AlexVWill
    chmod -R 770 / - корректно будет?

    если хочешь всю систему нахрен завалить чтобы она не работала - то да
    а ответ на твой вопрос - не надо ничего делать специально, что ты хочешь - система уже по умолчанию делает, не мешай ей работать
    Ответ написан
    Комментировать
  • RDM, mRemoteNG, XShell, RoyalTS, SecureCRT, MobaXterm и прочие. Голова кругом, давайте разбираться. Что посоветуете?

    @xenon007
    Я исключительно за MobaXterm! Хоть он и платный, но там есть очень вменяемая поддержка, которая из 3х запросов улучшений выполнила все 3. Очень приятно! Никуда он не закроется
    Ответ написан
    2 комментария
  • Где найти недостающие куски пазла, что лежат между сеньором и архитектором?

    sergey-gornostaev
    @sergey-gornostaev
    Седой и строгий
    Прежде всего, нет никакого "между". Сеньор - это грейд, а архитектор - это должность. Программисты в архитекторы не вырастают, а уходят, как и в менеджмент. По сути же вопроса, парадигмы, шаблоны проектирования и прочее можно выучить по книжкам, но по-настоящему понять можно только попав в условия, для которых они были придуманы. То есть это больше практический навык длительной работы в крупных, быстроизменяющихся проектах с большой командой. Ну, и стоит заметить, что проектирование систем - это не столько код, сколько стандарты, спецификации, схемы и ооочень много общения с бизнесом, разработкой, эксплуатацией, безопасниками и т.д. и т.п.
    Ответ написан
  • Как наработать навык декомпозиции задач?

    mayton2019
    @mayton2019
    Bigdata Engineer
    Программирование - это как плаванье. Ты сколько книжек не читай - все равно программистом не станешь.
    Ты просто должен сесть и начать программировать. Прыгнуть в воду и плыть.

    По поводу декомпозиции. Обычно такой вопрос возникает когда кода много или когда задача большая.
    Эта декомпозиция идет параллельно со знанием таких частей ООП как Single-Responsibility, и структурных
    шаблонов проектирования
    . Начни это применять и декомпозиция сама собой пойдет.

    Чаще заказывай code-review своего кода и слушай советы старших коллег. Даже если обидно и стыдно.
    Слушай. Записывай и потом применяй.

    По поводу Алгоритмов и Структур данных. Почитай Никлауса Вирта. Он как раз такую книгу и написал.
    Ответ написан
    Комментировать
  • Как полностью убрать приветственную страницу nginx?

    @historydev Автор вопроса
    Острая аллергия на анимешников
    Нужно удалить именно файл, а лучше добавить на его место заглушку:
    /usr/share/nginx/html/index.html
    /var/www/html/index.html
    Ответ написан
    Комментировать
  • Стоит ли начинать карьеру с трудоустройства по договору ГПХ?

    vabka
    @vabka
    Токсичный шарпист
    Опыт работы, особенно подтверждаемый, очень важен в трудоустройстве,

    Подтверждаешь опыт ты скиллами, а выписку из трудовой книжки буквально никто не просит при найме.
    станет ли это проблемой?

    Конкретно это проблемой не станет.

    чтобы в мой опыт работы поверили будущие наниматели?

    Наниматели и так верят наслово тому, что пишется в резюме, тк нет веских причин не верить.
    Ответ написан
    5 комментариев
  • Почему ssh запрашивает пароль, если в настройках это выключено?

    @historydev Автор вопроса
    Острая аллергия на анимешников
    Нашёл проблему, у меня в файле подключался ещё один конфиг Include /etc/ssh/sshd_config.d/*.conf

    Он включает вход по паролю, мои настройки шли после подключения этого файла, однако они не перезаписали его почему-то.
    Ответ написан
    1 комментарий