在开发类webmin的远程控制程序所遇到的困难……
类UNIX系统在远程控制方面有先天的优势,只要拥有相当的权限我们就可以使用telnet、ssh远程登录到服务器完成任意动作……
但对于不熟悉UNIX系统的人,远程登录似乎没有什么意义?鉴于此就出现了类似webmin的基于web的图形化的远程管理程序……
现在我们公司也需要开发一套这样的程序,我在UNIX服务器采用的架构是apache+perl,但开发过程中我遇到了无法回避的问题:很多UNIX程序都具有交互式的特性,比如密码修改,磁盘空间限额等等,那么如何使用CGIl调用UNIX交互式程序并和客户端的web页交互?说简单点就是如何实现在web上对Unix密码进行修改?如何对用户磁盘空间限额进行管理?
望指教……
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(6)
你问的这个问题其实你自己可以找到答案了。
答案就在webmin的源码中。
没错,我可以去研究webmin的源代码找到问题的解决办法,但是这并不是最有效率的方法……
所以想问问诸位有经验的大虾,哪怕是探讨一下也好啊……
好吧,我告诉你我不知道如何用perl来使用这个。可是你如果系统中安装一个额外的工具叫expect可以解决shell命令的交互式的烦劳。
我没有仔细看webmin的perl的源代码,所以我不能告诉你如何做。
我作个类似的东西。我是使用php来做的:
先用php产生加密串后修改/etc/shadow中的相应行来替换原来的密码。
我是这样做的。但是我还是推荐你使用expect工具用perl执行shell命令来做,这样比较好。
一般的redhat系统都安装了expect这个工具命令。
我觉得这类程序用处不大。
我们一般都是用SSH连接,远程控制。
expect,比较好用。
其他的就没什么比较好的方法了吧
不过只是修改密码的话可以用chpasswd
不用交互,还可以批量改变
在做安装程序的时候,我们的安装环境没有expect,只能用这个。
谢谢各位大虾……
如果仅仅是修改系统用户密码,那么调用CGI中的函数crypt,然后用生成的密码替换/etc/shadow文件的相应位置即可……
但是当我修改samba密码时,我就无能为力了,因为我不知道samba所采用的密码机制……
为了解决这类交互式问题,所以我需要从本质上来找到问题的解决方案……
expect我没有用过,我会试试,多谢各位……