同一个apache的 不同虚拟主机可以运行在不同的用户权限,有趣的是并不是使用user group指令来设置,Apache1.3的virtualhost中支持user group指令,但是后来就不再支持了,取而代之的是SuexecUserGroup 指令,即指定了用户也指定了组,当然这条指令需要模块 mod_suexec的支持,还需要有程序 suexec 权限一定要正确:
-r-s–x— 1 root apache 10760 Apr 12 2005 /usr/sbin/suexec
root设置s位,任何非root用户不可写,只有同组用户可执行
urlecode 与 rawurlencode
|
输出:
———-PHP代码调试 ———-
foo @+%/
foo%20%40%2B%25%2F
foo @+%/
foo+%40%2B%25%2F
foo+@+%/
输出完成 (耗时 0 秒) – 正常终止
权限问题
曾经有好几次调试程序的时候,因为命令行执行的结果和apache中执行的结果不一样,就怀疑是权限的问题,因为命令行中我们是一自己帐户的或root的帐户来执行命令的,而apache是以web帐户来执行的,当时就测试程序中涉及权限的地方,因为web帐户自从创建之后就没有人修改过密码,也就谁也不知道密码,所以直接从普通帐户su到web时不可能的,于是谁也没想到su到web来执行命令,实际上,因为我有root的权限,所以一切都不是问题,如果我先su到root,在su到web就不需要密码了,然后执行命令看看结果,与apache执行的结果比较,是不是权限的问题就一目了然了。
动一下脑子,事情就是这么简单!
SVN Server 入门
觉得svn是个很有意思的东西,但是一直没时间研究这个东西,今天突然来了兴致,就像装一个服务器端,于是到官方网站下了安装包,Linux下的,别说装了,就那个INSTALL文件都看的头大,我看硬着来是不行了,还是找条近道先熟悉熟悉吧,还果然有Windows下的非常方便的svn服务器,就是VisualSVN,自己不妨去下一个装装玩玩,下载就是官方网站http://www.visualsvn.com/ ,安装基本就是 ‘下一步 -> 下一步 。。。’,所以,我就不多说了,等有了成果再续吧!
getopt函数的使用
一个程序往往会提供很多参数,如果仅是简单的几个参数也就罢了,如果是很多参数,仅根据参数的位置来分析,程序会给人一种“很烂”的感觉,其实每种语言基本都提供类似getopt的函数的,先从php说起吧。
例:
|
说明: ‘:’ 代表该选项需要值
用法: ./cmd -a valueofa -b valueofb -c -d
注意: 该函数在Windows下没有实现,本来该函数还提供long option呢,只是也需要编译php时c的支持,所以我还没研究过
shell中的用法
|
c语言中怎么用的呢?
|
c中long option 的用法:
|
不怕你自私,就怕你自私的不择手段
古人云: 人不为己,天诛地灭;
自私是人的本性,自私是自然的,是天然的;但是作为一个社会人,不同于其他动物,人是有社会属性的,自私是不应该被张扬的;所以,我认为,自私并不可怕,可怕的是自私的不择手段。
常听公司的一个领导在遇到问题的时候,是这么对下属讲话的:我不管你采用什么手段,在?点之前你必须把这个问题给我解决了。
我想,对于任何一个员工来讲都不会像这个领导说的那样,为了达到目的而不择手段的。但是我也不会去推究这个领导是不是在说气话,我只知道,这样的领导不是一个好领导。
Linux 下进程相关信息
Linux下看到一个进程,怀疑它有问题,就像查查该进程的相关信息,如:进程的属主,正在执行的文件,当前目录等,怎么查呢?
1 。根据进程号到目录/proc/pid下查
cat cmdline 查看启动的命令行
cat environ 查看当前的环境,里面有pwd loginname 等信息
2。如果用户是从普通用户su到root来执行命令的,可以 ps -p pid -o pid,ppid,comm 来查看对应进程的父进程id,查到su命令对应的进程的pid,在查看该命令的环境信息,就知道是从哪个普通用户su到root的了
真理与方法
小时候天真的心情以为只要真理掌握在自己手里,自己就不会失败;长大之后才深深地感觉到,其实真理与谬论有时真的是没有那么清晰的界限的,即使你是对的,如果维护自己的权益的方法没有考虑好,你也基本要失败的。