Shell 中的花括号的特殊用法

四种模式匹配替换结构:

${var%pattern},${var%%pattern},${var#pattern},${var##pattern}

第一种模式:${variable%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最短的匹配模式
第二种模式: ${variable%%pattern},这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式
第三种模式:${variable#pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern开始,如果是,就从命令行把variable中的内容去掉左边最短的匹配模式
第四种模式: ${variable##pattern} 这种模式时,shell在variable中查找,看它是否一给的模式pattern结尾,如果是,就从命令行把variable中的内容去掉右边最长的匹配模式
这四种模式中都不会改变variable的值,其中,只有在pattern中使用了*匹配符号时,%和%%,#和##才有区别。结构中的pattern支持通配符,*表示零个或多个任意字符,?表示零个或一个任意字符,[…]表示匹配中括号里面的字符,[!…]表示不匹配中括号里面的字符

bogon:/home/bash # var=testcase
bogon:/home/bash # echo $var
testcase
bogon:/home/bash # echo ${var%s*e}
testca
bogon:/home/bash # echo $var
testcase
bogon:/home/bash # echo ${var%%s*e}
te
bogon:/home/bash # echo ${var#?e}
stcase
bogon:/home/bash # echo ${var##?e}
stcase
bogon:/home/bash # echo ${var##*e}

bogon:/home/bash # echo ${var##*s}
e
bogon:/home/bash # echo ${var##test}
case

 

ESXi Maintenance模式

当你需要给ESXi Host 打patch, 或者upgrade,或者需要升级硬件,比如说安装更多的内存的时候,你需要将ESXi Host置于maintenance状态. 而只有在用户的请求下, ESXi Host 才会进入或者离开maintenance状态.

当ESXi Host进入maintenance状态之前,需要运行在ESXi Host上的所有VM,或者被迁移到其他的Host(手动迁移,或者DRS自动迁移),或者被关机. 只有完成了这些操作,ESXi Host上没有任何正在运行的VM时,才可以进入maintenance状态.

在maintenance状态下,你无法deploy任何新的VM或者启动任何处于关机状态下的VM.

升级vCSA(vCenter Server Appliance) 6.5 到6.7u3 或者6.7u3n 遇到的问题

vCSA(vCenter Server Appliance)爆出漏洞, 赶紧给vCSA升级.

选择了在线升级的方式,直接登录vCSA VAMI平台(注意这里要用root登录VAMI平台,不能用一般用户[email protected]之类的),点击update,选择了最新的vCenter版本,确出来下面的错误:

Appliance (OS) root password is expired or is going to expire soon. Please change the root password before installing an update

然后在VAMI平台里面更新root password, 也报下面的错误:

Could not set the password

如果你用command  chage -l root的话,也报下面的错误:

这是因为VAMI是无法修改过期的root密码的,你只能用CLI的方式, SSH登录vCSA 然后修改.

步骤:

  1. 在VAMI平台里面enable SSH,然后用root连接上vCSA
  2. 运行下面的commands:
shell.set --enabled true
shell
passwd

3. 确认root密码被修改了:

chage -l root

4.可以设置root从不过期:

chage -I -1 -m 0 -M 99999 -E -1 root

5. 重新在VAMI里面升级

参考文章:

https://kb.vmware.com/s/article/67414

注意,从7.0U1和6.7P03开始,可以用SSO administrator登录VAMI,然后重设root密码

 

 

Discuz! X 安全之禁止用户非法访问后台

从dismall上看到的,原文在这里:

https://www.dismall.com/thread-9320-1-1.html

Discuz!默认的后台路径是 http://你的域名/admin.php

因此很多站长不希望后台直接暴露出来让一些不法用户尝试登陆后台,造成一些安全隐患;

隐藏后台路径一般有两种思路,第一种就是直接修改admin.php文件名称,但是这种方式,前后台要修改的文件比较多,包括所有第三方模版都要修改,而且还会造成有时候安装插件无法再使用问题;新一代黑客木马大都注意到修改admin.php名称的说。

另一种思路,就是对admin.php增加访问权限,这就是本文要讲的方法,具体操作如下:

三种修改方法按需要选择其中一种即可。

都是修改 admin.php文件

A. 必须在前台登录以后才能访问后台

在$discuz->init(); 下方加入代码

if(!$_G['uid']){
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
echo '404 Not Found';
exit;
}

 

B. 必须在前台登录且uid=1, 才可以访问后台

在$discuz->init();下方加入代码

if($_G['uid']!=1){
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
echo '404 Not Found';
exit;
}

C. 必须在前台登录了且uid在指定范围,才可以访问后台

在$discuz->init(); 下方加入代码

$uids=array(1,2,3,99);
if(in_array($_G['uid'],$uids)){
header('HTTP/1.1 404 Not Found');
header("status: 404 Not Found");
echo '404 Not Found';
exit;
}

修改完成后,非法直接访问后台的用户就直接报404错误了