vkill'blog

“技术本身没有太多价值,掌握了新的思考方式才是真的收获”
Pages: 1/1 First page 1 Final page [ View by Articles | List ]
先说下我的需求,因工作环境是win,固都是在win上写scripts 然后在linux虚拟机 里执行
那么就有个问题了,我怎么传送win上的 scripts 到 linux 上去那?
我常用的方法有如下2个,下面就来分析下下面两个的优缺点
类别:linux system | Tags: , , , , , , , , | 0 条评论, 1289 次阅读
May
25
2010
这篇文章中提到了6种方法 http://blackanger.blog.51cto.com/140924/43730

实际运用中我们有时候需要交互输入(比如:执行passwd修改本地用户密码),这个时候就要用 open3 了,具体的代码如下:
类别:ruby & rails | Tags: , , , , , , | 0 条评论, 1616 次阅读
May
22
2010
初步拓扑图 20100519
http://blog.vkill.net/attachment/topology_20100519.emf
初步表关系图 20100517
http://blog.vkill.net/attachment/cdm_20100517.emf

2010.12.10-2010.12.28
重写 找回密码的功能
做自动登录 和 记住用户名
验证旧密码改用model中的函数
用hash 的 slice 方法来给user模型的时候替换掉不要的 params,这样更安全
加入验证码,做成可自定义是否使用验证码
修改signin 为路由中使用user的new去
过期时间 在 find 的时候就做判断比较好
把用户激活sid的那model改为 一对一
需要登录后才能看的网页 提供登录后跳转自动
2010.11.30-2010.12.5
测试使用model不创建表的插件 activerecord-tableless ,这样我们碰到只使用valid? 的时候就很有用
测试使用 jquery
测试使用 验证码插件 zendesk-captcha
接下来要修改model里的代码,现在很多垃圾代码,要使用 errors.add 这个,做自动登录和记住用户名这两个小功能,使用rjs做注册的时候提示用户名已被占用这个
2010.11.25-2010.11.29
重写user 和 user_account_ext_record 这两个model
把验证用户的代码写到了model 里,加入了加密时使用 salt
用户激活和用户找回密码使用一个表,表中多个字段 type
受保护的字段修改在 create 和 update 时、普通用户 和 管理员用户 时 这两种情况下的修改权限都写到了 model 中
after_find 的功能的增加,这样方便了很多,after_find 详见:ActiveRecord::Callbacks 中 The after_find and after_initialize exceptions 这段
现在完全可以在controller和view中用匿名字段
2010.11.23-2010.11.24
完成了找回密码的基本功能,下一步就是完善,做细致的错误判断,还有美化下界面。
找回密码用到的所有helper都写到了model 中了,这样方便点,以后找起来也好找
2010.11.22
学习 actionmailer ,基本上可以使用了,发现不知道发送失败怎么知道,这个空了得解决一下
2010.11.8
做注册页面的验证,照网上写了个error_div helper,另外搜到 remove div.fieldWithErrors 这个form_for 下的“讨厌”的东东,呵
2010.11.5-2010.11.6
做登陆页面和注册页面,form_for 提交后的action都是新写的,原本想的是注册页面用user controller create action,但是发现还要去改if !@save 后的render 很麻烦,还要判断,所以就复制出action后稍微修改了下,这里有个关键点就是 form_for 的写法。验证也写了,就是还要重新写下css,把错误提示写到相应 field 的下面,这样更直观点
2011.11.3-2010.11.4
做类似于 皮皮书屋 的首页
2010.8.4
对 未知用户、普通用户、超级用户 分配不同的权限,针对 User 中的7个 action 做不同权限用户不同的操作权限。未知用户只能注册;普通用户不能注册、不能查看用户列表、不能删除用户、只能查看修改自己的信息;超级用户不做限制。重点,未知用户注册后需改create action 使之跳转到登陆页面(这样权限控制要好控制点),默认的是跳转到show action
2010.7.29-2010.8.3
继续做用户认证。写了个helper,处理find时的异常,是扩展了find方法,加了begin,这样我们就可以看到详细的sql query错误。写了个helper,来批量修改受保护关键字段,这样在controller就不会出现很多的if session[:admin]
2010.7.28
做不同权限用户登录后的跳转
2010.7.26-2010.7.27
写登陆的代码,自己写个module在sessions controller 中 include 来使用自己写的helper,看看form_for 和 form_tag 是怎么用的。先不用插件,等完成了以后再看看插件的源码
2010.7.13-2010.7.15
根据需求写基本的路由表
2010.6.4
试验了plugin 下 init.rb 中加载ssh_host且conn sshd,controller中用 before_filter helper来判断conn?,在成功连接后执行sshd 上已经写好的 scripts,根据输出判断scripts是否执行成功。照这个流程试验成功
2010.6.1-2010.6.2
看了下 net/ssh 库,封装了下net/ssh,起名 ssh_host
2010.5.30
创建目录及设置目录权限考虑使用 open3库 还是 fileutils库 那?首先open3直接执行系统命令,可以根据 $? 来判断目录是否创建成功,而 fileutils mkdir、chmod、chown 都可以,但是如果目录已经存在的话,就有点区别了,系统mkdir的话会报错,而fileutils则不会。其次如果执行重启nginx,那就只能用open3了。第三考虑到win 和 linux 的话,fileutils 的 chmod 在win下还是没用的,win下设置ntfs文件夹权限还得 setacl 这个外部工具。综合考虑,还是觉得要用 open3
2010.5.21-2010.5.25
写新建pure-ftpd用户时创建目录的ruby脚本
关于ruby调用系统命令的问题上,决定使用open3库,win下用 win32/open3 ,linux下用 open3,主要是为以后用openssl 生成证书的话需要交互做考虑
windows到linux的数据同步使用 rsync
2010.5.20
搭建好rails 环境,REE 、rails、nginx+Passenger
2010.5.16-2010.5.17
配置好pure-ftpd+mysql
2010.5.14-2010.5.15
觉得应该一步一步慢慢来,画表关系图这步也不能跳过,简单学习了 powerdesigner ,画了最原始的表关系图和结构图
2010.5.11-2010.5.13
比较了vsftpd / pure-ftpd / proftpd ,最后决定使用 pure-ftpd ,考虑了配置文件是否易懂、维护是否方便、可扩展性等。过程中去稍微看了下pam 。
类别:ruby & rails | Tags: , , , , , , , , , , , , , , , , | 0 条评论, 1275 次阅读
May
14
2010
这个是前段时间做实验的时候的东西,现在记下来

upd.avira.net.cn 运行也大半年了。以前一次偶然的机会,quay776 说是使用iis后avira填代理地址为iis地址后可以升级,觉得不能理解,后来使用了 nginx 也可以,就慢慢的了解了下,觉得应该是 反向代理 的作用,虽然iis 是否有 反向代理 的功能无处可查。

好了,既然用 nginx 可以实现avira代理地址中填入nginx的地址可以升级,那么我们为啥还要讨论是否需要使用 squid 那。

记得以前我想过,avira 使用代理的时候也可以填用户名和密码的,那么我们可以适当的做点限制,比如说我们可以给不填用户名和密码的用户限速,给填入用户名和密码的用户不限速,这样可以适当的适当的解决点经济问题,毕竟vps还是每月200元租用费的;还有我们可以收集下用户的key,用来做统计用,如果过多用户使用一个key来升级的话,可以禁掉这个key,这也就变相的实现了官方是怎么封key的了。

好了,有了需求,那我们就来想办法实现,对于这两个问题nginx 都无法实现:
第一个问题:也许你会说,nginx 有 ngx_http_auth_pam_module 模块可以使用mysql中用户来认证的,但是你如果试试就知道了,nginx 的这个认证是 http 认证,而非 proxy 认证,而squid 提供的认证,是http认证,也是proxy认证,squid可以使用 auth_param 指令来使用外部script 来认证,它会给外部script传递参数的(包括用户名和密码),可以使用外部script的话,那就可以去查询mysql了,当然就可以使用 mysql 中用户了,这点我已经实验过,可行
第二个问题:nginx 我查了好多资料,应该是没法实现(自己写module另论),而squid 有个 external_acl_type 外部acl指令,也可以指定外部script,它给外部script传递参数(可包括http header中所有),而你avira升级的时候,http header 中是包括了你的key sn的,所以就可以把你key sn保存到mysql中,接下来禁止你这个key使用本代理升级就很好实现了,我相信官方判断是否一个key多人用来升级也是类似这个方法

好了,大概意思就是这样,当然实现起来还是需要点时间的,不过只要思路通了,剩下的事情还难吗?

当然实际使用中,使用 nginx 还是使用 squid+nginx 这个得看需求。
类别:linux system | Tags: , , , , , , , , | 2 条评论, 1405 次阅读
May
13
2010
刚和群里的 lxmxn quay776 讨论了下vsftpd 中怎么限制用户目录空间大小的问题
问题起源于 虚拟主机提供商 他们是怎么限制用户 虚拟空间 大小的

讨论的结果大致有下面方法:
类别:linux system | Tags: , , , , , , | 1 条评论, 1819 次阅读
May
11
2010
Pages: 1/1 First page 1 Final page [ View by Articles | List ]