Я записал бы небольшую программу, которая проверила на любые активные соединения SSH через netstat
и/или ps
. Отбросьте его вместо shutdown
команда.
Если никто больше не использует машину, звонить shutdown
когда пользователь пытается. Если кто-то использует машину, просто предупредите пользователя, который вышел shutdown
команда.
Netstat даст Вам вывод как это, и довольно легко искать .ssh
в выводе.
netstat -a
Active Internet connections (including servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 52 10.5.6.xx.ssh 10.6.6.yy.51400 ESTABLISHED
tcp 0 0 *.ssh *.* LISTEN
udp 0 0 *.syslog *.*
ps
даст Вам вывод как это, но это немного более твердо, потому что необходимо удостовериться, что не волновались об исходящих соединениях. Netstat
вероятно, правильный способ пойти.
ps -e | grep ssh
10084366 ? 00:00:07 /opt/sbin/sshd
282647 ? 00:00:00 /opt/sbin/sshd
, чтобы было написано
Заметьте, что это путь и код, существующий для Debian Wheezy (текущая стабильная версия). Другой дистрибутив или версия могут иметь другой код, но идея одна и та же. Откройте код и настройте его так, чтобы он делал то, что вы хотите.
Edit: Я только что заметил, что вопрос был о каждом случае, когда он не находил совпадений, а не только о конкретном случае добавления [119541]ova[119542] к [119543]tar[119544]. Может быть, это все же может быть полезно кому-то, чтобы знать, где он может искать источник.[119250].
см. также соответствующую страницу [112786][112787] в онлайн-руководстве по bash.
Caveat: вы получаете нормальное поведение для типа завершения (команды/имена/пользователи и т.д.), определяемого интеллектуальным завершением для рассматриваемой команды, например, для завершения для службы [112788] [112789] не будет завершено заполнение имен файлов, даже если вы вызовете службу [112790] -o bashdefault [112791].
В этом и других случаях, когда интеллектуальное автозавершение не удается, вы всегда можете нажать [112792]Alt-/[112793] (или [112794]M-/[112795] в нотации руководства по бас-гитаре). чтобы заполнить имена файлов [112796] [112797] почти так же, как работает ТАБ, если он умный. завершение отключено (почти так же, как и в том смысле, что [112798]M-/[112799] не завершает шаблоны типа [112800]*.txt[112801]). Смотрите [112802]здесь[112803] для других типов завершений, таких как имена команд и пользователей.[112456].
Хей Оле :-),
Иметь свой торт и есть его тоже:
<tab>
даст вам лучшее предположение bash по завершении. Как известно, иногда это неправильно.
Однако,M-/
(ALT
+ SHIFT
+7
(и что осталось ALT
,неправильноеAltGr
)на наших датских клавиатурах )будет принудительно завершать в виде файла, когда завершение bash не идеально. Поэтому я использую M-/
, когда знаю, что хочу принудительно выполнить завершение в виде файла.
Для меня это лучшее из обоих миров.