Эмуляция двунаправленной прокрутки с помощью сочетания клавиш + трекбол

Я смог заставить это работать на моей машине, но я не уверен, что sudoers опция requiretty сломает ее.

На машине B создайте программу, которую sudo будет использовать для запроса паролей. Например, /home/myname/askpass.sh, chmod it +x

#!/bin/bash
echo "my_password"

На машине A создайте скрипт подключения, который будет устанавливать ssh-соединение для scp и вводить sudo + связанные команды в удаленную команду. Например, назовите его ./fakessh.sh, chmod его +x

#!/bin/bash

oldargs=( $@ )

newargs=( )

while : ; do
  [ "${oldargs[0]}" == "scp" ] && break

  newargs+=( "${oldargs[0]}" )
  oldargs=( "${oldargs[@]:1}" )
done

newargs+=( 'export SUDO_ASKPASS=/home/myname/askpass.sh' \; exec sudo -A -- "${oldargs[@]}" )

exec ssh "${newargs[@]}"

Обратите внимание, что скрипт выше ссылается на /home/myname/askpass.sh, обновите путь по необходимости.

Теперь запустите scp почти нормально:

scp -S ./fakessh.sh user@hostname:/etc/shadow ./

Это работает для меня. YMMV.

Я могу придумать другие хаки, если вы можете запустить что-то вроде ncat или socat с sudo, и указать scp на пользовательский порт прослушивания, но это становится глупостью с точки зрения безопасности.

3
14.10.2016, 11:55
1 ответ

Эмуляция вертикальной и горизонтальной прокрутки с помощьюlibinput

Драйвер evdevиз ответа dirkt поддерживает только эмуляцию вертикальной прокрутки. Если вы (, как и я ), также хотите использовать горизонтальную прокрутку, для этого можно использовать драйвер libinput:

.
  1. Подробная информация находится на справочной странице для libinput(4):

    .

    Option "ScrollButton" "int"

    Designates a button as scroll button. If the ScrollMethod is button and the button is logically held down, x/y axis movement is converted into scroll events.

    Option "ScrollMethod" "string"

    Enables a scroll method. Permitted values are none, twofinger, edge, button. Not all devices support all options, if an option is unsupported, the default scroll option for this device is used

  2. Например:

    Section "InputClass"
      Identifier "Some Trackball"
      #... Stuff to match your trackball, see xorg.conf(5)
      Driver "libinput"
      Option "ScrollMethod" "button"
      Option "ScrollButton" "4" # Or whatever button suits your needs
    EndSection
    
3
27.01.2020, 21:21

Теги

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