Новые системы по своей конструкции не позволяют использовать графические приложения с правами root (это особенность Wayland ). Обходной путь:
$ xhost si:localuser:root
$ sudo...your-graphical-app...
Восстановить разрешения по умолчанию:
$ xhost -si:localuser:root
ssh
наследует стандартный входной поток от цикла и считывает из него как можно больше, то есть он будет читать оставшиеся строки из вашего файла address-list
. Поскольку ssh
считывает оставшиеся строки из файла, цикл будет выполнять только одну итерацию. Технически сценарий не завершается преждевременно и не завершается каким-либо образом, он просто не делает того, что вы хотите.
Чтобы избежать этого, используйте ssh -n
, чтобы запретить ssh
чтение со стандартного ввода:
while read address; do
echo -n "$address "
sshpass -p password ssh -n -o StrictHostKeyChecking=no "user@$address" 'ls /path/to/some/dir'
done < address-list
ssh
ведет себя таким образом, чтобы вы могли передавать данные в какую-нибудь программу, запущенную на удаленном хосте, но, как вы обнаружили, в вашем случае это будет препятствовать правильной работе вашего цикла.