Системный администратор
26.7K subscribers
3.19K photos
3.2K videos
208 files
3.5K links
Все для системного администратора.

По всем вопросам @evgenycarter

РКН clck.ru/3KoDXp
Download Telegram
Как ускорить навигацию командной строки

++++++++++++++++++++++++++++++
Повторный запуск под root — sudo !!
user@host: cat /var/log/messages
cat /var/log/messages: Permission denied.
Как не надо: Вверх. Влево. Влево. Влево. …. sudo Enter. Рррр.
Как надо: sudo !!
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Повторный ввод последнего аргумента — Alt+
Вы захотели еще раз воспользоваться только что написанным аргументом? Например, созданной директорией?

Как не надо: mkdir MyNewDirectory; cd MyNewDirectory
Как надо:

mkdir MyNewDirectory
cd <Alt+.>
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Поиск запущенной команды — Ctrl+R
Какую же команду я только что запускал? Вверх. Вверх. Вверх. Вверх. О, вот и она!

Снова и снова вам приходится копаться в истории, ведь вы не знаете более подходящих альтернатив. Но что, если я скажу вам о том, что есть… поиск?

Как не надо: Вверх. Вверх. Вверх. Enter.
Как надо: Ctrl+R

Просто нажмите Ctrl+R и введите первые буквы нужной команды. Если поиск не выдал нужную команду сразу, то нажмите Ctrl+R еще раз. Повторное нажатие используется для прокрутки результатов. Ниже приведен поиск для cat.

(reverse-i-search)cat: sudo cat /var/log/messages
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Переход в начальную директорию — cd
Вы не на шутку удивитесь, узнав, сколько людей не знают этого способа! cd. Да, так просто. Без лишних аргументов вы сразу попадете в начальную директорию.
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Возвращение в последнюю директорию — cd -
Иногда простой способ — самый лучший. Допустим, вы были в директории /var/www/foo, а теперь оказались в /etc . Простая команда cd — вернет вас обратно в /var/www/foo .

Как не надо: cd /var/www/foo
Как надо: cd -
++++++++++++++++++++++++++++++

++++++++++++++++++++++++++++++
Контроль работы: передний план, фоновый режим и проч.
Возможно, вам потребуется какое-то время, чтобы привыкнуть, но оно того стоит. Допустим, вы редактируете файл в vim (вы же не будете этого делать в nano, да?!). И вот вам вдруг захотелось что-то найти в директории /var/www/html. Конечно же, вы можете выйти из vim, перейти в нужную директорию, а потом вдруг решить, что неплохо было бы вернуться к редактированию. Есть и другой вариант — перевести vim в фоновый режим и вернуться к нему позже.

Напишите: Ctrl+Z. Эта комбинация переводит все текущие задачи с переднего плана в фоновый режим. Полезно как минимум для: less, cat, man, vim и т.д.

«И куда же отправится моя активная задача?» — спросите вы. Напишите jobs и сами узнаете.

user@host: jobs
[1] Stopped vim
Супер. Теперь можно заняться чем-то другим. А как только вы решите вернуться к задаче, напишите fg. Эта команда возвращает фоновую задачу (vim) на передний план. Обратите внимание, что фоновые процессы приостанавливаются. Поэтому если в файле вы выполняли что-то из разряда tail, то для завершения команды потребуется какое-то время. Если же в фоновом режиме запущено несколько задач, то напишите fg 3 , где 3 — это номер задачи для возобновления. Увидеть список задач можно по команде jobs.
++++++++++++++++++++++++++++++


👉 @i_odmin
👍322
Подборка Telegram каналов для программистов

Системное администрирование 📌
https://xn--r1a.website/tipsysdmin Типичный Сисадмин (фото железа, было/стало)
https://xn--r1a.website/sysadminof Книги для админов, полезные материалы
https://xn--r1a.website/i_odmin Все для системного администратора
https://xn--r1a.website/i_odmin_book Библиотека Системного Администратора
https://xn--r1a.website/i_odmin_chat Чат системных администраторов
https://xn--r1a.website/i_DevOps DevOps: Пишем о Docker, Kubernetes и др.
https://xn--r1a.website/sysadminoff Новости Линукс Linux


https://xn--r1a.website/tikon_1 Новости высоких технологий, науки и техники💡
https://xn--r1a.website/mir_teh Мир технологий (Technology World)

https://xn--r1a.website/rust_lib Полезный контент по программированию на Rust
https://xn--r1a.website/golang_lib Библиотека Go (Golang) разработчика

https://xn--r1a.website/itmozg Программисты, дизайнеры, новости из мира IT.
https://xn--r1a.website/phis_mat Обучающие видео, книги по Физике и Математике

https://xn--r1a.website/php_lib Библиотека PHP программиста 👨🏼‍💻👩‍💻
https://xn--r1a.website/nodejs_lib Подборки по Node js и все что с ним связано
https://xn--r1a.website/ruby_lib Библиотека Ruby программиста

1C разработка 📌
https://xn--r1a.website/odin1C_rus Cтатьи, курсы, советы, шаблоны кода 1С

Программирование C++📌
https://xn--r1a.website/cpp_lib Библиотека C/C++ разработчика
https://xn--r1a.website/cpp_knigi Книги для программистов C/C++
https://xn--r1a.website/cpp_geek Учим C/C++ на примерах

Программирование Python 📌
https://xn--r1a.website/pythonofff Python академия. Учи Python быстро и легко🐍
https://xn--r1a.website/BookPython Библиотека Python разработчика
https://xn--r1a.website/python_real Python подборки на русском и английском
https://xn--r1a.website/python_360 Книги по Python Rus

Java разработка 📌
https://xn--r1a.website/BookJava Библиотека Java разработчика
https://xn--r1a.website/java_360 Книги по Java Rus
https://xn--r1a.website/java_geek Учим Java на примерах

GitHub Сообщество 📌
https://xn--r1a.website/Githublib Интересное из GitHub

Базы данных (Data Base) 📌
https://xn--r1a.website/database_info Все про базы данных

Мобильная разработка: iOS, Android 📌
https://xn--r1a.website/developer_mobila Мобильная разработка
https://xn--r1a.website/kotlin_lib Подборки полезного материала по Kotlin

Фронтенд разработка 📌
https://xn--r1a.website/frontend_1 Подборки для frontend разработчиков
https://xn--r1a.website/frontend_sovet Frontend советы, примеры и практика!
https://xn--r1a.website/React_lib Подборки по React js и все что с ним связано

Разработка игр 📌
https://xn--r1a.website/game_devv Все о разработке игр

Вакансии 📌
https://xn--r1a.website/sysadmin_rabota Системный Администратор
https://xn--r1a.website/progjob Вакансии в IT

Чат программистов📌
https://xn--r1a.website/developers_ru

Библиотеки 📌
https://xn--r1a.website/book_for_dev Книги для программистов Rus
https://xn--r1a.website/programmist_of Книги по программированию
https://xn--r1a.website/proglb Библиотека программиста
https://xn--r1a.website/bfbook Книги для программистов
https://xn--r1a.website/books_reserv Книги для программистов

БигДата, машинное обучение 📌
https://xn--r1a.website/bigdata_1 Data Science, Big Data, Machine Learning, Deep Learning

Программирование 📌
https://xn--r1a.website/bookflow Лекции, видеоуроки, доклады с IT конференций
https://xn--r1a.website/coddy_academy Полезные советы по программированию

QA, тестирование 📌
https://xn--r1a.website/testlab_qa Библиотека тестировщика

Шутки программистов 📌
https://xn--r1a.website/itumor Шутки программистов

Защита, взлом, безопасность 📌
https://xn--r1a.website/thehaking Канал о кибербезопасности
https://xn--r1a.website/xakep_1 Статьи из "Хакера"

Книги, статьи для дизайнеров 📌
https://xn--r1a.website/ux_web Статьи, книги для дизайнеров

Английский 📌
https://xn--r1a.website/UchuEnglish Английский с нуля

Математика 📌
https://xn--r1a.website/Pomatematike Канал по математике

Excel лайфхак📌
https://xn--r1a.website/Excel_lifehack
👍71
Media is too big
VIEW IN TELEGRAM
Сравнение SHELLs: BASH vs ZSH vs FISH

Делаем красочный и удобный терминал.

источник

👉 @i_odmin
👍15🔥4
Права доступа в Линукс
Расширенные права доступа - SUID, SGID, Sticky bit
Работа с ACL

👉 @i_odmin
👍82🔥1
Три наблюдения о командной строке и путях в файловой системе

Наблюдение № 1
Первое наблюдение будет как раз о шаблонах, но не мышления, а о шаблонах имён файлов и различиях в их трактовке командными интерпретаторами DOS/Windows и Unix/Linux.

Наблюдение № 2
Второе наблюдение связано с именованием каталогов в Linux. Имя subfolder может означать как файл, так и каталог. Несмотря на то, что в Linux почти все сущности являются файлами, различия иногда бывают важны. Допустим, требуется создать копию файла file1.txt в подкаталоге subfolder.

Наблюдение № 3
Третье наблюдение касается «особых каталогов». Все знают, что родительский каталог обозначается двумя точками: «..». Многим известно, что одной точкой «.» обозначается текущий каталог. Но если на каталоги верхнего уровня приходится ссылаться регулярно, то польза от ссылки на текущий каталог не столь очевидна: он ведь и так должен подразумеваться по умолчанию.

Теоретически должен, но на практике не всегда так происходит. Например, в текущем каталоге лежит файл moria.deb, который надо установить.

https://habr.com/ru/articles/784846/

👉 @i_odmin
👍31
MAC адрес

1бит 1бит 22 бита 24 бита
------------------------------
|I/G |U/L | OUI | OUA |
------------------------------
<-- 46 бит UAA -->


MAC - адрес уникальная комбинация цифр и букв длиной 48 символов. Фактически, это аппаратный номер оборудования, который, присваивается сетевой карте устройства в момент производства.

I/G - (Individual - 0 / Group - 1) тип адреса. Пакеты с групповым адресом получат все имеющие этот групповой адрес сетевые адаптеры.

U/L - (Universal - 0 / Local - 1) - определяет, как был присвоен адрес. Обычно - 0, Единица означает, что адрес задан не производителем, а админом локальной сети (перепрошит или назначен через драйвер устройства)

OUI - (Organizationally Unique Identifier) Идентификатор производителя. Назначается организацией IEEE.

OUA - (Organizationally Unique Address) Уникальный адрес карты для данного производителя.

UAA - Универсально управляемый адрес.

👉 @i_odmin
👍16
Проверяем доступность портов с использованием nmap/netcat/telnet/nc

Доступность tcp-порта
netcat
netcat [options] host port
сканер портов:
netcat -z -v domain.com 1-1000

запустить netcat на хосте и слушать на tcp порте 4444:
netcat -l 4444

а на другой машине проверить подключение к netcat, запущенному на другом хосте:
netcat domain.com 4444

nc
nc -vt <ip> <port>

telnet
telnet <ip> <port>

nmap
порт 25 tcp: nmap -p25 11.11.11.11

Доступность udp-порта
netcat
netcat -u host port

nc
nc -vu <ip> <port>

nmap
доступность порта udp 53: nmap -sU -p U:53 11.1.11.12

👉 @i_odmin
👍13
На замемтку ☝️

Так я экономлю более 1000 долларов в месяц на вычислениях, хранении и пропускной способности для своих проектов, связанных с искусственным интеллектом: всего 52 ядра CPU, 104 ГБ RAM, 3 ТБ NVMe, неограниченный вход/выход и менее 100 Вт энергопотребления.

На более высоком кластере работают серверы API, созданные с помощью библиотеки Transformer.js и фреймворка сервисов NATS. На более низком кластере работает сервер базы данных Postgres (с потоковой репликацией) и некоторые сервисы, такие как pgpool, prometheus и т. д.

Нет ни DNS-сервера, ни проброса портов, ни балансировщиков нагрузки.

👉 @i_odmin
👍26🤔5🔥1
Личный прокси для чайников: универсальный обход цензуры с помощью VPS, 3X-UI, Reality/CDN и Warp

На фоне прошлогоднего обострения цензуры в РФ, статьи автора MiraclePTR стали глотком свободы для многих русскоязычных айтишников. Я же хочу приоткрыть дверь к свободной информации чуть шире и пригласить «не‑технарей» («чайников»), желающих поднять личный прокси‑сервер для обхода цензуры, но дезориентированных обилием информации или остановленных непонятной технической ошибкой.

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

Статья рассчитана на «чайников», не знакомых с предметной областью. Однако и люди «в теме» могут найти нечто полезное (например, чуть более простую настройку проксирования через CloudFlare без необходимости поднимать nginx на VPS).

Если у вас ещё нет личного прокси для обхода цензуры — это знак.

https://habr.com/ru/articles/785186/

👉 @i_odmin
👍202
This media is not supported in your browser
VIEW IN TELEGRAM
Clip Mouse - компьютерная мышь, не имеющая аналогов.

Портативная и легкая мышь для использования на любой поверхности.

Мышь для Mac и PC, которой нет равных. Clip Mouse предлагает новый дизайн и функциональность, сохраняя при этом все возможности обычной мыши. Она была разработана в первую очередь как замена Magic Mouse и призвана перенести все функции и возможности Apple Magic Mouse в совершенно новую, еще более легкую, минималистичную и компактную форму. Clip Mouse - идеальный компаньон для работы и путешествий.

Проект на kickstarter

👉 @mir_teh
👍10🥴4
Примеры типовых операций в bash-скриптах

Арифметические действия, циклы по кол-ву раз

#!/bin/bash
A="10"
B="5"
C=`expr $A + $B`
printf "A=10 B=5 C=expr \$A + \$B C=%d \n" "$C"

# пример цикла по i
I=0
while [ $I -lt 15 ]
do
printf "0x%02x " "$I"
I=`expr $I + 1`
done
echo



Разного рода проверки

#!/bin/bash
# пример проверки существования файла
# создаем файл test1
touch test1
# проверяем существование файла test1
if [ -f test1 ] ; then
echo "файл test1 существует"
fi
# проверяем несуществование файла test2
if ! [ -f test2 ] ; then
echo "файл test2 не существует"
fi
# краткая справка по другим опциям команды [ ]
# -d filename директория существует
# -f filename файл существует
# -L filename символьная ссылка существует
# -r, -w, -x файл доступен для чтения, записи или выполнения
# -s filename файл существует и имеет ненулевую длину
# f1 -nt f2 f1 новее чем f2
# f1 -ot f2 f1 старше чем f2



Работа с FTP

#!/bin/bash
ADDRESS=192.168.1.150
USER=root
PASSWORD=root
ftp -n -p ADDRESS <<EoF
user USER PASSWORD
cd /usr/bin
put my_cool_program
quit
EoF
exit 0



Работа с telnet

#!/bin/bash
(
sleep 1
echo "root"
echo "cd /tmp"
echo "ls"
sleep 1
echo "quit"
) | telnet 192.168.1.150

Примечание: в этом случае root логинится без пароля, если нужен пароль, то надо добавить после echo "root" еще одно эхо с паролем.

Пример цикла по множеству значений

#!/bin/bash
# пример цикла по множеству значений
for A in раз два три четыре пять
do
echo "$A,"
done
echo "вышел заяц погулять"
echo


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

chmod a+x
script.sh

👉 @i_odmin
👍18
Как защитить сервер Linux

Ограничьте, кто может использовать sudo


Почему
sudo позволяет учетным записям выполнять команды от имени других учетных записей, включая root. Мы хотим убедиться, что только нужные нам учетные записи могут использовать sudo.

Цели
привилегии sudo ограничены теми, кто входит в указанную нами группу.

Примечания
Возможно, ваша сборка уже сделала это, или у вас уже есть специальная группа, предназначенная для этой цели, поэтому сначала проверьте.
Debian создаёт группу sudo. Чтобы просмотреть пользователей, которые входят в эту группу (таким образом, имеют привилегии sudo):

cat /etc/group | grep "sudo"


Шаги

1 - Создайте группу:
sudo groupadd sudousers

2 - Добавьте учетную запись(и) в группу:
sudo usermod -a -G sudousers user1
sudo usermod -a -G sudousers user2
sudo usermod -a -G sudousers ...


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

3 - Создайте резервную копию файла конфигурации sudo /etc/sudoers:
sudo cp --archive /etc/sudoers /etc/sudoers-COPY-$(date +"%Y%m%d%H%M%S")

4 - Отредактируйте файл конфигурации sudo /etc/sudoers:
sudo visudo

5 - Скажите sudo, чтобы только пользователи из группы sudousers могли использовать sudo, добавив эту строку, если ее еще нет:
%sudousers ALL=(ALL:ALL) ALL

👉 @i_odmin
👍211
Media is too big
VIEW IN TELEGRAM
Что такое systemd? Управление демонами linux c помощью systemctl

В этом видео я расскажу что такое systemd, обзор небольшой. Управление сервисами и демонами.
В видео вы узнаете:
где хранится systemd unit
какие бывают юниты
как посмотреть статус сервиса
как добавить сервис в автозагрузку
как запустить/остановить сервис
как запретить запускать сервис

А также мини man systemctl:
systemctl is-enabled
systemctl list-units -t тип --all
systemctl status
systemctl start
systemctl stop
systemctl restart
systemctl reload
systemctl enable
systemctl disable
systemctl mask
systemctl unmask

источник

👉 @i_odmin
👍10🤡3👎1
Какая разница между командами GREP, AWK и SED

Мы не можем с уверенностью называть себя экспертами по управлению файлами Linux, не обладая навыками обработки текста. Три самых известных инструмента командной строки (grep, sed и awk) заслужили хорошую репутацию текстовых процессоров Linux. Они предустановлены во всех основных дистрибутивах операционных систем Linux, поэтому нет необходимости устанавливать их дополнительно.

Каждая команда grep, sed и awk имеет уникальные функции обработки текста, но в некоторых простых сценариях их функции могут быть аналогичными.

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

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

https://telegra.ph/Kakaya-raznica-mezhdu-komandami-GREP-AWK-i-SED-01-23

👉 @i_odmin
👍9👎1
Awesome Linux Software

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

https://github.com/luong-komorebi/Awesome-Linux-Software

👉 @i_odmin
👍5
Есть приверженцы 😀

Подписывайтесь на канал 👉@tipsysdmin
👍41😁21
Media is too big
VIEW IN TELEGRAM
Как быстро добавить пользователей в группы AD [скрипт]

Пример скрипта

$ErrorActionPreference='Continue'
$error.Clear()
$i=0
import-module activedirectory
$pathToCSV='.\users.csv'
$csv=Import-Csv -path $pathToCSV -Delimiter ';'
foreach ($group in $csv)
{
$uname="$($group.Username)".split('\')[1]
$groupname="$($group.Groupname)"
Add-ADGroupMember -Identity $groupname -Members $uname
$i++
}
if ($error.Count -gt 0)
{
echo "Errors count: " $error.Count
}
$success=$($i-$error.Count)
if ($success -gt -1)
{
echo "Success records count: " $success
}


источник

👉 @i_odmin
👍142
Простая автоматизация

Переименовываем файлы пачкой с помощью Windows PowerShell.
Архивируем файлы "пачкой" с помощью Windows PowerShell.

источник

👉 @i_odmin
👍10