Forwarded from Bash Советы
🔐 Как найти файлы с открытыми правами (777) - быстро и просто!
Иногда на сервере появляются файлы и каталоги с правами
📁 А если нужно проверить директории:
🔍 Пояснение:
💡 Лучше запускать от root для полной картины.
📲 Мы в MAX
👉@bash_srv
Иногда на сервере появляются файлы и каталоги с правами
777, что представляет угрозу безопасности. Найдём их одной командой:
find / -type f -perm 0777 2>/dev/null
📁 А если нужно проверить директории:
find / -type d -perm 0777 2>/dev/null
🔍 Пояснение:
/ - путь, где искать (можно заменить на /var, /home и т.д.)-type f / -type d — искать только файлы или директории-perm 0777 - права доступа2>/dev/null - убираем лишние ошибки (например, от Permission denied)💡 Лучше запускать от root для полной картины.
📲 Мы в MAX
👉@bash_srv
👍12❤1😁1
This media is not supported in your browser
VIEW IN TELEGRAM
Совет дня по Linux
Редактирование файлов прямо из
Во время просмотра файла в пейджере
После сохранения изменений и выхода из редактора вы увидите обновлённый файл в
Редактирование файлов прямо из
lessВо время просмотра файла в пейджере
less можно нажать клавишу v. Это откроет текущий файл в редакторе, который указан в переменной окружения EDITOR.После сохранения изменений и выхода из редактора вы увидите обновлённый файл в
less.👍19❤2🔥1
Forwarded from Системный Администратор Windows
👋 Привет, админы!
Если не ошибаюсь, осенью 21 года в одном из наших дата-центров после планового обновления клиентских машин начали массово падать сеансы RDP - пользователи жаловались, что после ввода пароля сессия сразу же разрывается. Оказалось, во время апдейта поставился неполностью совместимый патч безопасности, который конфликтовал с включённым на компьютерах аудиторией учетных политик.
🔥 Чтобы быстро отследить все последние установленные обновления на целевой группе машин и при необходимости откатить проблемный патч, я использовал вот такой PowerShell-скрипт:
С помощью этого отчёта мы быстро определили, что именно на всех проблемных ПК установился KB5005565. Чтобы откатить его удалённо, использовал команду:
После перезапуска машин RDP-сессии вернулись в норму. Плюс я добавил правило на WSUS, чтобы этот конкретный патч не раздавался снова до выяснения причины конфликта.
👉 @win_sysadmin
Если не ошибаюсь, осенью 21 года в одном из наших дата-центров после планового обновления клиентских машин начали массово падать сеансы RDP - пользователи жаловались, что после ввода пароля сессия сразу же разрывается. Оказалось, во время апдейта поставился неполностью совместимый патч безопасности, который конфликтовал с включённым на компьютерах аудиторией учетных политик.
🔥 Чтобы быстро отследить все последние установленные обновления на целевой группе машин и при необходимости откатить проблемный патч, я использовал вот такой PowerShell-скрипт:
# Получаем список компьютеров из текстового файла
$computers = Get-Content -Path "C:\Scripts\computers.txt"
# Словарь для хранения списка установленных обновлений
$updateReport = @()
foreach ($computer in $computers) {
try {
# Получаем установленные обновления за последние 7 дней
$recentUpdates = Get-HotFix -ComputerName $computer |
Where-Object { $_.InstalledOn -ge (Get-Date).AddDays(-7) }
foreach ($upd in $recentUpdates) {
$updateReport += [PSCustomObject]@{
Computer = $computer
KBArticle = $upd.HotFixID
InstalledOn = $upd.InstalledOn
}
}
}
catch {
Write-Warning "Не удалось получить обновления с сервера $computer: $_"
}
}
# Сохраняем отчёт в CSV
$csvPath = "C:\Scripts\RecentUpdatesReport.csv"
$updateReport | Export-Csv -Path $csvPath -NoTypeInformation -Encoding UTF8
Write-Host "Отчет сохранен в $csvPath"
С помощью этого отчёта мы быстро определили, что именно на всех проблемных ПК установился KB5005565. Чтобы откатить его удалённо, использовал команду:
Invoke-Command -ComputerName (Get-Content "C:\Scripts\computers.txt") -ScriptBlock {
wusa /uninstall /kb:5005565 /quiet /norestart
}
После перезапуска машин RDP-сессии вернулись в норму. Плюс я добавил правило на WSUS, чтобы этот конкретный патч не раздавался снова до выяснения причины конфликта.
👉 @win_sysadmin
👍12👎4🔥4❤2
Совет дня по Linux
Расширение скобок
Чтобы использовать расширение скобок, укажите начало и конец последовательности внутри фигурных скобок
Это выведет числа от 1 до 5.
Также работает с буквами:
Примеры практического применения расширения скобок:
Создание файлов с последовательными именами:
Использование диапазонов в циклах:
Создание нескольких каталогов за один вызов:
Перемещение группы файлов:
В следующий раз, когда нужно вывести последовательность — не набирайте всё вручную. Используйте расширение скобок и сэкономьте время и усилия.
Расширение скобок
{} — одна из самых недооценённых, но мощных возможностей оболочек Linux. Оно позволяет удобно и быстро генерировать произвольные строки или числовые последовательности без ручного ввода.Чтобы использовать расширение скобок, укажите начало и конец последовательности внутри фигурных скобок
{}, разделённых двумя точками .. . Например:
$ echo {1..5}
1 2 3 4 5
Это выведет числа от 1 до 5.
Также работает с буквами:
$ echo {a..e}
a b c d e
Примеры практического применения расширения скобок:
Создание файлов с последовательными именами:
$ touch report-{1..12}.txt
Использование диапазонов в циклах:
$ for i in {1..10}; do ...; done
Создание нескольких каталогов за один вызов:
$ mkdir backup-{1..4}
Перемещение группы файлов:
$ mv data-{1..5}.txt /path/to/destination/
В следующий раз, когда нужно вывести последовательность — не набирайте всё вручную. Используйте расширение скобок и сэкономьте время и усилия.
👍24❤4😁2
В чем разница между объявлением переменной export VAR="VALUE" и VAR="VALUE" в bash?
В
1.
- Это обычное объявление переменной в текущей оболочке (сессии).
- Переменная
- Например, если вы запустите новую команду или скрипт из текущей оболочки,
2.
- Команда
- То есть,
- Это полезно, когда необходимо передать значение переменной в другие программы или скрипты, запущенные из текущей оболочки.
Для примера
Таким образом,
В
bash (и других оболочках Unix) разница между командами export VAR="VALUE" и VAR="VALUE" связана с областью видимости переменной:1.
VAR="VALUE": - Это обычное объявление переменной в текущей оболочке (сессии).
- Переменная
VAR будет доступна только внутри текущей сессии, и не будет передаваться дочерним процессам, запущенным этой сессией.- Например, если вы запустите новую команду или скрипт из текущей оболочки,
VAR не будет доступна в этом дочернем процессе.2.
export VAR="VALUE": - Команда
export делает переменную VAR доступной для всех дочерних процессов текущей оболочки.- То есть,
VAR будет установлена и доступна не только в текущей сессии, но и во всех процессах, запущенных из этой сессии.- Это полезно, когда необходимо передать значение переменной в другие программы или скрипты, запущенные из текущей оболочки.
Для примера
# Присвоение переменной без export
VAR="Hello"
bash -c 'echo $VAR' # Ничего не выведет, так как VAR не экспортирована
# Присвоение переменной с export
export VAR="Hello"
bash -c 'echo $VAR' # Выведет "Hello", так как VAR экспортирована
Таким образом,
export используется для того, чтобы переменная была доступна в дочерних процессах, тогда как обычное присвоение без export ограничивает переменную только текущей сессией.👍21❤5👎2
This media is not supported in your browser
VIEW IN TELEGRAM
Быстрый совет по Linux
В терминале сочетание
Идеально подходит для повторного использования длинных путей к файлам или имён файлов без необходимости набирать их заново. Если нажимать
Это позволяет быстро и точно извлекать и переиспользовать ранее введённые данные, экономя время и снижая количество ошибок
В терминале сочетание
Alt + . – это небольшой, но очень мощный шорткат для повышения продуктивности. Оно вставляет последний аргумент предыдущей команды в текущую позицию курсора.Идеально подходит для повторного использования длинных путей к файлам или имён файлов без необходимости набирать их заново. Если нажимать
Alt + . несколько раз подряд, можно перебирать аргументы из более ранних команд в истории, двигаясь назад. Это позволяет быстро и точно извлекать и переиспользовать ранее введённые данные, экономя время и снижая количество ошибок
👍35❤7
Основы компьютерных сетей
Тема №1. Основные сетевые термины и сетевые модели
Тема №2. Протоколы верхнего уровня
Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Тема №4. Сетевые устройства и виды применяемых кабелей
Тема №5. Понятие IP адресации, масок подсетей и их расчет
Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Тема №7. Протокол связующего дерева: STP
Тема №8. Протокол агрегирования каналов: Etherchannel
Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP
Тема №1. Основные сетевые термины и сетевые модели
Тема №2. Протоколы верхнего уровня
Тема №3. Протоколы нижних уровней (транспортного, сетевого и канального)
Тема №4. Сетевые устройства и виды применяемых кабелей
Тема №5. Понятие IP адресации, масок подсетей и их расчет
Тема №6. Понятие VLAN, Trunk и протоколы VTP и DTP
Тема №7. Протокол связующего дерева: STP
Тема №8. Протокол агрегирования каналов: Etherchannel
Тема №9. Маршрутизация: статическая и динамическая на примере RIP, OSPF и EIGRP
🔥16👍8