
通常、私はSSHでXアプリケーションを取得するためにこれを行います。sudo su
ssh -X server
OKIログイン
xauth list $DISPLAY
それは私に返ってくる
server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla
じゃあ私は
sudo su
xauth add server/unix:10 MIT-MAGIC-COOKIE-1 blablablablabla
そして、X アプリケーションを実行した後、それは正しいことがわかりました。
問題はCentos7にあります。
xauth list $DISPLAY
そして何も返ってきません。私はMITマジッククッキーを追加しようとしました。
xauth list
しかし、もちろんそれは機能しません。sudo なしの ssh 経由の通常の X 転送は機能します。
sshd の設定は 3 台のサーバーで同じです。
- スラックウェア作品
- hpux 作品
- セントロス7 動作しない
答え1
別の解決策としては、現在のユーザーの .Xauthority ファイルを root ユーザーのファイルとマージすることです。
ssh user@host
- .Xauthority ファイルの権限を変更して、root もアクセスできるようにします。
sudo su - root
xauth merge /home/users/user/.Xauthority
テスト
gedit somefile.log
gedit ウィンドウが開きます。
答え2
解決策を永続的にするには、.bashrc
ログインユーザーのファイルを変更して追加します。
if [ -z "$XAUTHORITY" ]; then
export XAUTHORITY=$HOME/.Xauthority
fi
sudoers
さらに、行を追加してファイルを更新する必要があります
Defaults env_keep+="DISPLAY XAUTHORITY"
root がログイン ユーザーの.Xauthority
ファイルに対して読み取り権限を持っている場合は、X アプリケーションを使用できます。
答え3
解決策が見つかりました。代替方法はここからコピーしましたブログ このスクリプトを使用する
userfirst=sshloginuser
usersecond=sudoorsuuser
$usersecond@host$
su - $userfirst -c 'xauth list' |\
grep `echo $DISPLAY |\
cut -d ':' -f 2 |\
cut -d '.' -f 1 |\
sed -e s/^/:/` |\
xargs -n 3 xauth add
または単にuser1としてログインする
xauth list
su または sudo su user2
xauth add OUTPUTOFXAUTHLIST
答え4
非常にシンプルな汎用コマンド:
sudo xauth merge /home/$USER/.Xauthority
これにより、ルート環境がアクティブになり、現在の (非ルート) ユーザーの xauth 情報がマージされます。
別の方法として、Slackware のコメントで報告された所有権の問題を防ぐことができます。
cat ~/.Xauthority | sudo xauth merge -