Зачем dmesg нужен sudo, если journalctl может получить доступ к той же информации без рута?

Есть несколько способов сделать это, вы можете попробовать

 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

Вы можете использовать любые другие условия, которые вам больше подходят, чтобы сохранить его живым.

2
10.06.2021, 07:34
1 ответ

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, в то время как системный журнал может содержать информацию, которая может позволить получить несанкционированный доступ к системе.

1
28.07.2021, 11:25

Теги

Похожие вопросы