Вот сценарий, который запускается в cron для пользователя user1 с привилегиями sudo
export DISPLAY=:0
export XAUTHORITY=/home/user2/.Xauthority
scrot -q 30 "/tmp/%Y-%m-%d-%H-%M_screen.jpg" 2>/tmp/err
Он отлично работал на Ubuntu 16.04. При обновлении до 18:04 выдает ошибку: Invalid MIT-MAGIC-COOKIE-1 keygiblib error: Can't open X display. Это является работает, да?
Файл .Xauthority принадлежит пользователю user2, группе принадлежит user1 и имеет разрешения 660.
Что изменилось между Ubuntu 16:04 и 18:04? Я попытался экспорт DISPLAY =: 1.0 вместо того экспорт DISPLAY =: 0 после прочтения сообщения на SO. Это дало эту ошибку: Ошибка giblib: не удается открыть X-дисплей. Это является работает, да?
Из ArchWiki:
Неверный ключ MIT-MAGIC-COOKIE-1 при попытке запустить программу от имени пользователя root
Эта ошибка означает, что только текущий пользователь имеет доступ к X-серверу. Решение - дать доступ root:
$ xhost +si:localuser:root
Эту строку также можно использовать для предоставления доступа к X другому пользователю, а не root.
Так что вам, вероятно, нужно выполнить на хосте:
$ xhost +si:localuser:user1