ssh 時に gsettings の問題で profile.d でスクリプトを実行する

ssh 時に gsettings の問題で profile.d でスクリプトを実行する

複数のユーザーが使用するコンピューターに 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

関連情報