Submitted by gouki on 2011, November 21, 5:09 PM
文抄公是一种鄙视,事实上有很多时间我们都在做着文抄公的事情。嗯,我也是一个文抄公。仅此而已
抄是一种美德,抄是一种文化,天下文章都是一大抄,无非就是你抄我我抄你的,几年前的黄夏留老师也说过,当全班同学都在抄的时候,只有一个同学没抄,他的名字叫杨伟。
好吧,这仅仅是一个笑话。
互联网上的东西,确实抄来抄去的比较多,但怎么着也得给对方留一下链接,代表了文章的来源。你摘抄了没错,但也不能否认别人的辛苦劳动。如果大家都只抄内容不抄链接,这终将是一个恶性循环。
事实上,很多人在抄的同时,都放弃了原作者原内容的样式、风格,甚至连内容都有放弃,这个时候你让别人在看到你的文章时怎么想?
给别人留条后路,也给自己留条路。
Misc | 评论:0
| 阅读:12657
Submitted by gouki on 2011, November 19, 10:12 PM
其实这很正常,也不意外,这么久了。。。也该正式版了
不过,jQueryMobile里我想找那个DoubleTap事件也没有好好找到。可能是我没有仔细关注吧?
然后一些clientX移动的事件,也不是特别的爽。。。
OK,去官网看看吧,http://jquerymobile.com
官方说这次正式版的性能提高了很多,在这里有一张图片:http://jquerymobile.com/blog/2011/11/16/announcing-jquery-mobile-1-0/
demo其实也能看,不过要好效果的话,还是建议使用webkit核心的浏览器:Demos & Documentation
Tags: jquerymobile
Javascript | 评论:0
| 阅读:14285
Submitted by gouki on 2011, November 19, 12:52 AM
上次介绍的vsftpd的配置是官方文档,这次是COPY来的,相对也是比较方便的,而且改动也很少。
只是需要libpam-mysql,mysql-dev等包。如果是基于ubuntu,那就实在是方便多了。都可以apt回来。。
OK,还是来原文吧,内容有点长,慢慢看就OK了:http://www.extmail.org/forum/thread-5427-1-1.html
VSFTP+MySQL虚拟用户配置
参考
[url]http://www.mysql-china.com/bbs/archiver/?tid-114.html[/url]
[url]http://blog.chinaunix.net/u1/39544/showart_310591.html[/url]
VSFTPD是一种在UNIX/Linux中非常安全且快速的FTP服务器,目前已经被许多大型站点所采用。VSFTPD支持将用户名和口令保存在数据库文件或数据库服务器中。VSFTPD称这种形式的用户为虚拟用户。相对于FTP的本地(系统)用户来说,虚拟用户只是FTP服务器的专有用户,虚拟用户只能访问FTP服务器所提供的资源,这大大增强系统本身的安全性。相对于匿名用户而言,虚拟用户需要用户名和密码才能获取FTP服务器中的文件,增加了对用户和下载的可管理性。对于需要提供下载服务,但又不希望所有人都可以匿名下载;既需要对下载用户进行管理,又考虑到主机安全和管理方便的FTP站点来说,虚拟用户是一种极好的解决方案。
环境:
操作系统: centos 4
流程图: user --> vsftpd-2.0.1 --> pam_mysql-0.71 --> mysql-server-4.1
1,初始化centos升级服务器.
# vi /etc/yum.repos.d/CentOS-Base.repo
=============== 代码 { ================================================
[base]
name=CentOS-4 - Base
baseurl=http://mirror.be10.com/centos/4/os/i386/
gpgcheck=1
#released updates
[update]
name=CentOS-4 - Updates
baseurl=http://mirror.be10.com/centos/4/updates/i386/
gpgcheck=1
#packages used/produced in the build but not released
[addons]
name=CentOS-4 - Addons
baseurl=http://mirror.be10.com/centos/4/addons/i386/
gpgcheck=1
#additional packages that may be useful
[extras]
name=CentOS-4 - Extras
baseurl=http://mirror.be10.com/centos/4/extras/i386/
gpgcheck=1
#additional packages that extend functionality of existing packages
[centosplus]
name=CentOS-4 - Plus
baseurl=http://mirror.be10.com/centos/4/centosplus/i386/
gpgcheck=1
enabled=0
#contrib - packages by Centos Users
[contrib]
name=CentOS-4 - Contrib
baseurl=http://mirror.be10.com/centos/4/contrib/i386/
gpgcheck=1
enabled=0
#packages in testing
[testing]
name=CentOS-4 - Testing
baseurl=http://mirror.be10.com/centos/4/testing/i386/
gpgcheck=1
enabled=0
=============== 代码 } =================================================
# rpm -import [url]http://mirror.be10.com/centos/RPM-GPG-KEY-CentOS-4[/url]
2.安装所要软件包:
# yum -y install mysql-server*
# yum -y install vsftpd
# yum -y install vim*
3.建立系统用户,用户ftp登录时访问目录权限.但用户不允许登录.
# useradd vsftpdguest
# vi /etc/passwd
============= 代码 { =====================================
vsftpdguest:x:501:501::/home/vsftpdguest:/bin/nologin
============= 代码 } =====================================
4.将虚拟用户保存在MySQL数据库服务器中
建立数据库vsftpdvu,表users,字段name和passwd用于保存虚拟用户的用户名和口令,增加两个虚拟用户q和ftp1。
# service mysqld start
# mysql
mysql> create database vsftpdvu;
mysql> use vsftpdvu;
mysql> create table users(name char(16) binary,passwd char(16) binary);
mysql> insert into users (name,passwd) values ('q','q');
mysql> insert into users (name,passwd) values ('ftp1','success8');
mysql> quit
授权vsftpdguest可以读vsftpdvu数据库的users表。执行以下命令:
# mysql -u root mysql -p
mysql> grant select on vsftpdvu.users to vsftpdguest@localhost identified by 'i52serial0';
mysql> quit;
验证刚才的操作是否成功可以执行下面命令:
# mysql -u vsftpdguest -pi52serial0 vsftpdvu
mysql> select * from users;
5.设置MySQL的PAM验证(pam_mysql.so)
利用mysql进行pam验证的开源项目([url]http://sourceforge.net/projects/[/url]),主要目的是生成 pam_mysql.so文件
# tar xvzf pam_mysql-0.5.tar.gz
# cd pam_mysql
# make
# make install
make install这一步可能会出现错误,那只好手动将该目录下生成的pam_mysql.so复制到/lib/security目录下。
设置vsftpd的PAM验证文件。打开/etc/pam.d/vsftpd文件,修改内容:
# vi /etc/pam.d/vsftpd
======================== 代码 { ======================================
#%PAM-1.0
#auth required pam_listfile.so item=user sense=deny file=/etc/vsftpd.ftpusers onerr=succeed
#auth required pam_stack.so service=system-auth
#auth required pam_shells.so
#account required pam_stack.so service=system-auth
#session required pam_stack.so service=system-auth
auth required pam_mysql.so user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=0
account required pam_mysql.so user=vsftpdguest passwd=i52serial0 host=localhost db=vsftpdvu table=users usercolumn=name passwdcolumn=passwd crypt=0
======================== 代码 { ======================================
上面涉及到的参数,只要对应前面数据库的设置就可以明白它们的含义。这里需要说明的是crypt参数。crypt表示口令字段中口令的加密方式:crypt=0,口令以明文方式(不加密)保存在数据库中;crypt=1,口令使用UNIX系统的DES加密方式加密后保存在数据库中;crypt=2,口令经过MySQL的password()函数加密后保存,但是使用了crypt=2时会出错,可能是pam_mysql.so文件问题.
6.设置vsftpd 登录模式:
# vi /etc/vsftpd/vsftpd.conf
======================= 代码 { ==============================
local_enable=yes <--本地用户登录权限,要开启
pam_service_name=vsftpd <--验证文件/etc/pam.d/目录下
anonymous_enable=NO <--取消匿名登录
guest_enable=YES <--除了匿名用户外的所有用户都是guest
guest_username=vsftpdguest <--初了匿名用户外的所有用户使用vsftpdguest
======================= 代码 } ==============================
7.重启mysql、vsftpd数据库,进行测试:
# service mysqld restart
# service vsftpd restart
8.进一步的虚拟用户设置
首先,介绍虚拟用户的权限设置。
新添了virtual_use_local_privs参数,当该参数激活(YES)时,虚拟用户使用与本地用户相同的权限。当此参数关闭(NO)时,虚拟用户使用与匿名用户相同的权限,这两者种做法相比,后者更加严格一些,特别是在有写访问的情形下。默认情况下此参数是关闭的(NO)。
当virtual_use_local_privs=YES时,只需设置write_enable=YES,虚拟用户就可以就拥有写权限。
当virtual_use_local_privs=NO时,对虚拟用户权限的设置就更多一些更严格一些。
控制虚拟用户浏览目录:如果让用户不能浏览目录,但仍可以对文件操作,那么需要执行以下二个步骤:
第一步骤:配置文件中:
anon_world_readable_only=YES
允许虚拟用户上传文件: write_enable=YES
anon_upload_enable=YES
允许虚拟用户修改文件名和删除文件: anon_other_write_enable=YES
第二步骤:虚拟用户目录的权限改为只能由vsftpdguest操作:
# chown vsftpdguest.vsftpdguest /home/vsftpdguest
# chmod 700 /home/vsftpdguest
由于以上选项的设置同样会对匿名用户生效。如果不想匿名用户趁机拥有同样的权限,最好是禁止匿名用户登录。
其次,由于虚拟用户在系统中是vsftpdguest身份,所以可以访问到系统的其他目录。为了更加安全,我们可以将虚拟用户限制在自家目录下。有两种做法:
第一种做法:在配置文件中修改
chroot_local_user=YES。
第二种做法:在配置文件中增加以下选项
chroot_local_user=NO
chroot_list_enable=YES
chroot_list_file=/etc/vsftpd.chroot_list
然后,在/etc/vsftpd.chroot_list文件中加入虚拟用户名q和ftp1。
经过修改后,虚拟用户登录后其根目录就限制在/home/vsftpdguest下,无法访问其他目录。
9.虚拟用户个人目录(没有测试)
登录后所在的目录都是/home/vsftpdguest,即都是guest_username用户的自家目录。为每个虚拟用户建立自家目录。
首先,在主配置文件中加入以下选项:
# vi /etc/vsftpd/vsftpd.conf
user_config_dir=/etc/vsftpd/vsftpd_user_conf
然后,生成/etc/vsftpd/vsftpd_user_conf目录,并在该目录下建立与特定虚拟用户同名的文件:
# mkdir /etc/vsftpd/vsftpd_user_conf
# cd /etc/vsftpd/vsftpd_user_conf
# touch q
以上操作为虚拟用户q建立了个人配置文件/etc/vsftpd/vsftpd_user_conf/q.
接下来,在q的个人配置文件中将 q虚拟用户的自家目录修改为/home/q,配置选项为:
local_root=/home/q
最后,新建q目录,并将权限设为vsftpdguest:
# mkdir /home/q
# chown vsftpdguest.vsftpdguest /home/q
# chmod 600 /home/q
经过以上设置,q登录VSFTPD后,用“pwd”指令就可以发现被自己被定位到自己的“/home/q”目录。
从文件系统层次来看,由于“/home/q”目录的权限是属于vsftpdguest的,所以其他的虚拟用户同样也可以访问q的自家目录。
解决这个问题也很简单,只需要让VSFTPD负责将虚拟用户限制在其自家目录,就可以避免虚拟用户的互相访问。具体做法参照前面第8步中所述。经过以上设置后,虚拟用户就可以拥有属于自己的目录了。
使用user_config_dir参数,在每个用户独立的配置文件里设定不同的权限和local_root参数就可以了
帮助:
在第5步处可以对程序进行调整:
# vi /etc/vsftpd/vsftpd.conf 查看ftp连接情况
log_ftp_protocol=YES
dual_log_enable=YES
syslog_enable=YES
# vi /etc/pam.d/vsftpd 调试pam_mysql连接情况
auth required /usr/local/lib/security/pam_mysql.so user=root passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2 verbose=1
account required /usr/local/lib/security/pam_mysql.so user=root passwd=123456 host=localhost db=vsftpd table=users usercolumn=name passwdcolumn=passwd crypt=2 verbose=1
---------
最后,你在上传的时候会发现,文件权限都是600,看vsftpd.conf里,有一个local_umask,上面还有注释,如果要改改成022,大多数Ftpd都是这么配置的。
关于umask为什么是022,可以查看老王的文章:Umask补习班
里面有这么一句:注:权限计算实际上是二进制位的与操作,参考All About the umask and Permissions。
Tags: vsftpd
Linux | 评论:1
| 阅读:14509
Submitted by gouki on 2011, November 18, 12:55 AM
看到这里的时候,又有点感触。
事实上现在就处于这种情况,想找人的时候找不到,不想找人的时候,面试的人一大堆。
可是你说真要拿来做人才储备吧,可能几个月都用不上他,那时候更纠结。
OK,看看rework中怎么说:
应付不来的时候才雇人
不要在高兴的时候去雇人;雇人是为了解决事情。重复的问自己:如果我们不雇佣任何人又怎样?那些让我们烦恼的加班是否真的有必要?我们能用一部分软件或者改变一下业务来解决这个问题吗?如果我们不这样做又会怎样?
同样的,如果你解雇了某人,不要立刻找人来替代他的位置。 看看你没有了那个人和那个职位可以撑多久。你会发现其实实际上不需要想象中那么多人。
雇人的正确时间是你顾及不过来的时候。你不能再做更多的事情,发现产品质量在下滑;当你苦恼的时候就可以雇人了,不能太早。
割舍那个你并不需要的牛人
有的公司对雇人乐此不疲。有的公司在不需要雇人的时候都在招聘。他们听说某某很厉害,于是造出一个职位和头衔吸引人家入伙。结果人家来了,坐上一个不重要的位子,做些不重要的事情。
别管那些你不需要的人,就算你觉得那个人是个牛人。 如果你引进一个做些无用功的人才,那这样对你的公司来说是有害而无一利的。
问题出现在你有超过需求的人员。你开始弄出点工作好让这些人忙起来。人为的工作导致人为的项目。而人为的项目导致实际成本和错综复杂的状况。
不要担心“错过了那个人”。让一个人做些没有意义的事情会更糟。天底下有那么多人才。当你真正有需求的时候就会找到一个合适的人选。
牛没什么用。如果你不需要人,那你就不需要雇人。
Tags: rework
Misc | 评论:0
| 阅读:12703
Submitted by gouki on 2011, November 18, 12:25 AM
这是其中一段,事实上在很久以前就知道了,但最终都无法改变
里面的一小段说的很有意思,那就是,会议会衍生会议,。。。。
OK,上原文:
会议有毒
会议是最糟糕的打断方式。原因是:
通常会议只是文字和抽象的内容,没有实质。
通常会议每分钟只传达出极为少的信息。
人们在会议中容易跑题堪比暴风雪里的芝加哥出租车。
会议要求做充分的准备,但是大多数人难以做到。
频繁的提出模糊的议程而没有人能真的清楚目标是什么。
常常会出现至少一个傻瓜不可避免的,毫无意义的浪费大家时间。
会议会繁殖。一次会议会导致另外一次,再生出下一次......
不幸的是会议典型的时间表就像电视节目。
你腾出 30 分钟或一个小时因为那是软件安排的行时间表( 你决不会看见任何人安排 7 分钟时间和 Outlook 开会)。太糟了。如果只是花 7 分钟时间就能完成会议目标,那这就是你所要花的所有时间。别把 7 分钟拖到 30 分钟。
想想看,会议所花费的真实时间是惊人的。 假如你准备安排一次会议持续一个小时,你请了 10 个人到场。那确实是 10 个小时的会议,不是一小时会议。你用 10 小时的生产力换来一个小时的会议时间。也有可能花超过 15 小时的时间,因为要停下你正在做的事情,需要精神转换, 去哪里见什么人,然后再重新开始预先在做的事情。
花 10 小时生产力去换 1 个小时的会议可以吗?有时,也许可以。但这样真的不划算。 就基于付出的来说, 这种规模的会议很快就变成一种不利因素而不是有力因素。 想想你浪费的时间,值得吗?
如果你执意要聚一下,试着坚持以下原则会让你的会议有成效:
用计时器。当它响起,会议结束。句号。
尽量减少与会人员。
保持清楚的议程。
开篇点题。
就地解决。指出实际问题,提出实质改变。
作出结论,找个靠谱的人去执行。
Tags: rework
Misc | 评论:0
| 阅读:13282