Linux教程

Linux系统命令“su - user”在普通用户之间的免密切换

本文主要是介绍Linux系统命令“su - user”在普通用户之间的免密切换,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

在一种特殊情况下,我们需要用到这种方法进行用户自动跳转。

如图,公司使用堡垒机进行服务器管理时,不同服务器机群使用了不同的系统用户进行推送,外网机群使用"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之间的来回切换对客户来说是完全透明的。

这篇关于Linux系统命令“su - user”在普通用户之间的免密切换的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!