if (!-e $request_filename) {
rewrite ^/admin(.+)$ /admin/index.php?$1 last;
rewrite ^/(.+)$ /index.php?WOLFPAGE=$1 last;
}
if (!-e $request_filename) {
rewrite ^/admin(.+)$ /admin/index.php?$1 last;
rewrite ^/(.+)$ /index.php?WOLFPAGE=$1 last;
}
方法1:在/etc/pam.d/sshd文件第一行加入
auth required pam_listfile.so item=user sense=allow file=/etc/sshusers
onerr=fail
然后在/etc下建立sshusers文件,编辑这个文件,加入你允许使用ssh服务的用户名,不用重新启动sshd服务。
方法2:pam规则也可以写成deny的
auth required pam_listfile.so item=user sense=deny file=/etc/sshusers
onerr=succeed
方法3:在sshd_config中设置AllowUsers,格式如
AllowUsers a,b,c
重启sshd服务,则只有a/b/c3个用户可以登陆
1、修改SSHD服务的配置文件/etc/ssh/sshd_config
将#PermitRootLogin yes 改为PermitRootLogin no
2、重启sshd服务使配置生效
/etc/rc.d/init.d/sshd restart
为了增强linux的安全性,应该限制只有wheel组的用户可以使用su命令切换到root和其他用户:
1、修改su命令的认证配置文件/etc/pam.d/su
去掉以下两行前的#号注释
#auth sufficient pam_wheel.so trust use_uid (去年注释后ROOT组成员使用su切换到root不需要密码)
#auth required pam_wheel.so use_uid (去年注释后只允许ROOT组成员使用su切换到root)
2、创建一个普通用户,然后将这个用户加入到wheel组即可!以后就只有这个普通用户和root可以使用su命令了
usermod -G 组 用户
su命令使用简介:
su 直接切换到root用户,但保持原用户的环境变量;
su – 切换到root用户,并使用root用户的环境变量;
su -l test 切换到test用户,并使用test的环境变量;
ngixn 禁止ip访问和未绑定ip的访问
server {
listen 80 default;
server_name _;
return 500;
}
nginx 将未绑定的域名跳转
server {
listen 80 default;
rewrite ^(.*) http://www.kogoogle.com permanent;
}
本来想升级下php52至php53,结果可能由于操作不当导致53无法正常运行,加上自己不小心删除了/usr/local/lib/php/扩展包里的一些文件,导致再重新安装的时候php也不行,进退两难,尝试过几次通过ports卸载php,然后重装,都不可以,无论是52还是53.
网上发现一个命令,尝试了下很管用:
pkg_delete -f php\*
rm -fr /usr/local/include/php/
然后再重装,这样问题就解决了,哎,着急了我半天,还是命令不熟悉。
最理想是在安装时已做好优化,但如果已经安装好 MySQL 后才需要做优化的话,可以通过设定 /etc/my.cnf 来做。如果不熟悉 my.cnf 内的设定也没关係,可以直接使用 MySQL 的范例档,在 /usr/share/mysql/ 下会有 my-huge.cnf, my-large.cnf, my-medium.cnf 及 my-small.cnf 几个档案,根据伺服器的硬件而选择适合的档案:
my-huge.cnf: 适合 1GB – 2GB RAM的主机使用。
my-large.cnf: 适合 512MB RAM的主机使用。
my-medium.cnf: 只有 32MB – 64MB RAM 的主机使用,或者有 128MB RAM 但需要运行其他伺服器,例如 web server。
my-small.cnf: 记忆体少於 64MB 时适用这个,MySQL 会佔用较少资源。
我选用了 my-large.cnf,只要执行以下指令便完成了,但如果你原先已经有 my.cnf,请先备份起来及自行调整:
shell> cp /usr/share/mysql/my-large.cnf /etc/my.cnf
shell> /etc/init.d/mysqld restart
nginx报错nginx: [emerg] bind() to 0.0.0.0:80 failed (98: Address already in use)
仔细参考nginx中文文档发现,发送信号USR2时,自动启动新的可执行文件,再手动启动的话就会报错
本质上也算是一种地址冲突吧
如果平时安装时遇见该错误,就是80端口被占用,
找出占用80端口的程序杀掉即可
代码如下:
shell>netstat -tunlp
shell>pkill 占用80端口的程序
即可消除该错误
安装samba
#yum install samba
配置samba
#vi /etc/samba/smb.conf
添加修改如下内容
workgroup = MYGROUP //更改为你所在的工作组
server string = Samba Server %U %G //更改显示信息,会在windows访问时最上方显示相关信息
设定机器的描述,当我们通过网络邻居访问的时候可以在备注里面看见这个内容,而且还可以使用samba设定的变量。这里说一下samba定义的变量:
%S = 当前服务名(如果有的话)
%P = 当前服务的根目录(如果有的话)
%u = 当前服务的用户名(如果有的话)
%g = 当前用户说在的主工作组
%U = 当前对话的用户名
%G = 当前对话的用户的主工作组
%H = 当前服务的用户的Home目录
%v = Samba服务的版本号。
%h = 运行Samba服务机器的主机名
%m = 客户机的NETBIOS名称
%L = 服务器的NETBIOS名称
%M = 客户机的主机名
%N = NIS服务器名
%p = NIS服务的Home目录
%R = 说采用的协议等级(值可以是CORE, COREPLUS, LANMAN1, LANMAN2,NT1)
%d = 当前服务进程的ID
%a = 客户机的结构(只能识别几项:Samba,WfWg,WinNT,Win95)
%I = 客户机的IP
%T = 当前日期和时间
灰色信息不添加
#interfaces = 192.168.0.0/24 //可使用samba的网段,注释掉为全部
[share] //显示的共享名
path = /var/share //共享路径
valid users = @test1,@test2 //共享文件属主,可以是用户也可以是组,组前加@
browseable = no //非本共享用户是否可以看到,no为看不到,yes或注释掉就可看到
writable = no //缺省是否可写
read list = @test1 //只读用户组也可以加用户
write list = @test2 //可写用户组也可以加用户
create mode = 0755 //创建的文件权限
directory mode = 0755 //创建的文件夹权限
保存以上信息
#mkdir /var/share //创建share目录
#chmod 777 /var/share //将share目录权限设为777
#groupadd test1 //添加test1组
#groupadd test2
#useradd -M -g test1 -s /sbin/nologin test1 //新建系统用户,无home,无shell,添加到test1组
#useradd -M -g test2 -s /sbin/nologin test2
#smbpasswd -a test1 //添加samba用户必添加密码,修改密码不用加-a
#smbpasswd -a test2
好了,重启samba就可以用windows登录了
—————————————————————–
以下是一些相关说明
comment指的是对改共享的备注。
path 指定共享的路径,其中可以配合samba变量使用。比如你可以指定path=/data/%m,这样如果一台机器的NETBIOS名字是
grind,它访问MyShare这个共享的时候就是进入/data/grind目录,而对于NETBIOS名是glass的机器,则进入/data/
glass目录。
allow hosts和deny hosts和前面的全局设置的方法一样这里不再提及。
writeable指定了这个目录缺省是否可写,也可以用readonly = no来设置可写。
user设置所有可能使用该共享资源的用户,也可以用@group代表group这个组的所有成员,不同的项目之间用空格或者逗号隔开。
valid users指定能够使用该共享资源的用户和组。
invalid users指定不能够使用该共享资源的用户和组。
read list 指定只能读取该共享资源的用户和组。
write list指定能读取和写该共享资源的用户和组。
admin list指定能管理该共享资源(包括读写和权限赋予等)的用户和组。
public指明该共享资源是否能给游客帐号访问,这个开关有时候也叫guest ok,所以有的配置文件中出现guest ok = yes其实和
public = yes是一样的。
hide dot files指明是不是像unix那样隐藏以”.”号开头的文件。
create mode指明新建立的文件的属性,一般是0755。
directory mode指明新建立的目录的属性,一般是0755。
sync always指明对该共享资源进行写操作后是否进行同步操作。
short preserve case指明不管文件名大小写。
preserve case指明保持大小写。
case sensitive指明是否对大小写敏感,一般选no,不然可能引起错误。
mangle case指明混合大小写。
default case指明缺省的文件名是全部大写还是小写。
force user强制把建立文件的属主是谁。如果我有一个目录,让guest可以写,那么guest就可以删除,如果我用force user=
grind强制建立文件的属主是grind,同时限制create mask = 0755,这样guest就不能删除了。
wide links指明是否允许共享外符号连接,比如共享资源里面有个连接指向非共享资源里面的文件或者目录,如果设置wide links =
no将使该连接不可用。
max connections = n设定同时连接数是n。
delete readonly指明能否删除共享资源里面已经被定义为只读的文件。
ADSL,VPN拨号出现 tcp/ip cp报告了错误2:系统找不到指定文件
1、打开注册表编辑器,删除以下两个键:
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Winsock2
2、用记事本打开windows\inf\nettcpip.inf文件,找到:
[MS_TCPIP.PrimaryInstall]
0xa0 <——把此处的0Xa0改为0x80 保存退出
3、在本地连接里找到TCP/IP协议,卸载TCP/IP协议,如果卸载是灰色,直接重新安装新协议tcpip协议,安装完成后删除TCP/IP协议,再次安装,此问题解决
一段非常实用的禁止复制网页代码,直接上代码:
<script language=”JavaScript”>
document.oncontextmenu=new Function(“event.returnValue=false;”);
document.onselectstart=new Function(“event.returnValue=false;”);
</script>