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错误了

Openwrt 默认LAN和WAN的顺序

只要你刷了Openwrt的官方镜像或者L大或者Lean大的程序,那么默认的话只有两个网卡,都是先lan,然后wan

换句话说,如果你买的是工控机软路由,那么无论是几个口,肯定eth0 是lan,eth1是wan,如果有eth2 和eth3的话,默认是没有是用的

如果你是在hyper-v上虚拟的软路由,那么你先添加的是哪个网卡,那个网卡就是lan,添加的第二个网卡就是wan,默认的说

内地居民临港开通银行账户的攻略

这个忘了是在哪看到的了,转过来做个记录,虽然大部分银行账户我都有了

本文仅介绍在香港和内地有影响力的大行,中资马甲行如民生、信银等在内地就能以一个很低的成本见证开到,无非就是没有什么服务,各种费用高,作为临时或短期使用完全可以,本文不再介绍。

本文用★的个数对各银行及其户口做综合评估,5星级银行★★★★★,这类银行及户口,一般具有往来汇款手续费低廉(免费),或两地转账秒到,或网银功能强大易用,或内地用户在线申请信用卡易批核等难以复制的优点,对于某项具体业务有需求的,强烈建议先开立5星银行户口。

第一类:非常好开的
这类银行没啥好说的,完全是中资银行的马甲,主要客群就是内地人,比较缺客户,所以开户非常容易,先预约,直接去开就行了,不过服务就非常一般了,多数银行还有账户最低结余的收费。

代表银行:永隆银行★★★(独特优势:银证转账功能强大;给香港AE信用卡还款,次日即到),招行银行香港分行★★等。

开户姿势:先预约(可以是网银或APP上预约,也可以电话预约,预约时可以提前填资料),亲临分行直接开,不过要做好排队的心理准备。

第二类:比较好开的
这类银行服务比较好,中资外资都有,可以选择没有最低结余的户口开立。不过可能是由于不太缺客户,所以多半要求买理财或保险产品,不过不要求立即买。套路也是一样,先预约,直接去开就行了,然后和理财经理聊天,开立户口。

代表银行:中银香港(自在/智盈理财)★★★★★【五星理由:本地网银转账免费、中港两地同名转账手续费全免】、工银亚洲★★★★(综合账户/e时代)、恒生银行★★★(优进理财)、南洋商业银行★★★(自在/智盈理财)等。

开户姿势:先预约,亲临分行和理财经理沟通后,直接开。

第三类:不算难开,但需要聊天比较久的
这类银行规模很大,往往具有全球布局,服务比较好,可以选择没有最低结余的户口开立。不算难开,不过可能是由于完全不缺客户,所以多半要求买理财或保险产品,通常聊天比较久的,并且他们要感觉在你身上能发现利润的点,这类银行你需要准备一个上午或下午的时间过去,往往会对你进行尽职调查和理财分析,不过不要求立即买。套路也是一样,先预约,直接去开就行了,然后和理财经理深入聊天,让他感觉你能带来利润,随之开立户口。

代表银行:汇丰银行(One综合户口)★★★★★【五星理由:本地网银转账免费、海外电汇、本地外币CHATS转入均不收落地费、网银功能丰富强大、全球汇款7*24汇款免费秒到(卓越用户)、投资户口开立、内地用户网银申请信用卡可秒批并直邮国内……】、渣打银行(快易/premium理财)★★★★★等【五星理由:本地网银转账免费、全球取现免费(premium理财)】。

开户姿势:先预约,亲临分行和理财经理沟通后,直接开。

第四类:比较难开
这类银行服务比较好,可以选择没有最低结余的户口开立。不过这类银行估计是不太喜欢内地游客客户,所以会对你进行比较详细的尽职调查和理财分析。聊天时间会更久,同样他们要感觉在你身上能发现利润的点,这类银行你同样需要准备一个上午或下午的时间过去,有可能叫你立即买,否则就不开户。不过这类银行在程序上也不是铁板一块,完全有商量的余地,例如以后再存款,以后再购买。套路也是一样,先预约,直接去开就行了,然后和理财经理深入聊天,让他感觉你能带来利润,随之开立户口,口才不好的可能需要做好被拒绝的心理准备。

代表银行:东亚银行★★★★★(i-account户口)【五星理由:中港两地转账转他人实时到账,落地费仅65HKD或免费(至尊或卓显理财)】、大新银行★★★(i-account户口)、永亨银行★★★(综合理财户口)等。

开户姿势:先预约,亲临分行和理财经理沟通后,直接开。

第五类:非常难开
这类银行要么就是服务非常好、门槛非常高,要么就是银行里有不成文的政策一般不给内地游客开户。当然,规章制度既然没有明文写一定不能开,那就是仍有开立的可能,值得各位飞友发挥和探索。去这类银行开户,首先应仔细学习银行香港开户政策,然后借鉴已成功开户朋友的经验,结合自己的情况,制定个性化的方案,各个击破,达到成功开立户口的目的。

代表银行:花旗银行★★★★★(原则上对内地用户仅开立citigold户口)——原则上开户需准备不低于150万港币一次性存入,并购买产品;【优势:母公司在美国,美国业务优势,大量费用减免】星展银行★★★★★(原则上对内地用户仅开立丰盛理财户口)——原则上开户需准备不低于100万港币一次性存入,并购买产品;【优势:如涉及与敏感的国家、敏感行业往来的合规交易,(敏感国家:马来西亚,泰国,菲律宾,俄罗斯,迪拜,朝鲜,中东国家,印度哥伦比亚),星展银行有一定的处理经验。】交银香港★★★★(中资)——原则上不允许内地人开户;【优势:各项费用较低。】上海商业银行★★★★(两岸三地)——原则上不允许内地人开户;【优势:两岸三地业务优势,协助开立台湾户口。】富邦香港★★★★(台资)——原则上不允许内地人开户。【优势:台湾本土业务优势,协助开立台湾户口。】等

Username is not in the sudoers file. This incident will be reported

最近在研究openwrt的编译.

因为openwrt的编译不能使用root用户,所以必须得自己添加一个用户:

adduser openwrt

然后在openwrt用户下使用sudo:

sudo apt update

会报这个错误:

openwrt is not in the sudoers file. This incident will be reported

这是因为openwrt 不在管理组,没有sudo的权限.

解决的办法也很简单,在root用户下把openwrt加入sudo组即可

usermod -aG sudo openwrt 
# a stands for append, G stands for Group, usually use aG together

再或者使用visudo命令,这个命令其实就是编辑/etc/sudoers

往下拉,看到这一行

#User privilege specification

root ALL=(ALL:ALL) ALL

在root的下面添加上自己的用户名:

#User privilege specification

root ALL=(ALL:ALL) ALL

username ALL=(ALL:ALL) ALL

保存退出即可