Через реестр
Модификация реестра на пользовательских машинах ― странный вариант, лишь на случай крайней необходимости. Можно использовать ветки Run или RunOnce. Подробнее о них ― в документации. Сама модификация реестра может проводиться через групповые политики или из командной строки ― например, такой командой:
В зависимости от ветки реестра, процесс будет выполняться или под пользователем, выполнившим вход в систему, или под аккаунтом SYSTEM.
Есть и другие способы, такие как правка ярлыков в папке «Автозагрузка» или добавление в ярлык к популярной программе && script.cmd, но эти методы уже из серии «можно, но не нужно».
Теперь перейдем к новым инструментам.
Способы новые или куда же без PowerShell
PowerShell, оправдывая свое название, может подключаться к удаленным компьютерам при помощи WMI, RPC и WS-Management (WSMan). Использование последнего метода требует предварительной настройки.
Командлеты, не требующие предварительной настройки, как правило, имеют параметр ComputerName, но не имеют параметра Session. Посмотреть список таких командлетов можно командой:
Для настройки WSMan в общем случае достаточно выполнить команду Enable-PSRemoting-Force. Она запустит службу удаленного управления WinRM и пропишет исключения в фаерволе ― в принципе, это можно сделать для всего домена при помощи групповых политик. Подробнее настройка описана в документации.
После того как все компьютеры будут готовы принимать запросы, мы сможем подключаться при помощи соответствующих командлетов PowerShell. Для проверки возможности подключения используется командлет Test-WSMan.
Проверка возможности подключения.
Для того чтобы выполнить определенную команду или скрипт, используется командлет Invoke-Command со следующим синтаксисом:
Где COMPUTER ― имя компьютера, COMMAND ―– имя команды, а USERNAME ― имя пользователя, если оно нужно.
Смотрим содержимое диска С удаленного компьютера.
Если же нам нужно получить полноценную консоль ― не автоматизации ради, а ради управления конкретным компьютером, ― то можно использовать командлет Enter-PSSession.
Работаем в консоли удаленного компьютера.
Напомню, что с помощью JEA можно ограничить доступные подобной сессии командлеты или дать доступ нужным без прав администратора.
Конечно, кроме встроенных средств и небольших утилит, существует множество программ для управления структурой. Помимо взрослых решений, для управления конфигурациями вроде Chef, Ansible и MS SCCM можно использовать и средства мониторинга вроде Zabbix, и даже консоль управления антивирусом Касперского.
В период гетерогенных структур хорошо бы иметь возможность унифицированного управления Windows и Linux. Это можно сделать и с помощью PowerShell, что само по себе достойно отдельной статьи ― стоит такую сделать или уже лишнее?
Кстати, поделитесь вашими способами скрытого и не очень запуска программ на удаленных компьютерах. Ну, за исключением эксплойтов.
Запуск майнеров и скриптов с правами sudo без ввода пароля
Майнеры и служебные программы для майнинга, как правило, должны запускаться с правами sudo. Для этого при их запуске вручную нужно вводить пароль. Для майнинг-ригов это не очень удобно, так как они должны работать в круглосуточном режиме. Поэтому нужно автоматизировать процесс запуска майнеров, их «обвязки», а также обеспечить автономную безопасную и продуктивную работу майнинг ферм.
Чтобы постоянно не вводить пароль при запуске майнеров и программ разгона с привилегиями sudo, можно отменить запрос пароля для скриптов, в которых содержится эта команда.
Чтобы сконфигурировать систему таким образом, выполняют команду:
Кроме того, для предотвращения ошибок с доступом к майнеру/скрипту, нужно удостовериться, что они принадлежат пользователю/группе, которые имеет право их запускать и редактировать.
Проще всего пользователю, который входит в систему, предоставить права владения и разрешения на чтение, запуск и редактирование скрипта запуска/программы для майнинга командами:
sudo chown имя_user:имя_user wolfamdctrl.sh sudo chmod a=rwx wolfamdctrl.sh
Проверить имеющиеся права у файла можно командой: ls -l выполненной в терминале с папкой, где он находится.
Если нужно запустить скрипт с задержкой, то можно использовать команду:
, где 10 — время задержки в секундах.
Например, для запуска с задержкой в 15 секунд утилиты amdmemtweak можно использовать такой скрипт:
#!/bin/bash sleep 15 ./amdmemtweak --i 0,1,2,3,4 --REF 30
Psexec
Пожалуй, это первое, что приходит на ум, когда идет речь об удаленном запуске программ. Утилита от Марка Руссиновича используется еще со времен Windows NT и до сих пор применяется. Помимо основной функции, можно использовать ее и как Runas, и для запуска программ в пользовательской сессии терминального сервера. Psexec также позволяет задавать ядра процессора, на которых будет запускаться программа, и ее приоритет в системе.
В качестве примера посмотрим, установлено ли обновление, закрывающее нашумевшую уязвимость SMB на списке компьютеров:
В файле computers.txt находится список компьютеров. Для запуска по всему домену можно использовать \\*. В файле \\server\share\log.txt будут появляться имена рабочих станций или серверов без обновления. Если в домене существуют компьютеры с *nix на борту или нет доступа к административному сетевому ресурсу Admin$ ― команда на этой машине не выполнится, но обработка продолжится. Чтобы скрипт не зависал при каждой попытке подключения, можно задать тайм-аут с помощью ключа -n.
Если компьютер выключен ― мы об этом не узнаем. Поэтому лучше предварительно проверять доступность машин или собирать в файле информацию об успешном или неудачном выполнении.
К минусам Psexec можно отнести то, что она из-за своего удобства и популярности часто используется вирусописателями. Поэтому антивирусные системы могут обнаруживать утилиту как опасность вида remote admin.
По умолчанию процесс на удаленной машине выполняется от имени пользователя, запустившего Psexec. При необходимости логин и пароль можно задать явно или же использовать аккаунт SYSTEM.
Автозагрузка скриптов в Linux
Раньше было принято размещать все скрипты, которые запускаются по умолчанию в файле /etc/rc.local. Этот файл все еще существует, но это пережиток системы инициализации SysVinit и теперь он сохраняется только для совместимости. Скрипты же нужно загружать только с помощью Systemd.
Для этого достаточно создать простой юнит-файл и добавить его в автозагрузку, как любой другой сервис. Сначала создадим этот файл:
$ sudo vi /lib/systemd/system/runscript.service
Description=My Script Service After=multi-user.target
Type=idle ExecStart=/usr/bin/local/script.sh
WantedBy=multi-user.target
В секции Unit мы даем краткое описание нашему файлу и говорим с помощью опции After, что нужно запускать этот скрипт в многопользовательском режиме (multi-user). Секция Service самая важная, здесь мы указываем тип сервиса — idle, это значит, что нужно просто запустить и забыть, вести наблюдение нет необходимости, а затем в параметре ExecStart указываем полный путь к нашему скрипту.
Осталось выставить правильные права:
$ sudo chmod 644 /lib/systemd/system/runscript.service
Затем обновить конфигурацию и добавить в автозагрузку Linux новый скрипт:
$ sudo systemctl daemon-reload $ sudo systemctl enable myscript.service
После следующей перезагрузки этот скрипт будет запущен автоматически
Обратите внимание, что для каждого скрипта, который вы собираетесь запускать должны быть правильно выставлены права, а именно нужно установить флаг выполнения. Для этого используйте команду chmod:. $ sudo chmod u+x /usr/local/bin/script
$ sudo chmod u+x /usr/local/bin/script
В параметрах мы передаем утилите адрес файла скрипта. Исполняемость — это обязательный параметр для всех способов.
Отсрочка автозапуска программ в Ubuntu
Если программ в автозагрузке Убунту очень много, их необходимо подгружать в определенном порядке или запускать спустя какое-то время после загрузки системы — поможет функция отсрочки. Для ее активации используется unix-утилита sleep. Воспользоваться возможностями этого инструмента можно в уже знакомой программе «Автоматически запускаемые приложения». Для этого нужно:
- Открыть окно параметров запускаемых приложений.
- Выделить курсором программу, автозапуск которой необходимо отсрочить, и воспользоваться кнопкой «Изменить».
- В строке «Команда» перед имеющеюся записью внести:
где цифра после слова «спать» равна количеству секунд, которое приложение бездействует сразу после старта системы, перед тем как запуститься. Между данной формулой, в конце которой обязательна точка с запятой, и командой на запуск приложения, должен быть пробел.
В приведенном примере отложенной автозагрузки программ в Ubuntu приложение остается в состоянии «сна» 2 минуты, прежде чем открыться. Например, запуск через полчаса после старта ОС будет выглядеть как sleep 3h «имя программы». Пример, в котором Transmission запускается через 1 час:
Аналогичным образом можно добавить в автозагрузку в Linux отсроченное выполнение пользовательского скрипта или запуск медиафайла.
Переменные XDG, freedesktop.org, desktop-файлы и autostart
Пользователям полноценных линуксовых графических окружений (KDE, Gnome, Mate etc) прекрасно известна возможность автозапуска приложений при логине пользователя в систему, разработанную инициативной группой Freedesktop.org (ранее X Desktop Group, или XDG), подобная той, что существует, например, в Windows. Данный функционал обеспечивается обычными файлами, но лежащими по определённым путям:
- ( по умолчанию) — общесистемная директория, для всех пользователей. Туда, обычно, попадают десктоп файлы при установке софта пакетным менеджером.
- ( по умолчанию) — Пользовательская директория, имеющая больший приоритет, нежели общесистемная, то есть если в пользовательской лежит десктоп файл с таким же именем, что и в общесистемной, будет использован именно пользовательский файл.
Если в этих переменных семейства XDG directories не указано иное, или эти переменные отсутствуют (так происходит в большинстве классических дистрибутивов, привет NixOS!), будут использованы значения по умолчанию.
Итак, с директориями определились. Файлы в них можно:
- Симлинкнуть из стандартных путей: ( по умолчанию) или из пользовательского ( по умолчанию), куда, кстати, любят класть свои файлы Steam, Itch.io или Wine.
- Можно создать самому, написав десктоп файлы руками.
- Можно нажать галочку «Запускать при старте системы», в каком-нибудь софте, например, в телеграм клиенте и тогда уже софт сам создаст в свой файл.
Всё хорошо. Одно плохо. Это не работает, как минимум, в Leftwm, Spectrwm, xmonad, bspwm, dwm (без патчей точно) и, разумеется, в любимом i3wm. Просто потому, что у них отсутствует session manager. И вот тут мы переходим к самому интересному. Встречайте! systemd!
Как запустить msconfig
Запускать msconfig очень просто, более того это можно сделать несколькими способами. Самый простой способ это запуск с помощью поиска. Откройте меню «Пуск» или стартовый экран, если у вас Windows 8, и введите «msconfig». После этого вам будет достаточно кликнуть по иконке программы.
Запуск программы с помощью меню «Пуск»
Также вы можете использовать меню «Выполнить». Для того чтобы запустить меню «Выполнить» нажмите комбинацию клавиш Win + R. После этого введите команду «msconfig» и нажмите ввод.
Запуск программы с помощью меню «Выполнить»
Кроме этого msconfig можно запустить с помощью командной строки или из папки, программу msconfig.exe можно найти в папке Windows\System32.
Автозагрузка проложений
Как мы уже поняли в каталогах /etc/rc.d/* лежат символьные ссылки на скрипты. Где цифры от это уровень загрузки у inittab или systemd. Мы можем менять руками порядок запуска, убирать и добавлять. По сути systemd пробежится по всем файлам и попытается их инициализировать при старте системы. Теперь разберем управление через команды: chkconfig — нужна для просмотра сервисов(программ). Поддерживает режим изменения для любого уровня загрузки.
update-rc.d — служит для запуска/остановки скриптов, при старте/выключении системы. Собственно через нее мы и будем менять автозапуск графической оболочки KDE(kdm). Так уж получилось, что у меня запуск окружения KDE включен для 2-5 уровней по умолчанию.
При старте системы я отключаю 2-4 уровень загрузки и проверяю что у меня стоит 3-й уровень загрузки
Перезагружаюсь и вижу приглашение консоли tty. profit
На самом деле, это чуть больше чем консоль. Мы можем переключаться между вкладками. CTRL+ALT+(F1-F6)
команда startx запустит графику KDE.
Вывод: Тут должен быть вывод, но вместо него я вставлю кота
Всем спасибо, кто дочитал.
Список используемой литературы:
Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.
Мы привыкли, что для того, чтобы добавить программу в автозагрузку в Windows достаточно поместить ее ярлык в папку автозагрузка. Здесь все немного по-другому. Для управления автозагрузкой в Linux Mint 18 есть специальное приложение: Startup Applications или по-нашему «Приложения, запускаемые по умолчанию». С другой стороны, автозагрузка Linux Mint очень похожа на автозагрузку в Ubuntu, но в последних версиях разработчики все немного переделали, и появились некоторые отличия. Поэтому мы рассмотрим как все сделать именно в Linux Mint.
В этом примере мы рассмотрим как добавить в автозагрузку Linux Mint программу VLC, но все действия работают абсолютно для любой программы. VLC был выбран для того, чтобы статья не была слишком абстрактной и показывала реальный пример.
Немного более сложный способ
Позволяет задать последовательность загрузки и поведение скрипта при разных runlevel»ах.
Изучаем /etc/init.d/skeleton , на его основе создаем скрипт /etc/init.d/my_script , которым будет запускаться/останавливаться наше приложение.
В этих директориях лежат скрипты остановки сервисов:
/etc/rc0.d/ /etc/rc1.d/ /etc/rc6.d/
в этих — скрипты запуска сервисов:
/etc/rc2.d/ /etc/rc3.d/ /etc/rc4.d/ /etc/rc5.d/
Изучаем их на предмет последовательности (чем меньше первая цифра в начале скрипта, тем раньше запускается/останавливается приложение). Это может быть критично, если ваше приложение будет зависит от каких-то сервисов.
После того, как определились со скриптом запуска и очередностью, выполняем следующее:
Sudo update-rc.d my_script start 70 2 3 4 5 . stop 20 0 1 6 .
Здесь я определил, что мой скриптик должен запускаться попозже остальных(70), и останавливаться пораньше(20). Цифры 2 3 4 5 0 1 6 означают уровни загрузки.
Sudo update-rc.d -f my_script remove
Подробности в man update-rc.d .
Выполнение скрипта при включении/отключении сети
Есть директория /etc/network/ с поддиректориями if-down.d , if-pre-up.d , if-post-down.d , if-up.d . Если разместить скрипт в одной из этих поддиректорий, то он будет выполняться соответственно при выключении, перед включением, после выключения или при включении сети.
Другой способ — указать в файле /etc/network/interfaces одну из следующих директив: up , pre-up , post-up , down , pre-down , post-down . Например, строка
Post-up /path/to/script.sh
после включения сети выполнит скрипт script.sh
. Подробнее можно почитать в man interfaces .
В любом случае на скрипт должны быть установлены права, разрешающие выполнение, иначе он не сможет запуститься.
А главное, полностью бесплатная операционная система, построенная на ядре Linux . Поэтому всё больше обладателей компьютеров становятся её пользователями. Если в их число попали и вы, то вам стоит, нет, не научиться — учиться там нечему — всего лишь понять и освоить основы управления. Например, как настроить автозапуск приложений и сервисов в Ubuntu.
Автозагрузка в Ubuntu — такой же процесс, как и на других ОС. Вы, должно быть, помните и представляете, как на Windows при включении ПК сразу же запускались Skype , uTorrent и ещё ряд программ. На Убунту есть несколько программ, которые аналогичным образом включаются вместе с компьютером. Их список можно изменить, как вам удобно: удалить лишние или добавить ещё несколько.
Утилита systemctl
В Systemd есть специальный инструмент для управления службами в Linux — systemctl. Эта утилита позволяет делать очень много вещей, начиная от перезапуска службы linux и проверки ее состояния, до анализа эффективности загрузки службы. Синтаксис у утилиты такой:
$ systemctl опции команда служба служба…
Опции настраивают поведение программы, подробность вывода, команда — указывает что нужно сделать со службой, а служба, это та самая служба, которой мы собираемся управлять. В некоторых случаях утилита может использоваться без указания команды и службы.
Рассмотрим все по порядку. Опции очень сильно зависят от команд, поэтому рассмотрим их позже, а пока пройдемся по командах:
- list-units — посмотреть все службы (юниты), аналог опции -t
- list-sockets — посмотреть все службы сокетов
- start — запустить службу linux
- stop — остановить службу linux
- reload — обновить конфигурацию службы из файла юнита
- restart — перезапустить службу
- try-restart — перезапустить службу, только если она запущена
- reload-or-restart — обновить конфигурацию затем выполнить перезапуск службы linux, если не поддерживается — только перезапустить
- isolate — запустить только одну службу вместе с ее зависимостями, все остальные остановить
- kill — отправить сигнал завершения процессу используется вместе с опциями —signal и —kill-who
- is-active — проверить запущена ли служба linux
- is-failed — проверить не завершилась ли служба с ошибкой
- status — посмотреть состояние и вывод службы
- show — посмотреть параметры управления службой в Linux
- reset-failed — перезапустить службы linux, завершившиеся с ошибкой
- list-dependencies — посмотреть зависимости службы linux
- list-unit-files — вывести все установленные файлы служб
- enable — добавить службу в автозагрузку
- disable — удалить службу из автозагрузки
- is-enabled — проверить если ли уже служба в автозагрузке
- reenable — сначала выполнить disable потом enable для службы
- list-jobs — все запущенные службы linux независимо от типа
- snapsot — сохранить состояние служб, чтобы потом восстановить
- daemon-reload — обновить конфигурацию всех служб
- mask — сделать юнит недоступным
- unmask — вернуть файл службы linux
А теперь основные опции:
- — t, —type — тип служб для вывода
- — a, —all — показать все известные службы, даже не запущенные
- — q — минимальный вывод
- — version — версия программы
- — no-pager — не использовать постраничную навигацию
- — no-legend — не выводить подробное описание
- — f — принудительное выполнение команды
- — runtime — не сохранять вносимые изменения после перезагрузки
- — n — количество строк вывода лога для команды status
- —plain — использовать обычный текстовый режим вместо деревьев
- — kill-who — задать процесс, которому нужно отправить сигнал
- — signal — сигнал, который нужно отправить.
- —state — отфильтровать список служб по состоянию.
Как видите, опции будут мало полезны и лучше обратить больше внимания на команды, с помощью них выполняются все действия.
CCleaner – очистка памяти
Адаптированное под Android приложение с Windows-компьютеров, которое славится своими широкими возможностями и автоматизацией всех процессов очистки. Функционал стартовой версии несколько урезан, но покупка Pro-аккаунта в основном направлена только на получение расширенной поддержки от разработчика и отключение рекламы.
Главное окно программы, после принятия всех разрешений, выглядит так.
Функция быстрого сканирования, доступная из него, является всеобъемлющей и охватывает не только слишком прожорливые приложения, но и очистку временных файлов, кэша, оперативной памяти и рекомендации по удалению приложений, которые давно не использовались.
Выгрузить приложения из ОЗУ можно следующим образом:
- Сначала нужно перейти в боковое меню и выбрать «Управление приложениями».
- Далее можно выбрать отдельные программы или все, отметив их соответствующими галочками.
- После этого в правом нижнем углу появляется синяя кнопка, нажав которую и выбрав «Остановить», можно выгрузить разом все программы.
После того, как процесс завершится, места в оперативной памяти станет больше, что отобразится на показателях в главном окне. Стоит отметить, что более быстро можно провести очистку через виджет, который добавляется на главный экран смартфона. По нажатию на него выполняются все действия, которые были описаны выше, но автоматически.
Преимущества:
- Быстрая и качественная работа.
- Наличие виджета, ускоряющего все процессы.
- Понятное меню.
- Гибкая настройка всех параметров.
Недостатки:
Надоедливые предложения купить Pro-версию.
QR-Code
CCleaner: очистка мусора и оптимизация, бесплатно
Developer: Piriform
Price: Free
Запуск майнеров и скриптов с правами sudo без ввода пароля
Майнеры и служебные программы для майнинга, как правило, должны запускаться с правами sudo. Для этого при их запуске вручную нужно вводить пароль. Для майнинг-ригов это не очень удобно, так как они должны работать в круглосуточном режиме. Поэтому нужно автоматизировать процесс запуска майнеров, их «обвязки», а также обеспечить автономную безопасную и продуктивную работу майнинг ферм.
Чтобы постоянно не вводить пароль при запуске майнеров и программ разгона с привилегиями sudo, можно отменить запрос пароля для скриптов, в которых содержится эта команда.
Чтобы сконфигурировать систему таким образом, выполняют команду:
Кроме того, для предотвращения ошибок с доступом к майнеру/скрипту, нужно удостовериться, что они принадлежат пользователю/группе, которые имеет право их запускать и редактировать.
Проще всего пользователю, который входит в систему, предоставить права владения и разрешения на чтение, запуск и редактирование скрипта запуска/программы для майнинга командами:
sudo chown имя_user:имя_user wolfamdctrl.sh sudo chmod a=rwx wolfamdctrl.sh
Проверить имеющиеся права у файла можно командой: ls -l выполненной в терминале с папкой, где он находится.
Если нужно запустить скрипт с задержкой, то можно использовать команду:
, где 10 — время задержки в секундах.
Например, для запуска с задержкой в 15 секунд утилиты amdmemtweak можно использовать такой скрипт:
#!/bin/bash sleep 15 ./amdmemtweak --i 0,1,2,3,4 --REF 30