У меня есть устройство типа raspi в центре обработки данных, и недавно я случайно нажал и вставил команду отключения в неправильный терминал на моем экране. Есть ли способ сохранить, shutdown -r
но удалить #poweroff
#shutdown -P -H
варианты?
Я хочу сохранить shutdown -r
командование. Мне нравится устанавливать таймер, если мне удастся заморозить систему или заблокировать себя с помощью правил таблицы ip. примерshutdown -r +10
источник
systemctl
без аргументов. В нем будут перечислены все активные юниты, их статус и описания. Добавьте,--all
и он также перечислит единицы, которые не активны.man systemd.special
.Есть несколько способов добиться этого. Можно было бы работать с обычной непривилегированной учетной записью, для которой потребуется выполнить команду с sudo и ввести пароль. Затем вы можете добавить следующее в / etc / sudoers (запустив visudo):
Кроме того, чтобы отключить кэширование учетных данных sudo, добавьте также следующее:
Это предотвратит кэширование учетных данных, если вы ранее вызывали команду с sudo.
Пример:
Обратите внимание, как в приведенном выше примере мне не нужно было вводить свой пароль при запуске
sudo shutdown -r +10
, но в остальном я был. Если вы хотите убрать необходимость вводить sudo перед командой (sudo shutdown -r +10
), добавьте следующее в ваш .bash_profile или .bashrc:Пример:
Обратите внимание, что рекомендуется работать с непривилегированной учетной записью и расширяться с помощью sudo, когда это необходимо.
источник
sudo
что в конфигурации по умолчанию будут храниться учетные данные в течение некоторого времени после первого вызова. Это может быть удобно при повторном выполнении команд, как тогоroot
требует пользовательский сеанс. В таком сеансе (или действительно, еслиroot
запущена оболочка) было бы вполне возможно выполнить командуshutdown
и обойти проверки.shutdown -r
для не Запрашивать пароль при запуске с Судом, поэтому, если он работаетsudo shutdown -r ...
учетные данные не кэшируются , так как они не будут введены. Посмотрите на пример, который я привел выше. Вы можете видеть, что я запустил его, после чегоsudo shutdown -H
мне предложили ввести пароль.sudo
а неNOPASSWD
операция; например, вызов для редактирования файла конфигурации от имени root. В этом случае пароль будет кэширован, и последующий вызовsudo shutdown -H
будет выполнен.sudo
Чтобы избежать этого, необходимо отключить кеширование паролей.sudo
что мы просто вводим пароль и идем дальше. Смотрите здесь для альтернативного подхода с использованием sudo (что, вероятно, намного лучше, хотя и не очень хорошо).Существует инструмент под названием molly-guard, который требует от вас указать имя хоста машины, которую вы хотите выключить или перезагрузить.
Если вы не используете Debian, скомпилировать это из исходного кода должно быть тривиально, учитывая, что программа довольно примитивна.
источник
Для предотвращения распределения на основе казусов RHEL уже настроили псевдонимы
rm
,cp
иmv
которые могут быть несколько более разрушительным , когда выполняются корневым пользователем.Вы можете добавить свой собственный, например:
источник
shutdown -r
время отключенияshutdown -P -H
?Переименуйте исполняемый файл shutdown на что-то, что невозможно вызвать случайно.
Тогда псевдоним
shutdown
будет(whatever) -r
источник
shutdown
к/sbin/shutdown -r
. Переименование не обязательно; поскольку расширение псевдонима относится к абсолютному пути, оно не подлежит рекурсивному расширению псевдонима.