Есть несколько способов сделать это, вы можете попробовать
ssh -fT -L 40000:localhost:40000 root@1.2.3.4 'sleep 60'
FOO=$(ssh root@localhost -p 40000 cat /foo)
остальное можно продолжить...
Здесь -f — перевести его в фоновый режим, а -T — отключить выделение tty. Используя команду sleep, чтобы сохранить сеанс активным в течение 60 секунд и разрешить сам выход, вы можете изменить его или восполнить другими способами.
Простой, например, поддерживать сеанс в рабочем состоянии, пока он не увидит файл /tmp/a.txt, как только вы закончите свою работу, создайте файл, а цикл увидит его и запустит очистку rm / tmp/a.txt и выходит из сеанса.
ssh -fT -L 40000:localhost:40000 root@1.2.3.4 'while [[ ! -f /tmp/a.txt ]] ; do sleep 2 ; done ; rm /tmp/a.txt'
FOO=$(ssh root@localhost -p 40000 cat /foo)
do you work..
ssh root@localhost -p 40000 touch /tmp/a.txt
Вы можете использовать любые другие условия, которые вам больше подходят, чтобы сохранить его живым.
journalctl
доступ действительно ограничен членами следующих групп :adm
, systemd-journal
, wheel
в соответствии с man journalctl
, и это действительно так для Fedora 33:
Hint: You are currently not seeing messages from other users and the system.
Users in groups 'adm', 'systemd-journal', 'wheel' can see all messages.
Pass -q to turn off this notice.
Что касается dmesg
, то доступ к ней регулируется переменной sysctl, kernel.dmesg_restrict
которая по крайней мере в Fedora установлена в 0, что означает, что любой локальный пользователь может читать журнал ядра.
ИМО, я не вижу причин ограничивать доступ к dmesg
, в то время как системный журнал может содержать информацию, которая может позволить получить несанкционированный доступ к системе.