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

本文介绍了一种在Linux环境下利用堡垒机实现不同用户间自动、无感切换的方法。通过配置pam.d模块及SSH密钥,使userB登录后自动变为userA,同时解决了退出时的用户体验问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

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

转自https://www.linuxidc.com/Linux/2017-08/146595.htm
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值