web-dev-qa-db-ja.com

別のユーザーのためにgsettingsを実行する方法Ubuntu 18.04.2 LTS

Ubuntu 18.04.2 LTSで別のユーザーのgsettingsを実行しようとしています。具体的には、ユーザーの画面がロックされないようにしています。これは、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がsomeuserではなくadminuserで実行しようとしているのか、そしてSSH経由でadminuserがsomeuserで実行するように指示するにはどうすればよいのでしょうか。

5
user2395126

ここでの問題は ユーザーが通常のSudoを使用してグラフィカルアプリケーションを起動しないのはなぜですか? つまり、デフォルトではSudo$HOMEをターゲットユーザーの_に変更しません。

これは、-H--set-home)オプションを使用して変更できます。

 -H, --set-home
             Request that the security policy set the HOME environment
             variable to the home directory specified by the target user's
             password database entry.  Depending on the policy, this may
             be the default behavior.

そう

Sudo -Hu someuser dbus-launch gsettings set org.gnome.desktop.screensaver lock-enabled false
5
steeldriver