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  [email protected]

2)在/home/userB/.bashrc文件中追加以下内容

ssh [email protected]

以上操作完成后,在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之间的来回切换对客户来说是完全透明的。

时间: 2024-12-23 12:55:00

Linux系统命令"su - user"在普通用户之间的免密切换的相关文章

多台linux主机之间建立免密通信

多台linux主机之间设置免密通信 例:A 向 B设置免密通信 第一步 A生成密钥对 ssh-keygen -t rsa -t 指定秘钥的类型 rsa 秘钥类型 密钥目录:/root/.ssh/(如果是root账户,注意:不同用户之间不共享密钥对) 私钥 id_rsa 钥匙 公钥 id_rsa.pub 锁 第二步 编辑B主机root账户下(其他账户同理)认证文件 vi /root/.ssh/authorized_keys 将之前A主机生成的公钥id_rsa.pub内容复制到B主机的authori

【Linux】服务器之间的免密登录脚本

在实际运维的过程中,经常需要用到免密登录,下面这个脚本实现服务器之间的免密登录,如下 比如,要实现A服务器与B.C.D服务器的免密登录,只需要将B.C.D服务器的IP地址写在serverlist.txt中,然后在A服务器上执行下面这一段命令即可. #!/bin/bash #免密登录脚本 #作者:海蓝之心赛 #使用说明 #在和本脚本同级目录下,创建一个名为serverlist.txt的文件,将需要做免密登录的服务器ip地址列表写在serverlist.txt中,每个IP地址占用一行. #特殊说明,

Linux下普通用户免密切换root

1. 以root用户登录shell终端,执行vim /etc/sudoers命令,找到如下图所示位置: p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 20.0px Monaco; color: #5230e1; background-color: rgba(0, 0, 0, 0.85) } span.s1 { } span.s2 { color: #0000b3; background-color: #e6e600 } ## Same thing w

Hadoop用户配置ssh免密登录

一般生产环境 Hadoop组件都是由hadoop用户来启动,首先需要配置hadoop用户ssh免密登录 1.创建Hadoop用户 [[email protected] ~]# useradd hadoop [[email protected] ~]# id hadoop uid=1102(hadoop) gid=1102(hadoop) groups=1102(hadoop) [[email protected] ~]# passwd hadoop Changing password for u

非root用户的SSH免密登录

在网上找到的教程一般是这样说的 cd ~/.ssh/ # 若没有该目录,请先执行一次ssh localhost ssh-keygen -t rsa # 会有提示,都按回车就可以 cat id_rsa.pub >> authorized_keys # 加入授权 chmod 600 ./authorized_keys # 修改文件权限 然后使用 ssh localhost测试 使用root用户,或属于root组的用户如此操作的时候是没问题的 但是其他情况则没有起到免密的作用,使用SSH登录的时候仍

Linux 普通用户之间免密登陆

目的: 同台机器之间实现普通用户之间的免密登陆: NN01 的user1 免密登陆 user2 不同机器之间实现普通用户之间的免密登陆 :NN01 的user1 免密登陆 NN01 的user1 一.同台机器之间实现普通用户之间的免密登陆 普通用户之间的免密登陆和 使用root 进行免密登陆,基本设置都是一样的,只不过普通用户之间需要修改 .ssh 和 authorized_keys 的权限免密才能生效. 登陆 user1 的前提下, ssh-keygen #使用 ssh-keygen 命令,一

中小企业openstack私有云布署实践【11.3 计算nova - compute节点-nova用户免密登录(用于云主机冷迁移+扩展云主机大小)】

云主机迁移+扩展云主机大小 ,官方说它依赖nova用户之间的免密登录.确保每个resion区域的compute节点服务器他们可以相互SSH免密 compute1-7     他们相互SSH免密 kxcompute1-9  他们相互SSH免密 1.注意!是每台机器上的nova用户向另一台机器的nova用户的免密登录 每台compute节点修改ssh配置,目的是为了不让其提示输入yes保存密钥 vi /etc/ssh/ssh_config 尾部添加 StrictHostKeyChecking no

Linux配置免密登陆

可能很多新手在配置免密登陆的时候第一次会经常没有配成功,会报错. 在这里将为大家演示最简洁且能一次配置成功的教程 首先以3台机器为例: 192.168.3.102 master 192.168.3.103 node01 192.168.3.104 node02 1.进入.ssh [[email protected] ~]$ cd .ssh  2.生成公钥和私钥 [[email protected] .ssh]$ ssh-keygen -t rsa 然后依次按下三个回车,会生成两个文件id_rsa

linux系统命令学习系列-用户切换命令su,sudo

先复习一下上节内容: 用户组添加groupadd 用户组修改groupmod 用户组删除groupdel 作业创建一个id为501的组group1,然后改成group2, 同时id变为502,最后删除这个组,命令分别如下: groupadd –g 501 group1 groupmod –g 502 –n group2 group1 groupdel group2 这一节,我们来说一下用户切换相关命令 为什么要进行用户切换? 在操作过程中需要使用特定的用户进行特定的操作,多数情况下是因为权限,比