Ssh
ssh 和 sudo 但沒有 $DISPLAY
通常我在 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
它什麼也不返回。我嘗試添加由
xauth list
但它當然行不通。通過 ssh 的正常 X 轉發,沒有 sudo 工作。
sshd 的設置在 3 台伺服器上是相同的:
- slackware工作
- hpux 工作
- centos7 不工作
另一種解決方案是將目前使用者的 .Xauthority 文件與 root 使用者的文件合併。
ssh user@host
- 更改 .Xauthority 文件權限,以便 root 也可以訪問它。
sudo su - root
xauth merge /home/users/user/.Xauthority
測試
gedit somefile.log
它應該打開一個 gedit 視窗。
要使解決方案永久化,您可以修改
.bashrc
登錄使用者的文件添加if [ -z "$XAUTHORITY" ]; then export XAUTHORITY=$HOME/.Xauthority fi
此外,您必須更新
sudoers
文件添加行Defaults env_keep+="DISPLAY XAUTHORITY"
如果 root 對登錄使用者的
.Xauthority
文件具有讀取權限,您將能夠使用 X 應用程序。