LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1658|回复: 6

用su做用户切换时如何从指定文件读取密码

[复制链接]
发表于 2008-4-29 17:23:17 | 显示全部楼层 |阅读模式
主机上有两个普通用户A和B,B用户拥有一些不希望A拥有的数据库权限,但又希望A的一些操作可以拥有B的权限,故而想了这么一招,想使用su读取指定文件中B的密码,然后只能执行一次操作,但不知道该怎么把文件中内容定位到su的输入
发表于 2008-4-30 08:25:41 | 显示全部楼层
用不同的分组就可以搞定了吧,不用什么 su, 又要读密码,太麻烦了
如果你真的真的想用 su 读密码的方式,可以看一下 expect
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-4-30 09:58:15 | 显示全部楼层
Post by whitelilis;1844179
用不同的分组就可以搞定了吧,不用什么 su, 又要读密码,太麻烦了
如果你真的真的想用 su 读密码的方式,可以看一下 expect


分组是不可能变了,实验室环境下A帐户和B帐户是同一组内的,小弟没有此台服务器的root权限,因而只能通过修改B的密码然后不让A登陆了,但某些操作又需要A拥有B的权限,我是想通过编写一个脚本,里面就是包含su命令,然后通过一个文本(包含B密码的文件)定向到su命令的输入,但就是不知道怎么向su里面定位

expect不知道实验室环境里面能不能用,我试验下,多谢楼上^_^
回复 支持 反对

使用道具 举报

发表于 2008-4-30 17:00:04 | 显示全部楼层
一个用户是可以属于多个组的
我还是觉得用组来得方便得多,哈哈,个人意思
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-7 15:42:51 | 显示全部楼层
Post by whitelilis;1844376
一个用户是可以属于多个组的
我还是觉得用组来得方便得多,哈哈,个人意思



whitelilis兄,小弟装了expect5.42,用的系统是hp unix
脚本内容如下:
#! /usr/local/bin/expect

spawn su mark
expect "password: "
send "123456"
expect eof
exit

mark是要su的用户,但是每次运行这个脚本都只出现:
spawn su mark
Password:
这个是expect没有安装成功的原因么?费心^_^
回复 支持 反对

使用道具 举报

发表于 2008-5-7 17:59:34 | 显示全部楼层
我的以前也出现这个问题,原因是我安了 pam
在 pam 验证时要花一些时间,而 send 没有延迟,所以时间上不匹配,如果你也是这种情况,我有两个办法:
1)不用 pam 之类的验证程序,说真的,我用不到
2)可以用一个 autoexpect,它生成的脚本总是可用的。

另外,你可以试一下,去掉你上面的脚本中 expect "password:"那一行,和你的情况不一样,仅供参考。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-5-8 15:04:31 | 显示全部楼层
Post by whitelilis;1846813
我的以前也出现这个问题,原因是我安了 pam
在 pam 验证时要花一些时间,而 send 没有延迟,所以时间上不匹配,如果你也是这种情况,我有两个办法:
1)不用 pam 之类的验证程序,说真的,我用不到
2)可以用一个 autoexpect,它生成的脚本总是可用的。

另外,你可以试一下,去掉你上面的脚本中 expect "password:"那一行,和你的情况不一样,仅供参考。


多谢^_^,这个问题已经解决了,为了这个看了一周的expect,英文差劲,中文资料找到能用的不多,真是痛苦啊,再次感谢。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表