首頁 > 軟體

Linux系統命令「su - user」在普通使用者之間的免密切換

2020-06-16 17:08:50

在一種特殊情況下,我們需要用到這種方法進行使用者自動跳轉。

如圖,公司使用堡壘機進行伺服器管理時,不同伺服器機群使用了不同的系統使用者進行推播,外網機群使用"userA",內網機群使用"userB",但是要求內網機群通過堡壘機登陸之後使用的系統使用者也是userA,也就是userB登陸之後會馬上自動切換到userA,這個切換過程對客戶透明。這樣做的好處是,雖然堡壘機最終的登陸使用者都是userA,但是內外網機群的userA可以分開管理,增強了伺服器管理的靈活性和安全性。

在Linux系統下,我們可以通過設定pam.d模組,使普通使用者可以使用su命令免密碼登陸root使用者,然而,我們無法使用相同的方法令普通使用者之間su免密碼切換。

在內網機群,要實現普通使用者之間的免密碼切換,只需要做以下2步:

1)通過執行兩條命令實現userB-->userA的免密碼ssh登入

ssh-keygen -t rsa

ssh-copy-id  -i /home/userB/.ssh/id_rsa.pub  userA@127.0.0.1

2)在/home/userB/.bashrc檔案中追加以下內容

ssh userA@127.0.01

以上操作完成後,在root使用者登入的情況下,可以使用"su - userB"切換使用者,最終切換到的使用者是userA。但是,這樣做還有一個不完善的地方。我們知道,通過su命令或ssh命令切換使用者後,再使用exit命令退出伺服器時都不會完全退出,而是退出到切換前的使用者模式下。如下,退出到root使用者需要執行兩次exit命令。

要解決這個問題,只需要做第3步即可:

3)在/home/userB/.bash_profile檔案中追加以下內容

exit

這一步設定完之後,在userA使用者模式下執行exit命令退出,會直接退到root模式下,相當於userA-->root,只需要執行一次exit命令。

這樣一來,使用userB通過堡壘機或者Xshell工具登入內網機群的伺服器時,伺服器都會自動切換到userA使用者模式下,並且,使用exit命令退出時,都是完全退出。userB與userA之間的來回切換對客戶來說是完全透明的。

本文永久更新連結地址http://www.linuxidc.com/Linux/2017-08/146595.htm


IT145.com E-mail:sddin#qq.com