首页 » 排名链接 » ​利用Shell开发跳板机功能脚本案例(跳板脚本操作弹出菜单)

​利用Shell开发跳板机功能脚本案例(跳板脚本操作弹出菜单)

乖囧猫 2024-10-30 16:18:19 0

扫一扫用手机浏览

文章目录 [+]

范例17_6:开发企业级Shell跳板机案例。
要求用户登录到跳板机仅能执行管理员给定的选项动作,不允许以任何形式中断脚本到跳板机服务器上执行任何系统命令。

方法1:

1)首先做好SSH密钥验证(跳板机地址192.168.33.128)。

​利用Shell开发跳板机功能脚本案例(跳板脚本操作弹出菜单) 排名链接
(图片来自网络侵删)

以下操作命令在所有机器上操作:

[root@oldboy~]# useradd jump #<==要在所有机器上操作。
[root@oldboy~]# echo 123456|passwd --stdin jump #<==要在所有机器上操作。
Changingpasswordforuserjump.passwd:allauthenticationtokensupdatedsuccessfully.

以下操作命令仅在跳板机上操作:

[root@oldboy~]#su-jump[jump@oldboy~]$ssh-keygen-tdsa-P''-f~/.ssh/id_dsa>/dev/null2>&1#<==生成密钥对。
[jump@oldboy~]$ssh-copy-id-i~/.ssh/id_dsa.pub192.168.33.130#<==将公钥分发到其他服务器。
Theauthenticityofhost'192.168.33.130(192.168.33.130)'can'tbeestablished.RSAkeyfingerprintisfd:2c:0b:81:b0:95:c3:33:c1:45:6a:1c:16:2f:b3:9a.Areyousureyouwanttocontinueconnecting(yes/no)?yesWarning:Permanentlyadded'192.168.33.130'(RSA)tothelistofknownhosts.jump@192.168.33.130'spassword:Nowtryloggingintothemachine,with"ssh'192.168.33.130'",andcheckin:.ssh/authorized_keystomakesurewehaven'taddedextrakeysthatyouweren'texpecting.[jump@oldboy~]$ssh-copy-id-i~/.ssh/id_dsa.pub192.168.33.129#<==将公钥分发到其他服务器。
Theauthenticityofhost'192.168.33.129(192.168.33.129)'can'tbeestablished.RSAkeyfingerprintisfd:2c:0b:81:b0:95:c3:33:c1:45:6a:1c:16:2f:b3:9a.Areyousureyouwanttocontinueconnecting(yes/no)?yesWarning:Permanentlyadded'192.168.33.129'(RSA)tothelistofknownhosts.jump@192.168.33.129'spassword:Nowtryloggingintothemachine,with"ssh'192.168.33.129'",andcheckin:.ssh/authorized_keystomakesurewehaven'taddedextrakeysthatyouweren'texpecting.

2)实现传统的远程连接菜单选择脚本。

菜单脚本如下:

cat<<menu1)oldboy-192.168.33.1292)oldgirl-192.168.33.1303)exitmenu

3)利用linux信号防止用户中断信号在跳板机上操作。

functiontrapper(){trap':'INTEXITTSTPTERMHUP#<==屏蔽这些信号。
}

4)用户登录跳板机后即调用脚本(不能命令行管理跳板机),并只能按管理员的要求选单。

以下为实战内容

脚本放在跳板机上:

[root@oldboy~]#echo'[$UID-ne0]&&./server/scripts/jump.sh'>/etc/profile.d/jump.sh[root@oldboy~]#cat/etc/profile.d/jump.sh[$UID-ne0]&&./server/scripts/jump.sh[root@oldboyscripts]#cat/server/scripts/jump.sh#!/bin/sh#oldboytrainingtrapper(){trap':'INTEXITTSTPTERMHUP#<==定义需要屏蔽的信号,冒号表示啥都不做。
}main(){while:dotrapperclearcat<<menu1)Web01-192.168.33.1292)Web02-192.168.33.130menuread-p"Plsinputanum.:"numcase"$num"in1)echo'loginin192.168.33.129.'ssh192.168.33.129;;2)echo'loginin192.168.33.130.'ssh192.168.33.130;;110)read-p"yourbirthday:"charif["$char"="0926"];thenexitsleep3fi;;)echo"selecterror."esacdone}main执行效果如下:[root@oldboy~]# su - jump #<==切到普通用户即弹出菜单,工作中直接用jump登录,即弹出菜单。
1)Web01-192.168.33.1292)Web02-192.168.33.130Plsinputanum.:1)Web01-192.168.33.1292)Web02-192.168.33.130Plsinputanum.:1#<==选1进入Web01服务器。
loginin192.168.33.129.Lastlogin:TueOct1117:23:522016from192.168.33.128[jump@littleboy~]$#<==按ctrl+d退出到跳板机服务器再次弹出菜单。
1)Web01-192.168.33.1292)Web02-192.168.33.130Plsinputanum.:2#<==选2进入Web02服务器。
loginin192.168.33.130.Lastlogin:WedOct1223:30:142016from192.168.33.128[jump@oldgirl~]$#<==按ctrl+d退出到跳板机服务器再次弹出菜单。
1)Web01-192.168.33.1292)Web02-192.168.33.130Plsinputanum.:110#<==选110进入跳板机命令提示符。
yourbirthday:0926#<==需要输入特别码才能进入的,这里管理员通道,密码要保密呦。
[root@oldboyscripts]##<==跳板机管理命令行。

本文内容来源于:《跟老男孩学linux运维:Shell高级编程实战》,易懂的Shell书籍!

标签:

相关文章

机械行业……(小吃工匠钳工竹雕金牌)

——记三明“金牌工匠”乐相森沙县小吃在全国有6.3万家门店,从业人员数十万人,已成为福建省乃至全国的“金字招牌”。任何经久不衰的品...

排名链接 2025-02-17 阅读1079 评论0