Архив автора: admin

3 пункта системного администрирования и почему это должно вас волновать. Курсы по системному администрированию

Вы когда-нибудь пытались объяснить свою работу другу или члену семьи и находили, что это имеет для вас полный смысл, но их глаза тускнеют?

«Я системный администратор, отвечающий за внедрение, обслуживание и управление сложной платформой контентных сервисов».

И тогда невозмутимый ответ: «Ммм… что?»

 

Важность системного администратора

К счастью, вы здесь среди друзей, и мы знаем, что вы играете чрезвычайно важную роль. Без вас люди не смогли бы получить доступ к системам и информации. В принципе, они не могли бы работать.

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

Если у вас плохо получается выполнять обязаности системного администратора, пройдите курсы по системному администрированию в GeekBrains.

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

Вот еще лучший вопрос: когда в последний раз вы говорили со своими конечными пользователями о чем-то, кроме заявки в службу поддержки?

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

Итак, как поддерживать диалог с конечными пользователями, чтобы выявить новые проблемы, необходимые улучшения решения или потребности в новых инструментах? И как сделать эти разговоры максимально эффективными?

 

3 пункта

Вот три пункта, которые следует учитывать:

 

1. Слушать

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

Вот некоторые из этих важных вопросов:

  • Какие у вас проблемы?
  • Где места, где вам нужно искать информацию для выполнения работы?
  • Какие интеграции использует ваш отдел?
  • Есть ли какие-либо изменения в соответствии или правилах, которые влияют на вашу команду?
  • Какие виды отчетов вам нужны для оценки процессов, работы и исключений?

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

 

2. Обучение

После этих содержательных бесед возьмите то, что вы слышали, и узнайте. Вооружившись информацией, вы сможете лучше оценить предыдущие усилия и сравнить их с тем, что изменилось. На самом деле вы можете обнаружить, что проблема не требует полного ремонта.

На агрегаторе курсов CourseList вы можете ознакомиться с отзывами о GeekBrains.

Между тем, поскольку одни люди возвращаются к работе, а другие продолжают работать из дома, нам нужно продолжать учиться и адаптироваться.

 

3. Использование

Возьмите то, что вы узнали, и используйте это, чтобы создать динамическое решение проблемы, помогающее вашей организации и вашим конечным пользователям. Именно эта буква L имеет большое значение для ваших конечных пользователей и вашей организации.

 

Использование 3 пунктов

Слушать, учиться и использовать… В конечном итоге, когда вы удовлетворяете потребности своей организации, решая проблемы эффективности, каждый день становится немного ярче.

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

Итак, в следующий раз, когда кто-то спросит вас, в чем ваша работа, просто скажите: «Мастер по ремонту всего!»



2020-11-30T12:43:14
Сетевые технологии

Тернарный оператор в Python

Тернарные операторы — это встроенные в Python условные операторы, которые используются для оценки определенных условий. Он оценивает, является ли условие истинным или ложным. Как и оператор if-else, это еще один способ определения условных операторов. Тернарный оператор определяется в одной строке. Оператор if-else и тернарный оператор возвращают аналогичный результат. Тернарный оператор был представлен в Python версии 2.5. В этой статье подробно объясняется тернарный оператор Python с примерами.

 

Синтаксис

Давайте сначала обсудим синтаксис тернарного оператора Python. Синтаксис следующий:

[on_true] if [expression or condition] else [on_false]

При использовании тернарного оператора сначала мы пишем имя переменной, значение которой должно проверяться в условии. Оператор on_flase выполняется, когда данное условие не выполняется.

 

Примеры

Теперь давайте посмотрим на несколько примеров, чтобы понять использование тернарного оператора. В приведенном ниже примере мы сравниваем два числовых значения с помощью тернарного оператора.

#обьявление переменной a num1

num1=5

#обьявление переменной a num2

num2=10

#использование тернарного оператора для проверки наибольшего значения

result= num1 if num1>num2 else num2

print("The highest value is: ",result)

 

Тот же пример можно реализовать с помощью оператора if-else. Тернарный оператор выполняет задание в одной строке; однако оператор if-else использует несколько строк кода для одной и той же задачи. Давайте реализуем приведенный выше пример с помощью оператора if-else.

#объявление переменной num1

num1=5

#объявление переменной num2

num2=10

#реализация оператора if else

if(num1>num2):

result=num1

else:

result=num2

#печать самого высокого значения

print("Самое высокое значение-это: ",result)

 

Также может быть реализован вложенный тернарный оператор. Давайте реализуем вложенный тернарный оператор в нашем скрипте Python.

#объявление переменной num1

num1=5

#объявление переменной num2

num2=10

#Реализация вложенного тернарного оператора

print ("num1 больше, чем num2" if num1>num2 else "num1 меньше, чем num2"

if num1==num2 else "Оба числа не равны")

 

Способы реализации тернарного оператора Python

Есть разные способы реализации тернарного оператора Python. Мы можем реализовать тернарный оператор Python, используя кортежи, словари и лямбда-функции. Давайте реализуем тернарный оператор с помощью кортежа. Мы создали две числовые переменные num1 и num2 и сохранили случайные числа в этих переменных. Случайные числа в Python создаются с помощью функции random(). Функция random() присутствует в модуле random.

import random

num1=random.random()

num2=random.random()

#реализация тернарного оператора

print((num1, num2) [num1>num2])

 

По выходным данным мы не можем определить, что это значение num1 или num2. Давайте реализуем приведенный выше код следующим образом:

import random

num1=random.random()

num2=random.random()

print((f"num1:{num1}", f"num2:{num2}") [num1>num2])

 

Хорошо! Теперь давайте реализуем тернарный оператор, используя словарь Python и лямбда-функцию.

import random

num1=random.random()

num2=random.random()

#использование словаря Python

print("Использование словаря Python:")

print(({True:f"num1:{num1}",False:f"num2:{num2}"}[num1>num2]))

#использование лямбда-функции

print("Использование лямбда-функции:")

print((lambda: f"num1:{num1}", lambda: f"num2:{num2}")[num1>num2]())

 

Вывод

Тернарные операторы — это встроенные в Python операторы, которые оценивают данное условие. Это работает как оператор if-else. В этой статье подробно объясняется тернарный оператор Python.



2020-11-30T11:55:12
Python

Ужесточение безопасности для серверов Linux

Как и в случае с любой другой операционной системой, безопасность сетевого оборудования Linux является главной задачей. В этой статье мы дадим несколько рекомендаций о том, как повысить уровень безопасности ваших серверов Linux. Снимки экрана и примеры синтаксиса относятся к системам, в которых работают дистрибутивы Linux на основе Kali Linux, CentOS, RHEL, Ubuntu и Debian.

 

Шифрование данных для большей информационной безопасности

Незашифрованные или незашифрованные данные, которые хранятся или передаются по сети, уязвимы для анализа и извлечения пакетов. По крайней мере, передаваемые данные должны быть скремблированы или зашифрованы с использованием надежного протокола шифрования с ключами и/или цифровыми сертификатами.

Передача файлов должна выполняться по защищенным протоколам, таким как scp, ssh, rsync или sftp. OpenSSH, SFTP или FTPS (FTP через SSL) добавляют Secure Sockets Layer (SSL) или шифрование TLS к стандартному протоколу передачи файлов (FTP). Используя специальные инструменты sshfs и fuse, также возможно смонтировать файловую систему удаленного сервера или ваш собственный безопасный домашний каталог.

Вы можете использовать следующий синтаксис для удаления устаревших служб передачи файлов, таких как NIS или rsh, из вашей системы:

# yum erase xinetd ypserv tftp-server telnet-server rsh-server

 

На серверах Linux на базе Debian или Ubuntu для устранения небезопасных сервисов можно использовать команды apt-get или apt:

$ sudo apt-get –purge remove xinetd nis yp-tools tftpd atftpd tftpd-hpa telnetd rsh-server rsh-redone-server

 

Для данных в состоянии покоя большинство дистрибутивов Linux позволяют зашифровать жесткие диски перед установкой. В Kali Linux выберите параметры «Управляемое использование всего диска» и «Настроить зашифрованный LVM», чтобы настроить диспетчер зашифрованных логических томов.

 

Изолировать сетевые службы

Чтобы ограничить количество других служб, которые могут быть скомпрометированы из-за нарушения безопасности, администраторы Linux должны запускать разные сетевые службы на отдельных серверах или экземплярах виртуальных машин (ВМ). Программное обеспечение для виртуализации, такое как OpenVZ, может быть установлено отдельно в дистрибутивах RHEL и CentOS Linux.

Чтобы еще больше защитить вашу хост-сеть в Kali Linux, вы можете предпринять следующие шаги:

  • Отключите переадресацию IP, установив для параметра ipv4.ip_forward значение 0 в «/etc/sysctl.conf»
  • Отключите переадресацию пакетов при отправке, установив для параметров ipv4.conf.all.send_redirects и net.ipv4.conf.default.send_redirects значение 0 в «/etc/sysctl.conf»
  • Отключите прием перенаправления ICMP, установив для параметров ipv4.conf.all.accept_redirects и net.ipv4.conf.default.accept_redirects значение 0 в «/etc/sysctl.conf»
  • Включите защиту сообщений об ошибках, установив для параметра ipv4.icmp_ignore_bogus_error_responses значение 1 в «/etc/sysctl.conf»

 

Поддерживайте удобство установки программного обеспечения и обновляйте его

Чем больше приложений или веб-служб вы установили, тем выше вероятность стать жертвой уязвимостей программного обеспечения или злоумышленниками, которые могут скомпрометировать ваши программы. Поэтому ограничивайте количество установок, которые вы добавляете в основную систему, только теми приложениями, которые строго необходимы. Команды apt-get и / или dpkg или специальный менеджер пакетов RPM, такой как yum, можно использовать для проверки всего установленного программного обеспечения в вашей системе, и они включают команды для удаления любых нежелательных пакетов или служб.

Вот пример синтаксиса с использованием dpkg и apt-get:

# dpkg –list

# dpkg –info packageName

# apt-get remove packageName

 

Также важно регулярно обновлять и исправлять программное обеспечение, чтобы устанавливать последние исправления безопасности и пользоваться новейшими инструментами и функциями ваших приложений. В системах Debian или Ubuntu Linux можно настроить автоматические обновления для вашего серверного программного обеспечения с помощью команд apt-get или apt:

$ sudo apt-get install unattended-updates apt-listchanges bsd-mailx

 

Используйте расширения безопасности Linux

Linux включает ряд инструментов безопасности, которые могут наложить ограничения на сети и другие программы и защитить от плохо настроенного или скомпрометированного программного обеспечения.

SELinux (Linux с улучшенной безопасностью) предоставляет ряд политик безопасности для ядра Linux, включая гибкий обязательный контроль доступа (MAC). Механизм имеет три режима настройки:

  1. Disabled: защита неактивна.
  2. Permissive: выводит предупреждения при обнаружении проблем.
  3. Enforcing: применяется политика безопасности.

 

Запуск ядра MAC защищает сервер Linux от вредоносных или некорректных приложений, которые могут повредить или разрушить систему.

 

Установите надежную политику паролей

Вы можете использовать команды useradd или usermod для создания и поддержки учетных записей пользователей Linux. Как и в любой ИТ-среде, применяются стандартные критерии надежных паролей (восемь или более символов, сочетание букв, цифр и символов, регулярно меняющееся). Вы можете использовать команду изменения, чтобы настроить количество дней между сменой пароля и датой последнего изменения пароля.

Команда passwd может блокировать и разблокировать учетные записи:

# заблокировать аккаунт

passwd -l userName

# разблокировать аккаунт

passwd -u userName


 

Команда faillog отображает неудачные попытки входа в систему в виде записей журнала сбоев и позволяет администраторам устанавливать пределы ошибок входа в систему.

 

Использовать централизованную аутентификацию

Чтобы защититься от наличия устаревших учетных данных и забытых учетных записей в сети, используйте централизованную систему аутентификации. Такая служба, как OpenLDAP для клиентов и серверов, позволяет администраторам осуществлять централизованный контроль над учетными записями Linux или UNIX и данными аутентификации. Это также позволяет им синхронизировать данные аутентификации между серверами.

Kerberos выполняет аутентификацию в качестве доверенной сторонней службы аутентификации. Он использует политику «криптографического общего секрета», которая предполагает, что пакеты, проходящие по небезопасной сети, могут быть прочитаны, изменены и повторно вставлены. Удаленный вход в систему, удаленное копирование, безопасное межсистемное копирование файлов и другие задачи с высоким риском могут выполняться с использованием криптографии с симметричным ключом.

 

Обеспечьте соблюдение мер физической безопасности

Наконец, не забывайте физические аспекты сетевой безопасности Linux. К ним относятся ограничение физического доступа к центрам обработки данных и оборудованию (авторизованные пользователи, проверка, наблюдение и т. д.). Меры физической безопасности также включают специальные протоколы для защиты сетевого оборудования.

Например, вы можете отключить загрузку серверов Linux с внешних устройств, таких как DVD-диски, компакт-диски или USB-накопители. Для этого вы можете установить пароли загрузчика BIOS и grub, чтобы другие пользователи не могли изменять и отменять настройки безопасности сервера. Вы также можете получить доступ к настройкам безопасности на странице администратора любого внутреннего веб-сервера на материнской плате Linux, чтобы изменить пароли и права администратора по умолчанию.



2020-11-30T11:16:56
Kali Linux

Как найти длину списка в Python

Списки являются одним из наиболее часто используемых типов данных в Python и используются для хранения коллекций элементов одного типа.

В этой статье показано, как определить длину списка.

len() Функция

Python имеет встроенную функцию len() которая возвращает длину заданного объекта. Объектом может быть список , кортеж, строка, словарь и т. Д.

Синтаксис функции len() следующий:

len(list)

Функция принимает только один аргумент. Возвращаемое значение — целое число, которое представляет собой количество элементов в списке.

Вот пример:

capitals = ['Tokyo', 'Sofia', 'London', 'Budapest']

list_len = len(capitals)

print("The list has {0} elements.".format(list_len))

The list has 4 elements.

Использование цикла

Другой способ узнать длину списка — использовать цикл for . Это работает путем установки счетчика и перебора всех элементов списка. На каждой итерации текущее значение переменной counter увеличивается на единицу.

Ниже приведен пример кода, который показывает, как найти количество элементов в заданном списке с помощью цикла for :

capitals = ['Tokyo', 'Sofia', 'London', 'Budapest']
counter = 0

for capital in capitals:
  counter = counter + 1

print("The list has {0} elements.".format(counter))

The list has 4 elements.

Этот метод не очень питонический. Вы всегда должны предпочесть использовать функцию len() .

Выводы

Чтобы узнать длину списка в списке Python, используйте функцию len() .

Если у вас есть какие-либо вопросы или отзывы, не стесняйтесь оставлять комментарии.



2020-11-29T06:13:00
Python

Салаты на новогодний стол — 5 новинок, которые стоит приготовить

Какие салаты вы готовите на новогодний стол? Многие предпочитают не изменять традициям и делают  оливье и селедку под шубой. Безусловно, это вкусно, но иногда хочется внести немного разнообразия. Предлагаем на выбор 5 вариантов салатов – с курицей, со свининой, с рыбой и креветками, с печенью и из овощей. Все эти салата вполне можно приготовить, встречая год Быка, поскольку нигде не используется говядина. Читать

OrderedDict в Python

Структуры данных являются важными компонентами любого языка программирования, которые эффективно хранят данные и управляют ими. Python предоставляет множество встроенных структур данных, например списков, кортежей и словарей, которые помогают программистам создавать эффективные приложения. Словари Python хранят данные в парах ключ-значение. OrderedDict является подклассом класса dict и поддерживает порядок вставленных ключей. Это единственное различие между dict и OrderDict. Диктовка не поддерживает порядок ключей.

OrderedDict сохраняет порядок вставки ключей, и когда мы перебираем OrderedDict, он возвращает ключи в том же порядке. С другой стороны, когда итерация выполняется для dict, ключи возвращаются в случайном порядке. Однако словари теперь упорядочены в версиях Python 3.6 и выше и возвращают значения в том же порядке, в котором они были вставлены. Класс OrderedDict существует в модуле коллекций. Поэтому, чтобы использовать класс OrderedDict, сначала импортируйте модуль collections. Эта статья подробно объясняет Python OrderedDict с примерами.

 

Примеры

Давайте создадим OrderedDict в нашем скрипте Python и добавим данные в виде ключей и значений. Items() — это встроенная функция Python, которая возвращает информацию о ключах и значениях.

# импорт модуля коллекций



import collections



# создание OrderedDict



my_dict = collections.OrderedDict()



my_dict["A"]=1



my_dict["B"]=2



my_dict["C"]=3



my_dict["D"]=4



# объявление цикла for для перебора OrderDict



for i in my_dict.items():



print(i)




В выводе можно заметить, что OrderedDict возвращает ключи и значения в том же виде, что и вставленные.

Теперь давайте создадим еще один OrderDict студента и сохраним в нем информацию о студенте.

# импорт модуля



import collections



# создание OrderedDict студента



std_dict = collections.OrderedDict()



std_dict['name']='AndreyEx'



std_dict['age']=23



std_dict['email']='AndreyEx@example.ru'



std_dict['class']='BS'



# объявление цикла for для перебора OrderDict



for i in std_dict.items():



print(i)




Изменение значений ключей

Мы можем изменить значение конкретного ключа OrderedDict. Если мы изменим значение любого конкретного ключа, порядок ключей останется таким же в OrderDict. Давайте изменим значение возраста в студенте OrderDict.

# импорт модуля коллекций



import collections



# создание OrderedDict студента



std_dict = collections.OrderedDict()



std_dict['name']='AndreyEx'



std_dict['age']=23



std_dict['email']='AndreyEx@example.ru'



std_dict['class']='BS'



print ( "Порядок ключей перед изменением значения возраста: "



for i in std_dict.items():



print(i)



# изменение значения возраста



std_dict['age']=25



print ( "Порядок ключей после изменения значения возраста:" )



for i in std_dict.items():



print(i)




Выходные данные показывают, что порядок ключей остается неизменным, когда мы изменяем значение определенного ключа.

 

Удаление значения из OrderedDict

Удаление значений из OrderDict не меняет порядок ключей. Если мы удалим определенный ключ и снова вставим его, он будет добавлен в конце. Давайте посмотрим на пример. Мы удалим ключ «возраст» из студенческого словаря, а затем снова вставим его.

# импорт модуля коллекций



import collections



# создание OrderedDict студента



std_dict = collections.OrderedDict()



std_dict['name']='AndreyEx'



std_dict['age']=23



std_dict['email']='AndreyEx@example.ru'



std_dict['class']='BS'



print ( "Порядок ключей перед изменением значения возраста: "



for i in std_dict.items():



print(i)



# удаление ключа возраста



del std_dict['age']



print ( "Порядок ключей после удаления ключа возраста:" )



for i in std_dict.items():



print(i)



# повторная вставка ключа возраста и значения



std_dict['age']=23



print ( "Порядок ключей после повторной вставки ключа возраста:")



for i in std_dict.items():



print(i)




В выводе можно увидеть, что когда мы повторно вставляем ключ, он вставляется в конце.

 

Вывод

OrderedDict — это подкласс dict, который упорядочивает ключи по порядку и сохраняет порядок при их вставке. Класс OrderedDict является частью модуля коллекций. Эта статья объясняет OrderedDict и его функциональные возможности с примерами.



2020-11-28T16:49:06
Новости