1.问题
第一、很多大公司的服务器都不允许直接登录,而是通过一个跳板机才能登录过去。在跳板机中,通常只能执行几个少数命令(如SSH),而其他命令是不允许执行的,那么怎样才能实现这个功能呢?
第二、一些小公司,由于服务器比较少,不需要什么跳板机之类的说法,公司的开发运维人员加起来也就那么十几二十人,通常大家都知道root密码,所有人都是直接root登录上去,但是有时有人由于失误,把什么服务弄挂了,这时是肯定抓不到人的,因为所有人都知道密码,那么怎样才能知道谁都执行过什么命令呢?或者干脆只让他们执行少数允许的命令呢?
2.解答
这两个需求,看似不同,其实原理都相同,只要在用户与shell之间加入个检测机制就可以了,您可以去网上找些开源软件,但是如果您嫌那些软件太复杂,又不能完全满足您的需求,那么就完全可以像我这样,自己用shell写一个简易的模拟终端。
在模拟终端里,你需要做的,就是向用户提供一个看起来像是真的但实际不是真的、的虚拟终端。
而你需要做的,就是读取用户输入的命令,并在替用户执行之前进行记录,这样就实现了上面第二个需求中的记录功能。
如果你不想让用户执行哪些命令,那么仅仅echo一句“Permissiondenied”就可以将用户阻挡在真正的shell大门之外了。
如果用户要执行的命令是你允许的,那么在执行之前,记录个log就行了。如果将这个虚拟终端设置成只能执行ssh这个命令,那么不就实现了第一个问题中的跳板机的功能了吗。
所以以上两个需求,都可以总结为一个需求,那就是:拦截用户的输入,在用户与shell之间加一道门,而脚本的功能,就是根据用户不同的输入采取不同的动作,脚本的长短也就跟需要的命令的多少有关,需要的命令越多,脚本需要判断的就越多,脚本也就越长,但实际并不需要为每个命令都写一个action,只要为每个种类的写一个action就行了,比如:最简单的情形,没有任何参数的命令,如:pwd等,稍复杂些的,如touch、ls等命令,这时需要处理参数,再复杂些的,如rm、mv等命令,不只需要处理参数,还要避免用户误删数据,而以上所有命令,都需要判断用户是否有权限等等,脚本的复杂程度,完全取决于你的需求了,下面的虚拟终端内,实现了用户可以执行cdlsrmmvdownloaduploadpwdpasswd等等几个命令,如果您只实现ssh命令,那就是跳板机了。
文章知识点与官方知识档案匹配
CS入门技能树Linux入门初识Linux。
23627人正在系统学习中
关
跳板机原理
我对Linux充满好奇,总觉得它是计算机领域里的一颗璀璨的星辰。为了深入了解这个系统,我报名参加了一个Linux课程。接下来,我将分享我的学习体验,探讨Linux课程的优势以及主要的学习内容。
参加这个Linux课程,是我迈向系统管理员职业生涯的重要一步。我选择这个课程的原因,一方面是因为我对Linux有着浓厚的兴趣,另一方面也是因为它的广泛应用和良好的就业前景。
Linux课程有很多优势,其中最吸引我的是它的实践性。
与传统的理论教学不同,这门课程更注重实际操作。
通过亲手操作,我能更好地理解Linux系统的运作原理,培养解决实际问题的能力。
此外,课程还涵盖了从基础到高级的完整知识体系,使我能够全面掌握Linux的知识。
同时,我也能在课程中与老师和同学互动交流,解决我在学习中遇到的问题。
在Linux课程中,我主要学习了以下内容:
Linux基础:了解Linux的历史、发展历程、常用命令等基本概念。
文件和目录管理:学习如何创建、删除、移动、复制文件和目录,以及如何设置文件和目录的权限。
用户和组管理:理解用户和组的含义,掌握创建、删除用户和组,以及设置相应权限的方法。
软件包管理:学习使用不同的软件包管理器来安装、卸载、更新和升级软件包。
系统管理:学习进程管理、磁盘管理和文件系统等系统管理知识。
网络配置和管理:掌握配置网络接口、路由器和防火墙的方法,以及网络服务和应用的配置和管理。
Shell编程:学习Shell编程的基本语法和控制结构,以及编写Shell脚本自动化常见任务的方法。
通过这些学习内容,我能够全面地掌握Linux的知识体系。
在实际操作中,我能够运用所学知识解决遇到的问题,提升自己的技能水平。
同时,我也可以根据自己的兴趣和需求选择深入学习某些领域,例如网络安全、云计算、大数据等。
此外,参加这个Linux课程还让我结识了很多志同道合的同学。
我们互相学习、互相鼓励、共同进步。
在学习过程中,我们还参与了一些项目实践,提高了我们的实战经验和实践能力。
这些经历不仅让我收获了知识技能,还让我结交了一些值得信赖的朋友。
总的来说,参加这个Linux课程是我学习生涯中的一段宝贵经历。
通过学习Linux,我不仅掌握了丰富的知识技能,还提升了自己的职业竞争力。
如果你对Linux感兴趣,想要深入了解这个系统,我强烈推荐你也来参加这样的课程。
相信你也能从中收获满满的知识和技能,为自己的未来打下坚实的基础。
还没有评论,来说两句吧...