這個問題在中文搜尋中很難搜到乙個有用的解決辦法,所以google之後搬運一下解決辦法。
問題:
ssh [email protected]
user@myserver$ su
error: can't open display: localhost:10.0
報錯:error: can』t open display: localhost:10.0
這是因為切換使用者之後,x的認證變了
user@myserver$ xauth info
authority file: /home/user/.xauthority
file new: no
file locked: no
number of entries: 82
changes honored: yes
changes made: no
current input: (ar**):1
root@myserver# xauth info
authority file: /root/.xauthority
file new: no
file locked: no
number of entries: 3
changes honored: yes
changes made: no
current input: (ar**):1
所以乙個臨時的解決辦法是把user使用者的xauth的cookie新增到root使用者(或者其他要切換的使用者)
先檢視user的xauth資訊
user@myserver$ xauth list $display
remote/unix:10 mit-magic-cookie-1 dacbc5765ec54a1d7115a172147866aa
複製這行資訊,切換使用者,然後用xauth add 新增
user@myserver$ su
root@myserver# xauth add remote/unix:10 mit-magic-cookie-1 dacbc5765ec54a1d7115a172147866aa
這時候應該能正常執行gui程式了,但是這個方法是臨時的,斷開連線之後,重新連線就失效了。
下面介紹一種長效的方法:
修改檔案/etc/pam.d/su,在檔案中新增session optional pam_xauth.so systemuser=1
然後儲存,退出。
退出root使用者,重新登陸root使用者,這時候gui應該已經正常了。
當然,如果你要切換的使用者也能ssh,那你另外開乙個那個使用者的連線也是能解決問題的,或者在當前使用者下執行
$ ssh user2@localhost
曲線救國,但是我的場景是必須要root執行一些程式,並且出於安全考慮ssh禁止了root使用者登入。 關於使用su切換使用者之後,命令無法
在很多的linux指令碼中,我們需要su切換使用者,來執行相應許可權的命令。如果指令碼中直接su的話,大多數情況,命令在su之後不會繼續執行。因此,我們需要換一種方式來實現su命令,在這裡,我推薦使用expect結合spawn命令來實現。例項如下 export cmd1 usr bin impala...
linux 切換使用者之後變成 bash 3 2
root localhost groupadd oinstall root localhost groupadd dba root localhost cd root localhost mkdir p u01 oracle root localhost useradd g oinstall g d...
linux中切換使用者
檢視當前登入使用的使用者名稱 檢視登入過的使用者名稱 登入的主機位址 時間 tt號 who從當前使用者切換到其他使用者 su 其他使用者名稱 從dsl使用者切換到admin使用者 注意輸入密碼處,要輸入你要切換到的使用者的密碼 dsl localhost admin su admin 從當前使用者切...