reload_flag=""
if [[ -n "${DEBUG}" ]]; then
reload_flag="--reload"
fi
if [[ -n "${WORKER_COUNT}" ]]; then
workers=${WORKER_COUNT}
else
workers=2
fi
gunicorn --workers ${workers} \
--bind 0.0.0.0:8000 \
${reload_flag} main.wsgi
Писали такие конструкции чтобы проверить наличие флага и сформировать команду правильно?
На самом деле можно сделать тоже самое проще. Для этого используются операторы условной подстановки, доступные в оболочках семейства POSIX.
:- для установки значений по умолчанию
${WORKER_COUNT:-2}
Если переменная не объявлена, то будет дефолтное значение 2.
:+ подставляет указанный текст, если переменная не пуста
${DEBUG:+--reload}
Если что-то есть в переменной то распечатается текст после символа +, в противном случае - ничего. Удобно для опциональных флагов, как в нашем примере.
Итого наш скрипт может выглядеть так:
gunicorn --workers ${WORKER_COUNT:-2} \
--bind 0.0.0.0:8000 \
${DEBUG:+--reload} main.wsgi
Есть еще два оператора.
:= не только подставить дефолтное значение, но и присвоить его переменной, если она пуста
# никаких переменных еще нет
VAL1=${VAL2:=hello}
# теперь доступны обе
echo $VAL1 $VAL2
# hello hello
:? остановить выполнение с ошибкой, если переменной нет.
echo ${MISS:?is required}
bash: MISS: is required
Код выхода будет 1.
#tricks#linux
👨💻 Attacking MongoDB.
• MongoDB — это кроссплатформенная документо-ориентированная система управления базами данных. Относясь к категории NoSQL, MongoDB отказывается от традиционной таблично-ориентированной структуры реляционных баз данных в пользу JSON-документов с динамическими схемами, что делает интеграцию данных в приложениях более быстрой и простой.
• Поговорим о защищенности MongoDB. На самом деле MongoDB безопасна в использовании, если вы знаете, что искать и как это настраивать.
• Enumeration:
➡Nmap MongoDB Brute Force Attack;
➡Metasploit MongoDB Login Scanner;
➡Shodan Search for MongoDB Instances;
➡Manual MongoDB Interaction via PyMongo;
➡Common MongoDB Commands;
➡Automating MongoDB Enumeration with Nmap.
• Brute Force:
➡MongoDB Login Methods;
➡Checking for MongoDB Authentication Using Nmap;
➡Manual Brute Forcing;
➡Lack of Authentication in MongoDB Instance.
• Disable Unused Network Interfaces;
• Enable Access Control (Authentication);
• Enable SSL/TLS Encryption;
• Disable HTTP Interface;
• Enable Audit Logging:
➡Set Appropriate File Permissions;
➡Disable Unused MongoDB Features;
➡Enable Firewalls and Limit Access to MongoDB Ports.
• Exploiting Default Admin Users;
• Exploiting Misconfigured Role-Based Access Control (RBAC);
• Leveraging File System Access via MongoDB;
• Leveraging MongoDB API and Insecure Bindings;
• Misconfigured Backup Systems.
#MongoDB#devsecops
https://github.com/MongoEngine/django-mongoengine
THIS IS UNSTABLE PROJECT, IF YOU WANT TO USE IT - FIX WHAT YOU NEED
Right now we're targeting to get things working on #Django 1.9
#mongodb
#databases#MongoDB
💼
Learning MongoDB
Get started with MongoDB. Learn how to use this popular nonrelational database to power your full-stack development workflow.
⏳2h 44m
🗣Justin Jenkins
🔗Link
-----
Main channel:@repo_science
Coupons: @freecoupons_reposcience
-----
Awesome MongoDB, a curated list of resources, libraries, tools and applications.
#resources#list#mongodb#database
@thedevs
https://kutt.it/awesome-mongodb
http://mongoengine.readthedocs.io/en/latest/index.html
#MongoEngine is an Object-Document Mapper, written in #Python for working with #MongoDB. To install it, simply run
#Django