Chinaunix

标题: c/s结构程序以某个身份运行的问题 [打印本页]

作者: 21ccz    时间: 2006-09-18 12:47
标题: c/s结构程序以某个身份运行的问题
我有一些c/s 结构的程序分布在各个终端上。因为他们访问数据库的口令需要定期修改,为了集中修改这些数据库口令,我们准备将访问数据库的信息放在一个网络共享目录中。这个目录只有部分用户具有访问权限,如何实现这些c/s结构的程序在run的时候是以一个固定的帐号来run的\r\n例如用户A不具有对网络目录\\\\aaa\\bbb的访问权限,用户B对目录\\\\aaa\\bbb有访问权限,程序P1读数据库的帐号及口令信息放在\\\\aaa\\bbb中,用户A启动程序P1时,程序实际是以用户B的身份运行,读取\\\\aaa\\bbb中存放的访问数据库的信息,但不需要用户A来输入用户B的口令。
作者: 21ccz    时间: 2006-09-18 15:15
自己顶一下!\r\n我说的不是exe文件右键的run as,右键的run as需要键入运行者的口令。
作者: wangyuweng    时间: 2006-09-19 21:57
有一条Dos命令\r\nNet use \\\\aaa\\bbb /user:用户名 密码
作者: 21ccz    时间: 2006-09-19 22:40
最初由 wangyuweng 发布\r\n[B]有一条Dos命令\r\nNet use \\\\aaa\\bbb /user:用户名 密码 [/B]
\r\n\r\n这样的话执行者A还是需要知道B的口令.\r\n\r\n在unix中有setid的概念,例如普通用户没有对/etc/passwd的修改权限:\r\nc3sun0153)/etc>ls -l passwd\r\n-r--r--r--   1 root     sys          650 Sep 18 09:25 passwd\r\n但是普通用户可以使用passwd命令来修改自己的口令,这其中就是因为可执行文件/usr/bin/passwd具有setid属性,\r\nc3sun0157)/usr/bin>ls -l passwd\r\n-r-sr--sr-x   1 root     sys        21964 Apr  7  2002 passwd\r\n也就是说不论哪个用户调用passwd来修改自己的口令,实际都是以root的身份来修改/etc/passwd的,虽然该用户本身并没有直接修改/etc/passwd的权限.
作者: zeno2005    时间: 2006-09-20 11:49
是否可以將這個命令設成隱藏,隻可執行不可編輯?
作者: lastwinner    时间: 2006-09-21 13:30
在给个替代解决方案之前,却被楼主的签名先逗乐了 \r\n\r\n------------------------------------------------------------------------------------------------------------------\r\nopen了,open了,宕机的数据库终于open了。\r\n我不是一个人在战斗,我是和itpub的同学们一起战斗,我们继承了itpub的光荣传统,troubleshooting是我们的基本职责,high performance是我们的共同追求, 我们将在保证数据安全的前提下,为你提供完美的数据服务。\r\n\r\n------------------------------------------------------------------------------------------------------------------
作者: lastwinner    时间: 2006-09-21 13:42
net use可以直接将密码写在命令行中\r\n而runas方式(不管是菜单中的run as还是命令行的runas),密码必须要手工输入\r\n如此看来貌似net use是可行的,但却不能满足楼主的要求,因为这样会使得使用者A有机会接触到B的密码\r\n\r\n替代方案\r\n1、建立http服务,客户端连接数据库前先到http上去取数据库的用户及密码信息,取信息前需要先用client程序内置的特定字符作为解密字符。\r\n2、在数据库中建立用户test,内有表userpwd,用于记录实际数据库的访问用户以及口令(用特定字符进行加密)。客户端连接数据库服务器时,可先用test用户登录,然后用client程序内置的特定字符作为解密字符获得实际数据库的访问用户以及口令,再进行实际操作\r\n\r\n看样子方法2对你来说是最实在最简便的。如果没有http服务,那你使用方法1时还需要建立http服务。\r\n当然,有了加密口令的思路,你可以采用直接读取共享路径下的密码文件的方式。但建议你还是采用方法2,毕竟test用户的密码你可以设置得复杂一些,这样就相当于多了一层保护




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2