Я пытаюсь запустить gsettings для другого пользователя в Ubuntu 18.04.2 LTS. В частности, я пытаюсь предотвратить блокировку экрана пользователя. Это будет выполняться как часть скрипта bash. Я использую следующие команды:
su someuser
dbus-launch gsettings set org.gnome.desktop.screensaver lock-enabled false
Поскольку это запускается через ssh, я открываю dbus-launch, чтобы запустить dbus, а затем пытаюсь просто вызвать gsettings. Однако я получаю сообщение об ошибке:
dbus[22652]: Unable to set up transient service directory: XDG_RUNTIME_DIR "/run/user/1000" is owned by uid 1000, not our uid 1001
(process:22650): dconf-CRITICAL **: 11:11:27.830: unable to create directory '/run/user/1000/dconf': Permission denied. dconf will not work properly.
(process:22650): dconf-CRITICAL **: 11:11:27.830: unable to create directory '/run/user/1000/dconf': Permission denied. dconf will not work properly.
(process:22650): dconf-CRITICAL **: 11:11:27.836: unable to create directory '/run/user/1000/dconf': Permission denied. dconf will not work properly.
Чтобы убедиться, что идентификаторы UID не совпадают, я проверил каталог /run/user:
ls -lah /run/user
Что выводит:
total 0
drwxr-xr-x 4 root root 80 Apr 16 14:25 .
drwxr-xr-x 31 root root 900 Apr 16 14:25 ..
drwx------ 4 adminuser adminuser 100 Apr 16 14:25 1000
drwx------ 11 someuser someuser 260 Apr 16 12:26 1001
Я также пытался использовать sudo:
sudo -u "someuser" dbus-launch gsettings set org.gnome.desktop.screensaver lock-enabled false
Что дает ошибки:
(process:22264): dconf-CRITICAL **: 14:33:41.124: unable to create directory '/home/adminuser/.cache/dconf': Permission denied. dconf will not work properly.
(process:22264): dconf-CRITICAL **: 14:33:41.124: unable to create directory '/home/adminuser/.cache/dconf': Permission denied. dconf will not work properly.
(process:22264): dconf-CRITICAL **: 14:33:41.135: unable to create directory '/home/adminuser/.cache/dconf': Permission denied. dconf will not work properly.
(process:22264): dconf-WARNING **: 14:33:41.152: failed to commit changes to dconf: GDBus.Error:org.gtk.GDBus.UnmappedGError.Quark._g_2dfile_2derror_2dquark.Code2: Cannot open dconf database: Failed to open file “/home/adminuser/.config/dconf/user”: Permission denied
Что приводит к вопросу, почему gsettings пытается работать для пользователя-администратора, а не для какого-то пользователя, и как он может быть направлен для запуска какого-то пользователя с помощью пользователя-администратора через SSH?