Показ дописів із міткою bash. Показати всі дописи
Показ дописів із міткою bash. Показати всі дописи

понеділок, 22 січня 2024 р.

Як розлочити юзера в лінукс?

 Юзер був заблочений через 3 невдалих ввода пароля. І треба чекати 10 хвилин.

Ось одне із існуючих рішень:

# faillock --user username --reset

субота, 18 листопада 2023 р.

Gnome: Як виводити нові вікна в центр?

Дуже не подобається що нові вікна відкриваються де попало. Я очикую нове вікно по центру екрана. І для цього є чудова команда 

 gsettings set org.gnome.mutter center-new-windows true

Насолоджуйтесь. 

Мирного неба. 

четвер, 29 листопада 2018 р.

SSH Тунель

Ситуация: в офисе на рабочей машине крутиться несколько виртуальных машин, к которым я подключаюсь через RDP.  Иногда я работаю из дому. А открыт только SSH к моей рабочей машине.
Я думал просить, что бы админ пробросил еще порты на некоторые виртуалки, но... сами понимаете. Никто не хоче делать из своего сервера решето.
Но как оказалось одного проброшенного 22 порта хватает для множества задач.
Можно пробросить порты через SSH тунель

ssh -N -p 22123 myoffice.com -L 55389:localhost:3389
тут
-N не выполнять команд на той стороне

-p 22123 порт сервера, который проброшен на 22 порт моей офисной машины

-L 55389:localhost:3389 а это как рази есть прброс порта через SSH. Тут 55389 это порт, который будет на моей домашней машине, а 3389 это порт который на моей офисной машине.
После этого нужно просто подключиться к своей домашней машине на порт 55389.
 xfreerdp /v:localhost:55389 /bpp:16 /workarea -decorations +auto-reconnect

А вот так можно пробросить сразу несколько портов:
ssh -N -p 22055 myoffice.com -L 55389:localhost:3389 -L 55390:localhost:3390 -L 55621:localhost:6021 -L 55622:localhost:6022





понеділок, 14 грудня 2015 р.

Убить подключение на порт

Есть виртуальная машина VirtualBox с возможностью подключения через VRDP.
Подключаюсь к ней с разных компов. Но установил, что подключение может быть только одно.  Поэтому если забыл закрыть сеанс на другом компе, то с этого не получится подключиться. Но есть ssh доступ на сервер, где крутится эта виртулка.
И убиваем подключения так:
1 magedon@magedon ~ % sudo lsof -i :3389
COMMAND    PID    USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
VBoxHeadl 2392 magedon   22u  IPv4  34903      0t0  TCP *:ms-wbt-server (LISTEN)
VBoxHeadl 2392 magedon   23u  IPv6  34904      0t0  TCP *:ms-wbt-server (LISTEN)
VBoxHeadl 2392 magedon   34u  IPv4  30654      0t0  TCP magedon:ms-wbt-server->192.168.1.173:62261 (ESTABLISHED)


1 magedon@magedon ~ % sudo tcpkill host 192.168.1.173
tcpkill: listening on enp3s0 [host 192.168.1.173]

И так все команды требуют рута, поэтому делаем через sudo.
sudo lsof -i :3389 - показывает кто подключен к нужному мне порту 3389. Кроме виртуал бокса видим что тут есть кто-то с компа с IP 192.168.1.173
tcpkill host 192.168.1.173 убиваем подключение с данного компа.
tcpkill не входит в стандартную поставку linux, поэтому мне пришлось ставить отдельный пакет dsniff, в который входит эта утилита

Нашел также ещё один способ решения такой проблемы:
fuser -k 3389/tcp

вівторок, 19 березня 2013 р.

umount... device is busy? Кто держит мою флешку?!!!

Частенько после того как поработал с флешкой, внешним или сетевым диском не возможно его нормально демонтировать - device is busy!

Вопрос кто держит мою флешку?

Ответ можно получить в два хода
fuser -m <устройство или точка монтирования>
получим PID а дальше
ps -A|grep <PID который получили>
Дальше можно соорудить конвеер, чтобы сразу получить имя процесса, который держит устройство. Но не сейчас.

Например как я узнал, кто захватил мой внешний диск

root@legatus ~ # fuser -m  /run/media/magedon/7f9776a7-7cef-4105-860c-17a723220f85
/run/media/magedon/7f9776a7-7cef-4105-860c-17a723220f85:   645
root@legatus ~ # ps -A|grep 645
  645 ?        01:05:51 skype
и так мой диск захватил skype. Скайп выключил штатным методом, без всяких киллов.
И дальше просто демонтируем диск тоже штатными средствами. 

P.S. Кстати, а что это понадобилось Майкрософту на моём диске? Ведь скайп уже Майкрософт.
Пора искать альтернативу скайпу.

четвер, 8 листопада 2012 р.

Групповая обработка файлов в bash (цикл for)

Есть две папки
  1. bin - куда собирается программа
  2. 10y - папка с материалами, с которыми должна работать программа.
Раньше я просто копировал папку с материалами в bin. Однако настало время что я узнал, что мой винт не резиновый а материалов там пол Гига.

В общем решил симлинки положить в bin. Но создавать в ручную около 50 симлинков лень. Решил поискать как это дело можно автоматизировать.
Нашел.

Итак, структура каталогов следующая

project
├── 10y
├── bin
...
└── src


for file in 10y/*; do ln -s ../10y/$file ../bin/$file; done
  1. Заходим в каталог project
  2. Пишем выше приведенную строчку и жмем ентер
  3. Наслаждаемся результатом ))
следующая строка ищет все файлы и каталоги в папке 10y
for file in 10y/*;
где  file - это переменная итератор

далее создает для каждого выбранного файла или каталога относительный симлинк в папке bin
do ln -s ../10y/$file ../bin/$file;
значение переменной извлекается через  $, поэтому пишем не просто file, а $file

В общем виде цикл организован так
for <переменная итератор> in <маска>; do <действие>; done
Обратите внимание на точки с запятыми do и done - это обязательно

субота, 23 квітня 2011 р.

Nmap: Сканирование сети

Надо было выключить свой нотик, который остался в офисе за был за шлюзом. Помнил свой IP который получал серваком в офсисе, так что думал что проблем нет. Зашел на сервак через ssh. Но тут оказалось что именно в этот раз нотик я не подключал через eth, а через wlan. IP wlan я конечно не знал. Как найти свой нотик среди других компов? Оказалось очень просто:
nmap 192.168.1.1-255
И по списку открытых постов уже легко определил, свой нотик, т.к. я знаю что у меня там запущено и какие порты открыты.
nmap очень полезный инструмент. Стоит почитать про него подробнее. Возможно когда-то напишу более развернуто про него

понеділок, 4 квітня 2011 р.

Создание дерева каталогов

Периодически появляется потребность создавать дерево каталогов. Например нужно создать /tmp/dir1/subdir1/subdir2/subdir3. Обычно для этого я писал:

mkdir /tmp/dir1
mkdir /tmp/dir1/subdir1
mkdir /tmp/dir1/subdir1/subdir2
mkdir /tmp/dir1/subdir1/subdir2/subdir3

Немного покопавшись нашёл как это делать одной командой:

mkdir -p /tmp/dir1/subdir1/subdir2/subdir3

Так. Это была создана линейная структура каталогов, если её можно так назвать. А часто на практике нужна разветвлённая. У каждого программиста есть своя структура каталогов для проектов. И всякий раз создавать вручную каждый каталог не очень интересно. Например нужно создать следующую структуру каталогов:

Poject1
Poject1\bin
Poject1\bin\x64
Poject1\bin\x32
Poject1\lib
Poject1\src
Poject1\doc
Poject1\doc\html
Poject1\doc\pdf
Poject1\doc\man
Poject1\doc\info

В данном случае нам поможет таже команда mkdir. Это можно записать так:

mkdir -p Poject1/{bin/{x64,x32},lib,src,doc/{html,pdf,man,info}}

Разобраться с этой командой думаю не составит труда.

вівторок, 7 вересня 2010 р.

bash: Кто самый большой у нас в каталоге?

Проблема: пришло к концу место на разделе /home.
Задача: Найти замый жирный каталог

Решение:
du -m --max-depth=1 | sort -n

,где du - Disk Usage - утилита для определения занимаемого места файлом или каталогом.
параметры: 
-m выдавать информацию в мегабайтах, а то по умолчанию оно выдаем в понятном для человека виде - цифра и символ килобайт, мегабайт или гигабайт. Но так как сортировать будем не мы, а утилитка sort, то эти символы будут только мешать. В данном примере я указал в мегабайтах, т.к. размер раздела в гигабайтах, но можно указать и в килобайтах -k, и в байтах -b. В битах почемуто не хочет показывать :)
--max-depth=1  показывать файлы и каталоги только текущего уровня, не выдавая нагора все их внутренности

| перенаправляет результат работы du команде sort

sort сортирует данные полученные от du по первой колонке по убыванию по умолчанию.
параметры: 
-n указываем, что воспринимать первую колонку как цифры, а не как строки

Вот и все. Остальные параметры смотрите в манах