在 ssh 上运行 profile.d 脚本时出现 gsettings 问题

在 ssh 上运行 profile.d 脚本时出现 gsettings 问题

我在一台有多个用户的计算机上使用了 Ubuntu 14.04。我已配置以下内容:

/etc/profile.d/all_users.sh

gsettings set org.gnome.Vino disable-background true
gsettings set org.gnome.Vino authentication-methods "['none']"
gsettings set org.gnome.Vino enabled true
gsettings set org.gnome.Vino icon-visibility 'client'
gsettings set org.gnome.Vino lock-screen-on-disconnect false
gsettings set org.gnome.Vino notify-on-connect true
gsettings set org.gnome.Vino prompt-enabled true
gsettings set org.gnome.Vino require-encryption false
gsettings set org.gnome.Vino view-only false

这很有效。因为所有用户登录时都会获得此设置。

问题是当我 ssh 到这台机器时。我收到如下错误:

dconf-警告 **:无法将更改提交到 dconf:没有 X11 $DISPLAY 无法自动启动 D-Bus

所以我想知道是否有人知道我该怎么做:

  • 当我 ssh 进入这台机器时避免运行 profile.d 脚本
  • 配置 profild.d 脚本,以便它检测到它是一个 ssh 脚本并返回脚本

任何帮助是极大的赞赏。

答案1

当用户通过 ssh 登录时,$SSH_CLIENT 将在其环境中设置。因此,您需要做的就是将设置括在语句中if

if [ "$SSH_CLIENT" ] ; then
    # gsettings set ...
fi

相关内容