• Разбираюсь в правах доступа на папки внутри веб-сервера apache в ubuntu, как подружить юзера и www-data?

    hint000
    @hint000
    у админа три руки
    а как канонически правильно-то?
    Правильно так, чтобы минимизировать непредвиденные проблемы.
    muhasa в сущности админ, и теоретически права для него (и для его группы) могут быть в разных частях системы, куда веб-серверу не нужен доступ. Поэтому добавлять www-data в группу muhasa рисковано. Нужно добавить muhasa в группу www-data.
    Теперь другая ситуация. Допустим, есть всё тот же админ muhasa. Но кроме того есть хрен с горы pupkin - пользователь с минимальными правами, но всё же ему нужен доступ только в одну из папок внутри /var/www - к своему сайту. Если добавить pupkin в группу www-data, то этот Пупкин может порушить чужой сайт или получить доступ к чужим данным. В данном случае наоборот, безопаснее добавить www-data в группу pupkin.

    Теперь вы понимаете, что нет универсально-каноничного варианта, зависит от контекста. Поэтому админы не могут написать инструкции на все случаи.
    Ответ написан
    3 комментария
  • Как определить причину медленного открытия страниц в браузере?

    paran0id
    @paran0id
    Умный, но ленивый
    В Хроме нажмите F12, перейдите на вкладку Network, поставьте галочку Disable cache и обновите страницу - увидите, что именно долго грузится.
    Ответ написан
    Комментировать
  • Можно ли проверить почту gmail из bash?

    @rionnagel
    ковырятель
    У меня нормально работает из терминала mutt с gmail, единственное настраивается довольно неочевидно.

    В .muttrc примерно так:

    set realname = "vasya vasya"
    set from = "vasya@gmail.com"
    set use_from = yes
    set envelope_from = yes

    set smtp_url = "smtps://vasya@gmail.com@smtp.gmail.com:465"
    set smtp_pass = "mystrongpassword"
    set imap_user = "vasya@gmail.com"
    set imap_pass = "mystrongpassword"
    set folder = "imaps://imap.gmail.com:993"
    set spoolfile = "+[Gmail]/Вся почта"
    #set postponed = +[Gmail]/All
    set ssl_force_tls = yes

    # G to get mail
    bind index G imap-fetch-mail
    set editor = "vim"
    set charset = "utf-8"
    set record = ''

    Ну и в политиках аккаунта безопасность понизить вроде надо.

    ps... Да, mutt можно использовать в скриптах.
    Ответ написан
    Комментировать
  • Можно ли проверить почту gmail из bash?

    @MechanID
    Админ хостинг провайдера
    при помощи curl --url "imaps://user:password@imap.gmail.com/INBOX;UID=1"
    Ответ написан
    1 комментарий
  • Windows приложения на Mac OS?

    GavriKos
    @GavriKos
    Unity, Unreal, адобовские программы и так есть под макось в нативном виде.
    Про игры - если нет поддержки - то придется очень повозиться и никто не гарантирует результат. Хотя для тех же танков есть решение, НУЖНО ПРОСТО ГУГЛИТЬ.
    hmailserver и вообще все что так или иначе связано с службами/демонами - я бы рекомендовал запускать в родной ОС или в контейнере.
    Даня, не надоело себе в ногу стрелять? ТО wsl, теперь вот это... Используй инструменты по назначению!
    Ответ написан
    Комментировать
  • Нужна помощь c bash. Что в этом коде не так?

    Viji
    @Viji
    Associate DevOps Engineer
    k=$(cat $1 | wc -l)
    
    if [ $k -lt 10 ] && [ $k -gt 1 ]
    then
     echo $1
    fi
    Ответ написан
    8 комментариев
  • Как организовать работу над проектами из любого места?

    trapwalker
    @trapwalker
    Программист, энтузиаст
    Вы, видимо, не так понимаете суть современных систем контроля версий.
    1. Вы настраиваете работающее окружение на работе и дома.
    2. Делаете клоны проекта на работе и дома.
    3. Работаете над проектом, каждое осмысленное изменение коммитите и время от времени отправляете в центральный репозиторий на гитхабе. Каждый раз приступая к работе обновляете локальный клон и продолжаете работать. Если фича требует много изменений, то вы можете сделать несколько коммитов в отдельную ветку и залить ветку на сервер. На другом компе вы тоже можете работать с этой веткой. Ветка лично ваша. У вас может быть много веток. Когда закочите работу над фичей - подольёте изменения в мастер.
    Ответ написан
  • Как создать сокращенный путь до файла в терминале macOS?

    paran0id
    @paran0id
    Умный, но ленивый
    На мой взгляд, правильнее всего было бы добавить /Users/admin/.symfony/bin/ в $PATH
    Для этого в ~/.bash_profile или ~/.bashrc прописать строку:
    export PATH=$PATH:/Users/admin/.symfony/bin
    И сделать source ~/.bash_profile, либо перезайти в терминал.
    Ответ написан
    Комментировать
  • Почему в Linux пользователи могут менять свой пароль командой passwd, если у них нет прав на запись файла /etc/shadow?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    читайте про специальные права доступа SUID и SGID, которые позволяют запускать программы от имени других пользователей. Такой флаг стоит у нескольких программ, из популярных - passwd, sudo

    $ ls -sl1sFa /usr/bin/sudo /usr/bin/passwd
     60 -rwsr-xr-x 1 root root  59640 Mar 22  2019 /usr/bin/passwd*
    148 -rwsr-xr-x 1 root root 149080 Jan 31 17:18 /usr/bin/sudo*


    буква "s" в первой тройке означает, что стоит SUID аттрибут, следовательно программа будет запущена от имени владельца файла (root).

    P.S. Со скриптами такое не работает, только с бинарниками, поскольку скрипты неявно вызывают интерпретатор отдельно.
    Ответ написан
    1 комментарий
  • Как настроить Mikrotik (сайты в локалке)?

    jamakasi666
    @jamakasi666
    Просто IT'шник.
    Это называется Hairpin NAT. По сути добавьте правило в маскарадинг еще одно.
    Ответ написан
  • По какой причине может не стартовать контейнер в докере?

    Контейнер стартует и тут же закрывается.

    Потому, что по умолчанию там выполняется команда /bin/bash, которая без терминала тут же заканчивает исполнение.
    Контейнер вы запускаете в режиме демона (ключ -d)
    Будь там не bash а какая-то долгоиграющая команда, mysqld или nginx, всё бы работало дольше.

    Наверное, вам нужно запустить контейнер и «оказаться» в его шелле:
    docker run -it --rm ubuntu
    • -i интерактивный режим
    • -t подключает виртуальный терминал
    • --rm удалит контейнер сразу, как вы из него выйдете


    Вот два варианта запустить Ubuntu, чтобы контейнер остался висеть:
    docker run -d ubuntu tail -f /dev/null – тут команда-пустышка, которая будет выполняться бесконечно;

    docker run -t -d ubuntu – тут подключён виртуальный терминал и bash не вылетит, а останется работать.
    Ответ написан
  • Как сделать grep в строке которая содержит точку с запятой; ?

    erge
    @erge
    Примус починяю
    • awk '{print $9}' PPP_genes.gff3.txt | head -3 | cut -d";" -f 3

    • awk '{print $9}' PPP_genes.gff3.txt | head -3 | grep -oP ";\KName=[^;]+"

    • awk '{print $9}' PPP_genes.gff3.txt | head -3 | sed 's/.*\(Name=[^;]*\).*/\1/'

    • [[ '`awk '{print $9}' PPP_genes.gff3.txt | head -3`' =~ .*(Name=[^;]+) ]] &&
          echo ${BASH_REMATCH[1]}

    Ответ написан
    Комментировать
  • В чем принципиальное различие NAT и PROXY?

    vvpoloskin
    @vvpoloskin Куратор тега Компьютерные сети
    Инженер связи
    Сосед попросил вас позвонить в газовую службу. Вы - прокси для соседа.
    Несколько соседей попросили позвонить вас в газовую службу. Вы позвонили по первой просьбе, а на другие ответили, что уже звонили. Вы - кеширующая прокси для соседей.
    Сосед взял ваш телефон и позвонил в газовую службу с вашего номера. Вы - NAT для соседа.
    Ответ написан
    3 комментария
  • Как сделать UI на Bash?

    @pfemidi
    Тут могло бы быть краткое описание меня
    Вот направление:

    [pfemidi@localhost ~]$ dnf info dialog
    Last metadata expiration check: 0:00:30 ago on Mon 28 Oct 2019 08:02:00 PM MSK.
    Available Packages
    Name         : dialog
    Version      : 1.3
    Release      : 16.20180621.fc30
    Architecture : i686
    Size         : 234 k
    Source       : dialog-1.3-16.20180621.fc30.src.rpm
    Repository   : fedora
    Summary      : A utility for creating TTY dialog boxes
    URL          : https://invisible-island.net/dialog/dialog.html
    License      : LGPLv2
    Description  : Dialog is a utility that allows you to show dialog boxes (containing
                 : questions or messages) in TTY (text mode) interfaces.  Dialog is called
                 : from within a shell script.  The following dialog boxes are implemented:
                 : yes/no, menu, input, message, text, info, checklist, radiolist, and
                 : gauge.
                 : 
                 : Install dialog if you would like to create TTY dialog boxes.
    
    [pfemidi@localhost ~]$
    Ответ написан
    Комментировать
  • Как лицензируется mssql linux?

    [root@xxx~]# /opt/mssql/bin/mssql-conf setup
    Choose an edition of SQL Server:
      1) Evaluation (free, no production use rights, 180-day limit)
      2) Developer (free, no production use rights)
      3) Express (free)
      4) Web (PAID)
      5) Standard (PAID)
      6) Enterprise (PAID)
      7) Enterprise Core (PAID)
      8) I bought a license through a retail sales channel and have a product key to enter.
     
    Details about editions can be found at
    https://go.microsoft.com/fwlink/?LinkId=852748&clcid=0x409


    Если вы получили лицензию по программе корпоративного лицензирования в рамках Соглашения Enterprise или по подписке MSDN, необходимо выбрать один из вариантов с 4 по 7. На этом этапе вводить лицензию не нужно, однако соответствующая лицензия для вашей конфигурации уже должна быть приобретена. Если вы приобрели выпуск Standard через розничный канал, выберите вариант 8. При этом необходимо ввести ключ.
    Ответ написан
    3 комментария
  • Как удалить вшитый в материнку ключ Windows 10?

    Radjah
    @Radjah
    Как вариант после установки заменить ключ через настройки системы.
    Можно еще попробовать из образа установочного удалить файл \sources\ei.cfg, тогда во время установки должен появиться выбор издания.
    Ответ написан
    Комментировать
  • Mikrotik как разделить трафик между двумя провайдерами для конкретных пользователей?

    @AkaZLOY
    QA Engineer
    Обязательно маркировка трафика через Mangle, далее в роутинге настраиваете таблицу маршрутизации для маркерованного трафика, и 2 правила НАТа для двух исходящих интерфейсов.
    Конкретно для вашего примера, маркеруем нужные пакеты, где bridge1 - интерфейс, где летает пакет:

    ip firewall mangle add chain=prerouting src-address=192.168.1.100 in-interface=bridge1 action=mark-packet new-packet-mark=gateway2

    Добавляем маршрут для маркированного трафика, где ISP2 адрес шлюза:

    ip route add dst-address=0.0.0.0/0 gateway=ISP2 routing-mark=gateway2

    И правило ната для исходящего трафика, где ip - выданный провайдером адрес:

    ip firewall nat add chain=srcnat out-interface=ISP2 action=src-nat to-addresses=IP
    (если адрес серый-динамический, то заменить на action=masquerade)
    Ответ написан
    Комментировать
  • Mikrotik как разделить трафик между двумя провайдерами для конкретных пользователей?

    @Drno
    Маркировка трафика, далее с помощью роутинга
    Ответ написан
    Комментировать
  • Как решить проблему с if..else в bash?

    saboteur_kiev
    @saboteur_kiev Куратор тега Linux
    software engineer
    По умолчанию баш создает все переменные текстовыми, следовательно
    res=$a+$b у вас получается контакенация строк, а не сложение чисел.

    Используйте явное арифметическое сложение через res=$(( $a + $b ))
    либо заранее все переменные задекларируйте как integer через
    declare -i a
    declare -i b
    declare -i res
    declare -i path

    А в идеале и сравнение вместо [[ "$path" = "$res" ]] делайте числовым [[ $path -eq $res ]]
    Ответ написан
    1 комментарий