CentOS 7使用yum安装abiword的正确姿势

首先选择源码编译安装,碰到几个问题及解决方案

wget https://www.abisource.com/downloads/abiword/3.0.2/source/abiword-3.0.2.tar.gz
tar zxvf abiword-3.0.2.tar.gz
cd abiword-3.0.2
./configure --enable-plugins="command" --with-gtk2
# error1
configure: error: `png.h’ not found, install libpng or specify CPPFLAGS to include custom locations
解决方案:yum install libpng-devel
# error2
configure: error: jpeg.h not found
解决方案:yum install libjpeg-devel
# error3
configure: error: `boost’ not found.
解决方案:yum install boost-devel
编译结果error:
No package ‘fribidi’ found
No package ‘glib-2.0’ found
No package ‘gthread-2.0’ found
No package ‘gobject-2.0’ found
No package ‘libgsf-1’ found
No package ‘wv-1.0’ found
No package ‘libxslt’ found
No package ‘cairo-pdf’ found
No package ‘cairo-ps’ found
No package ‘pangocairo’ found
No package ‘gtk+-2.0’ found
No package ‘gtk+-unix-print-2.0’ found
No package ‘librsvg-2.0’ found
No package ‘x11’ found
解决方案:yum install fribidi glib libgsf libxslt gtk+
但仍然有很多模块没有,需要一个一个找解决方案,觉得太花时间,果断选择yum安装,结果大部分源都没有abiword这个package。

yum安装abiword之歪路,使用ELRepo源未果

一开始查到网上说ELRepo源有abiword,于是找到官方
Import the public key:
rpm --import https://www.elrepo.org/RPM-GPG-KEY-elrepo.org
To install ELRepo for RHEL-7, SL-7 or CentOS-7:
rpm -Uvh http://www.elrepo.org/elrepo-release-7.0-3.el7.elrepo.noarch.rpm
结果没有找到abiword,后来看说明是说要
rpm -Uvh elrepo-release*rpm
可能还需要导入elrepo-kernel elrepo-extras elrepo-testing,后来ITGeeker技术奇客转用lux源解决了,所以没有尝试这三个源。

CentOS 7使用yum安装abiword的正确姿势

rpm -Uvh http://repo.iotti.biz/CentOS/7/noarch/lux-release-7-1.noarch.rpm
yum install abiword
找对方法了,其实很简单。
 # which abiword
 /usr/bin/abiword
 # abiword --plugin=AbiCommand
 AbiWord command line plugin: Type "quit" to exit
 AbiWord:>

请问这和C#有什么关系

面试官:“熟悉哪种语言”。应聘者:“JAVA”。

面试官:“知道什么叫类么”。应聘者:“我这人实在,工作努力,不知道什么叫累”。

面试官:“知道什么是包?”。应聘者:“我这人实在平常不带包也不用公司准备了”。

面试官:“知道什么是接口吗?”。应聘者:“我这个人工作认真。从来不找借口偷懒”。

面试官:“知道什么是继承么”。应聘者:“我是孤儿没什么可以继承的”。

面试官:“知道什么叫对象么?”。应聘者:“知道,不过我工作努力,上进心强,暂时还没有打算找对象。”。

面试官:“知道多态么?”。应聘者:“知道,我很保守的。我认为让心爱的女人为了自已一时的快乐去堕胎是不道德的行为!请问这和C#有什么关系?”。

 

via 卢松松博客 http://lusongsong.com/yulu/t/9439.html

2017比特币勒索病毒: WannaCry(想哭)

先来看一下中毒后的截图吧,似乎还挺有服务意识,考虑挺周到,但是当事人真的会WannaCry. 除了杀毒软件的网站,这会儿云端存储的网站也会是流量大增吧。只有当痛苦发生了,大家才会想起来云端同步的重要性。

本轮敲诈者蠕虫病毒传播主要包括 Onion、WNCRY 两大家族变种,本次感染事件首先在英国、俄罗斯等多个国家爆发,新闻报道有多家企业、医疗机构的系统中招,损失非常惨重。安全机构全球监测已经发现目前多达上百个国家遭遇本次敲诈者蠕虫攻击。从 5 月 12 日开始,国内的感染传播量也开始急剧增加,在多个高校和企业内部集中爆发并且愈演愈烈。

WNCRY 变种一般勒索价值 300~600 美金的比特币,而 onion 变种甚至要求用户支付 3 个比特币,以目前的比特币行情,折合人民币在 3 万左右。此类病毒一般使用 RSA 等非对称算法,没有私钥就无法解密文件。WNCRY 敲诈者病毒要求用户在 3 天内付款,否则解密费用翻倍,并且一周内未付款将删除密钥导致无法恢复。

病毒原理

病毒一旦被不知情的用户点击并激活后,可以通过用户所在的局域网自动传播,使用的是445 端口 (用于文件共享) 在内网进行蠕虫式感染传播。

本次感染急剧爆发的主要原因在于其传播过程中使用了前段时间泄漏的美国国家安全局 (NSA) 黑客工具包中的“永恒之蓝”漏洞 (微软 3 月份已经发布补丁,漏洞编号:MS17-010)。和历史上的“震荡波”、“冲击波”等大规模蠕虫感染类似,本次传播攻击利用的“永恒之蓝”漏洞可以通过 445 端口直接远程攻击目标主机,传播感染速度非常快。

如何预防 – 可防不可解

  • 关闭Windows的SMB/CIFS文件共享功能,关闭用户共享和 445 端口。
  • 谨慎打开不明邮件文档,禁用 office 宏,钓鱼邮件是勒索病毒传播的一个重要渠道。
  • 启动Windows系统自动更新服务或安装微软官方补丁NSA 泄漏漏洞的安全补丁:https://technet.microsoft.com/zh-cn/library/security/MS17-010
  • 尽快开通云端文件存储,并要有历史文件恢复功能。

不要付钱的方法 – 文件救回

如果你使用了Onedrive, Dropbox或者是Google Drive,您可以在线登陆Web云端,使用历史版本(History Version)或类似的功能,恢复到没有被感染前的文件。这也是晚上流传的不要付钱的回复办法。

如果是小企业,不想使用这些公开云,可以联系ITGeeker技术奇客,帮助你建立属于公司的私有云文件存储。

检测和杀掉勒索病毒-永恒之蓝

  1. 腾讯电脑管家免疫补丁:https://guanjia.qq.com/wannacry/
  2. 360官网页面:http://special.btime.com/37h7sasi85f95tpt54acpcir37b.shtml
  3. 360免疫工具下载地址:NSA武器库免疫工具: http://dl.360safe.com/nsa/nsatool.exe
  4. ESET Online Scanner
  5. Windows系统补丁下载地址
    Windows XP(32位系统)补丁:http://url.cn/499Z92O
    Windows7(32位系统)补丁:http://url.cn/499TgUP
    Windows7(64位系统)补丁:http://url.cn/499QOql
    Windows8(32位系统)补丁:http://url.cn/499UfBn
    Windows8(64位系统)补丁:http://url.cn/499XgR5
    Windows8.1(32位系统)补丁:http://url.cn/499XgSg
    Windows8.1(64位系统)补丁:http://url.cn/499XgSm
    Windows8 Vista(32位系统)补丁: http://url.cn/499TgW8
    Windows8 Vista(64位系统)补丁: http://url.cn/499RJx3
    其它操作系统请访问:http://url.cn/492HwRJ,选取相应补丁版本下载
    如果您不确认自己的操作系统,请使用电脑管家敲诈者病毒免疫工具离线版(链接http://url.cn/496kcwV)

应急脚本.bat

rem 关闭智能卡服务        
net stop SCardSvr        
net stop SCPolicySvc        
sc config SCardSvr start=disabled        
sc config SCPolicySvc start=disabled        
rem 开启服务        
net start MpsSvc        
rem 开机启动        
sc config MpsSvc start=auto        
rem 启用防火墙        
netsh advfirewall set allprofiles state on        
rem 屏蔽端口

netsh advfirewall firewall add rule name=”deny udp 137 ” dir=in protocol=udp localport=137 action=block

netsh advfirewall firewall add rule name=”deny tcp 137″ dir=in protocol=tcp localport=137 action=block        
netsh advfirewall firewall add rule name=”deny udp 138″ dir=in protocol=udp localport=138 action=block        
netsh advfirewall firewall add rule name=”deny tcp 138″ dir=in protocol=tcp localport=138 action=block        
netsh advfirewall firewall add rule name=”deny udp 139″ dir=in protocol=udp localport=139 action=block

netsh advfirewall firewall add rule name=”deny tcp 139″ dir=in protocol=tcp localport=139 action=block

netsh advfirewall firewall add rule name=”deny udp 445″ dir=in protocol=udp localport=445 action=block        
netsh advfirewall firewall add rule name=”deny tcp 445″ dir=in protocol=tcp localport=445 action=block        
pause

 

WordPress REST API 定制化输出

WordPress 自4.7 版本后与时俱进推出了REST API,如此一来想象空间又扩展了许多,如今WordPress 可以完全作为后端数据驱动了。本文通过几个例子展示如何定制化输出WordPress REST API 的相关数据。

文章数据(posts)禁止某些字段显示

默认的,当请求类似 your-site.com/wp-json/wp/v2/posts?per_page=5&page=1 的接口来获取文章列表,展示的不少字段对一般人来说是没有必要。

秉承“如无必要,勿增实体”的原则,减少请求时候的数据量,可以通过下面的代码移除:

function dw_rest_prepare_post( $data, $post, $request ) {
	$_data = $data->data;
	$params = $request->get_params();
	// if ( ! isset( $params['id'] ) ) {
		unset( $_data['excerpt'] );
		unset( $_data['author'] );
		unset( $_data['featured_media'] );
		unset( $_data['format'] );
		unset( $_data['ping_status'] );
		unset( $_data['comment_status'] );
		unset( $_data['sticky'] );
		unset( $_data['template'] );
	// }
	$data->data = $_data;
	return $data;
}
add_filter( 'rest_prepare_post', 'dw_rest_prepare_post', 10, 3 );

文章数据(posts)中输出 post meta 所有字段

可能考虑到数据隐私,文章数据(posts)默认并不显示post meta的相关字段,如果你需要输出对应文章下所有 post meta 字段,可以用下面的代码启用:

register_rest_field( 'post', 'metadata', array(
 	'get_callback' => function ( $data ) {
 		return get_post_meta( $data['id'], '', '' );
 }, ));

输出 post meta 特定字段

接上,如果你在REST API 中仅仅想输出 post meta 特定字段而非全部,则通过类似下面代码:

function dw_rest_prepare_post( $data, $post, $request ) {
	$_data = $data->data;
	$params = $request->get_params();
	$thumb =  get_post_meta( $post->ID, 'thumb' );
		if($thumb){
			$_data['thumb_image'] = $thumb;
		}	
	$data->data = $_data;
	return $data;
}
add_filter( 'rest_prepare_post', 'dw_rest_prepare_post', 10, 3 );

上面的代码展示的是如何输出thumb 这个 post meta 字段,请按需使用。

借助 Nginx 控制 /wp-json 的访问

这个倒与WordPress 本身无关了,your-site.com/wp-json 的路由默认是所有人皆可访问。如果你基于服务器负载,或安全等方面考虑选择性输出,可以借助 Nginx 控制访问。先看下面的例子:

location /wp-json {
      if ($http_user_agent !~ '(iPhone|Android)'){
        return 403;
       }
        try_files $uri $uri/ /index.php?$args;
}

如果你熟悉Nginx 语法,就知道上面的代码实现了:除了iOS 跟Android 设备(通过判断请求头的UA 信息),其它访问 /wp-json 的路径均返回403 状态码。这在一定程度上起到了保护作用。


原文链接:来自 DeveWork | https://devework.com/wordpress-rest-api-dynamic-output.html

via Jeff的阳台 https://devework.com/wordpress-rest-api-dynamic-output.html

APP Workflow自动化应用 献给果粉的Geeker工具

自动化工具 Workflow 诞生于 2014 年,是一款功能非常强大的应用。通过 Workflow 内置的 Action 动作组,用户可以轻松实现只需一个动作来完成诸如从拍摄一张照片到把它制作成 GIF 再发布到多个社交平台这样的多个步骤,以更高效率去自动完成原本繁琐复杂的操作。

2015 年这款应用因简便易用(其实设置并没那么简便)的特性获得了苹果的设计大奖。2017年3月,苹果公司收购了 Workflow 应用及其开发团队,并于2017年4月免费了该款应用,之前收费2.99USD.

通过流程化自动处理各种事情,内置 150+ 动作,如开启相机、获取当前 GPS 位置、生成 PDF、打开 URL 链接、新建 EeverNote 笔记等等,只要能巧妙组合,搭配合理,几乎能实现使用者任何的复杂任务流程。

苹果是个比较封闭的系统,同样Workflow被收购后,有些非苹果的应用支持被移除,其中影响到 Chrome 浏览器、Pocket、Uber 以及 Telegram。当然被影响的应用应该不只是上面几款。不过从目前的形势来看,所有谷歌软件和服务应该都无法与 Workflow 兼容了。目前 Evernote、OmniFocus、Day One、Fantastical 和 Dropbox 等应用以及服务仍可与 Workflow 兼容。

Workflow分享by ITGeeker

官网地址https://workflow.is/,大部分帮助可以再次找到。只要你的手机端创建了一个自动化动作,可以通过分享获取官方的链接,然后分享给广大的Workflow的爱好者。比如分享到苹果自带的备忘录,然后就可以找到该动作的Link.

为什么说它是Geeker应用,因为要想创建一个Workflow并没有想象中那么容易和简单,和IFTTT比起来,其难度还是比较大的,如果是复杂的动作要懂一些编程的逻辑思维才能设计出来,例如里面会涉及到变量获取和赋值等。当然所有的一切开始之前,你要有充分的想象规划好你的动作流程。

技术奇客原创第一个workflow

添加当前浏览的页面主题连同链接到苹果的提醒(Reminder):https://workflow.is/workflows/e5a7dd18d2fe427a8b69ace088c763cd

网上搜集的Workflow Action分享:

  1.  下载网易云音乐的MTV,只要分享正在看的MTV的链接到该动作,然后选择分辨率1080,720或者其他有的分辨率,就会开始下载改视频,然后可以选择保存的地方,技术奇客使用了Resilio Sync来保存,然后就可以同步到任何你想保存的地方了。不知道这是否会涉及到版权问题,大家测试一下赶紧删掉有版权的文件哦。链接:https://workflow.is/workflows/06b8b6149ecf4bf79056dea2a6029f14
  2. 获取照片的EXIF和GPS信息,这样你就可以找出这张照片用什么相机/手机拍摄,镜头规格信息以及在什么地方拍摄的(前提照片要记录GPS信息先),如果有,会自动打开地图应用,定位到拍摄的地方。链接:
  3. 一键导航回公司,我这里用的是Google Map,如果你还没学会SS使用方法,可以改成iOS自带的地图应用来导航。链接:https://workflow.is/workflows/f05679f2987440e592eb19d205f8a0cb  类似的可以自己制作一键拨号,一键Facetime等。
  4. 一键倒计时1分钟,链接:https://workflow.is/workflows/efcc378024d649d1bf6bd8785f1354cb
  5. 一键开始录音,链接:https://workflow.is/workflows/1d9df2a23c334540b4858c776d1c59ea
  6. 一键使用Google搜索相关Workflow,同样需要科学工具,链接:https://workflow.is/workflows/364fb346784e4412ae6051ea8439f949
  7. 一键分享最新截图,链接: https://workflow.is/workflows/cf991bd1f648457ebf7190411ce79c3a
  8. 分享当前位置给朋友,链接:https://workflow.is/workflows/6795ee80f2024347a01b76507de2679b
  9. 翻译选中文字,链接:https://workflow.is/workflows/697130b191fa4ef29bdeb60644155d14
  10. 国内的多功能搜索,用了就知道了。链接: https://workflow.is/workflows/0447745d459542b2be3c04107ff27769

以上链接,只要在手机端打开就可以直接添加到自己的手机使用了。科技带来便捷!

CentOS6.5 64bit如何安装DNS服务dnsmasq加速网站访问

dnsmasq是个非常小巧的dns服务器,可以解决小范围的dns查询问题,建议内网终端不要超过50台主机为佳。刚刚调整了一下内容,重新发布此文章。
Dnsmasq_icon.svg

Dnsmasq是一个很实用的小工具,解决局域网的需求看来非常合适,特别是网关和防火墙上。ITGeeker建议可以使用它来:

  1. 优先使用本地自定义dns和host,可以针对不同的网站使用不同的DNS,以提高网页打开速度。
  2. 提供dhcp服务,方便内网主机和移动设备管理。

1. YUM安装方法

非常方便,但版本比较低,目前只能安装dnsmasq x86_64 2.48-13.el6,但官方最新版已到2.71

yum install dnsmasq

2. 编译安装dnsmasq

cd /tmp && wget http://www.thekelleys.org.uk/dnsmasq/dnsmasq-2.71.tar.gz 
tar -zxvf dnsmasq-2.71.tar.gz && cd dnsmasq-2.71
make install
#也很容易,安装完成

cp dnsmasq.conf.example /etc/dnsmasq.conf
mkdir -p /etc/dnsmasq.d   #这个目录备用

3. dnsmasq配置

主要有三个文件:

/etc/dnsmasq.conf
/etc/dnsmasq.d/resolv.dnsmasq.conf
/etc/dnsmasq.d/dnsmasq.hosts

第一个是系统默认必须的,后面两个可以自行建立,放置的路径也可以根据自己需要定义。

vi /etc/dnsmasq.conf

自带的配置文件有很多说明,可以直接在上部加入以下内容,保留之前的可以当帮助文件用,也可直接删除原先的内容。

#ITGeeker每次开启都提示错误,目的是让dnsmasq读取目录内所有配置文件
#conf-dir=/etc/dnsmasq.d

#让dnsmasq读取你设定的resolv-file
#no-resolv
resolv-file=/etc/dnsmasq.d/resolv.dnsmasq.conf

no-poll
strict-order

#不读取系统hosts,读取你设定的
no-hosts
addn-hosts=/etc/dnsmasq.d/dnsmasq.hosts

#dnsmasq日志设置
log-queries
log-facility=/var/log/dnsmasq.log

#dnsmasq缓存设置
cache-size=1024

#单设置127只为本机使用,加入本机IP为内部全网使用
listen-address=127.0.0.1,192.168.188.199

在/etc/dnsmasq.d目录下新建2个文件

vi /etc/dnsmasq.d/resolv.dnsmasq.conf

国内快的DNS也就这些了,谷歌的8.8.8.8这两天有点慢,甚至ping不同,可能和香港和越南的光纤断裂有关,所以暂时注销了。

#nameserver 127.0.0.1   不应该添加
nameserver 202.96.209.5
nameserver 202.96.209.133
nameserver 223.5.5.5
nameserver 223.6.6.6
nameserver 114.114.114.114
nameserver 8.8.4.4
#nameserver 8.8.8.8

vi /etc/dnsmasq.d/dnsmasq.hosts

给出以下样本,ITGeeker建议自己制作一个最新好用的。

173.194.120.88   0.docs.google.com
216.239.32.39    0.docs.google.com
173.194.120.88   0.drive.google.com
216.239.32.39    0.drive.google.com
......

dnsmasq启动脚本

编译安装比较麻烦的就是这件事了,当然也可直接手动操作:

启动: /usr/local/sbin/dnsmasq
验证:netstat -tunlp|grep 53
关闭:killall -KILL dnsmasq
重启: pkill -9 dnsmasp && /usr/local/sbin/dnsmasq -h

还是编辑一个启动脚本吧

vi /etc/init.d/dnsmasq

 

#!/bin/sh
#
# Startup script for the DNS caching server
#
# chkconfig: - 49 50
# description: This script starts your DNS caching server
# processname: dnsmasq
# pidfile: /var/run/dnsmasq

# Source function library.
. /etc/rc.d/init.d/functions

# Source networking configuration.
. /etc/sysconfig/network

# Check that networking is up.
[ ${NETWORKING} = "no" ] && exit 0

dnsmasq=/usr/local/sbin/dnsmasq
[ -f $dnsmasq ] || exit 0
RETVAL=0

# See how we were called.
case "$1" in
  start)
        if [ $UID -ne 0 ] ; then
            echo "User has insufficient privilege."
            exit 4
        fi
        echo -n "Starting dnsmasq: "
        daemon $dnsmasq $OPTIONS
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && touch /var/lock/subsys/dnsmasq
        ;;
  stop)
        if test "x`pidof dnsmasq`" != x; then
            echo -n "Shutting down dnsmasq: "
            killproc dnsmasq
        fi
        RETVAL=$?
        echo
        [ $RETVAL -eq 0 ] && rm -f /var/lock/subsys/dnsmasq /var/run/dnsmasq.pid
        ;;
  status)
        status dnsmasq
        RETVAL=$?
        ;;
  reload)
        echo -n "Reloading dnsmasq: "
        killproc dnsmasq -HUP
        RETVAL=$?
        echo
        ;;
  force-reload)
        # new configuration takes effect only after restart
        $0 stop
        $0 start
        RETVAL=$?
        ;;
  restart)
        $0 stop
        $0 start
        RETVAL=$?
        ;;
  condrestart)
            if test "x`/sbin/pidof dnsmasq`" != x; then
                $0 stop
                $0 start
                RETVAL=$?
            fi
            ;;
  *)
        echo "Usage: $0 {start|stop|restart|reload|condrestart|status}"
        exit 2
esac

exit $RETVAL

Tips:如果你是本地编辑上传的,提示找不到文件记得

set ff=unix

再赋予执行的权限

chmod +x /etc/init.d/dnsmasq

现在可以启动和设置自动启动了

service dnsmasq restart
chkconfig dnsmasq on

验证是否正确启动

netstat -tunlp|grep 53

验证是否正确工作

需要命令dig和nslookup,如果没有,安装一下

yum install bind-utils

记得在iptables防火墙开放53端口,tcp和udp都要开

vi /etc/sysconfig/iptables

-A INPUT -p udp -m state --state NEW --dport 53 -j ACCEPT
-A INPUT -p tcp -m state --state NEW --dport 53 -j ACCEPT

将其他机器的DNS换成dnsmasq所在服务器的IP,这是关键,否则没人使用你的DNS服务。

利用dig或者nslookup参看DNS Server是否是

127.0.0.1或者192.168.188.199

大功告成!!!

/etc/dnsmasq.conf中dns和address配置范例

如果你想使用dnsmasq的泛解析功能,ITGeeker这里提供一些范例供你参考。

设定某些网址使用国内的DNS服务器,这里选用了上海最快的上海电信服务器,你也可以选择适合你的最快DNS服务器地址。

#Specify DNS server China
server=/www.freegeeker.com.cn/202.96.209.5
server=/itgeeker.net/202.96.209.5
server=/geekerconsulting.com/202.96.209.5
server=/baidu.com/202.96.209.5
server=/cn/202.96.209.5
server=/taobao.com/202.96.209.5
server=/weibo.com/202.96.209.5
server=/weibo.cn/202.96.209.5
server=/xunlei.com/202.96.209.5

#Specify DNS server out of china
server=/google.com/8.8.4.4
server=/twitter.com/8.8.4.4
server=/facebook.com/8.8.4.4

dnsmasq广受好评的泛解析,可以设定局域网内的特殊网址解析,禁止的ip解析等

#local itgeeker
address=/local.itgeeker.com/192.168.188.199

#forbid ip list
#1. video play website
address=/.youku.com/192.168.188.199
address=/.tudou.com/192.168.188.199
address=/video.sina.com.cn/192.168.188.199
address=/.ku6.com/192.168.188.199
address=/.funshion.com/192.168.188.199
address=/video.sina.com.cn/192.168.188.199
address=/video.sina.com.cn/192.168.188.199
address=/.youku.com/192.168.188.199
address=/.tudou.com/192.168.188.199

ITGeeker正式被黑 截图纪念一下

不知是何方大圣,可能是你用了WP4.7.1最近爆出的漏洞,黑进来之后似乎只更改了两篇文章。还留了图片,有点类似齐天大圣的“到此一游!”。

也承蒙看的起小站,希望没有留其它后门,最近真的没时间搞网站。看来还是要及时更新补丁。

截图共赏:

ITGeeker被黑纪念[dt_fancy_image type=”” lightbox=”0″ align=”” margin_top=”0″ margin_bottom=”0″ margin_right=”0″ margin_left=”0″ width=”” height=”” animation=”none” media=”” image_alt=”” hd_image=”” image=””][/dt_fancy_image]

如何将一个已存在的目录转换为一个 Git 项目并托管到 GitHub 仓库

本文只讲一件事:将一个本地维护的项目,转换为一个 Git 项目,并托管到 GitHub。

总共以下几个步骤:

一、 打开命令行终端,进入项目所在的本地目录,将目录初始化为一个 Git 项目

$ git init

此时会在目录中创建一个 .git 隐藏文件夹

二、 将所有文件放进新的本地 git 仓库

$ git add .

如果你本地已经有 .gitignore 文件,会按照已有规则过滤不需要添加的文件。如果不想要添加所有文件,可以把 . 符号换成具体的文件名

三、 将添加的文件提交到仓库

$ git commit -m "Initial commit"

四、 访问 GitHub

有些时候可能要翻墙

五、 创建一个新仓库

为了避免冲突,先不要勾选 README 和 LICENSE 选项

六、 在生成的项目主页上,复制仓库地址

类似于 https://github.com/superRaytin/alipay-app-ui.git

七、 回到命令行终端界面,将本地仓库关联到远程仓库

$ git remote add origin https://github.com/superRaytin/alipay-app-ui.git

可运行以下命令查看结果:

$ git remote -v

八、 提交代码到 GitHub 仓库

git pull
git branch --set-upstream-to=origin/master
git push origin master

WordPress WP_Image_Editor_Imagick 指令注入 ImageMagick漏洞

ImageMagick于2016年5月4日突然曝出 CVE-2016-3714漏洞,简单的说就是黑客利用这个漏洞在你的网站上传图片即可给你植入木马,继而达到完全操控你的服务器的目的。 ImageMagick是一个使用非常广的组件,大量厂商都在处理图片的时候调用这个程序进行处理,而且很多开源应用也在核心代码中包含了ImageMagick选项。WordPress是著名的个人博客/CMS厂商,其核心源码中使用了PHP扩展ImageMagick。受到这个漏洞的影响,在攻击者拥有一定权限的情况下,可以在Wordpress中触发任意命令执行漏洞。

解决方案:

官方方案:通过配置策略文件暂时禁用ImageMagick,

可在 “/etc/ImageMagick/policy.xml” 文件中添加如下代码: [crayon-5731823321052191436154/] 当然去官网下载最新版的ImageMagick也是一个坚决方案,官方最新版地址:https://www.imagemagick.org/script/binary-releases.php 最新版本:ImageMagick-7.0.1-2

WordPress漏洞修复-未验证是否真正解决了问题

在wordpress/wp-includes/media.php的_wp_image_editor_choose函数内部找到: [crayon-5731823321064537302611/] 修改为下面这行:(即调换最后数组的顺序) [crayon-573182332106b691782417/] 经过修改后,在阿里云VPS验证已经找不到该漏洞了,状态为漏洞文件被修改。ITGeeker总感觉这类似一个欺骗手法,但不管怎样,云服务器不会提醒你还有漏洞未修复了。

吐槽

国外的安全专家为此漏洞,新开了网站https://imagetragick.com,而且持续更新内容当中,大家也可以在上面找到一些相关的解决方案。 而相比国内的某云来说,他们会通过手机短信或者邮件通知你找到了高危漏洞,而且告诉你可以“一键修复”,让你点击去修复,然后就会告诉你,你还没付钱,不能给你修,真是有点趁火打劫啊! 如果你公布一下修复方法,对于没有技术能力的,可以付费修复也还好啊,这根本太赤裸了。

MacBookPro网络恢复折腾记 如何使用快速Apple DNS

1. 五国界面,不断重启 – 事故的起因

本人使用的是MacBookPro 2012年下半年的型号,因为想调试Python程序,想在Mac OS里部署PyCharm,于是用HomeBrew安装更新,要求重装Xcode才能安装一些依赖,于是乎从APP Store直接安装了最新版本的Xcode7,之前是Xcode6.x.

就在这个时候,笔记本产生假死状况,等待许久后,任何按键还是没有任何反应。于是乎按住电源键5秒强行关机,也不是第一次这么干了,结果重启后,就是下面的5国语言,并不断循环的重启。

macbookpro-5-country

2. 尝试“急求” 修复未果

osx_recovery_command

 

 

按住电源按键5秒钟关机,然后再按一下启动,按住Commond + R键,直到出现苹果logo和loading进度条,放开,进入恢复系统界面。

yosemite-restart-recovery_mode-reinstall_os_x

然后选择“磁盘工具”, 选择系统盘,点击“急救”,过一会系统告诉你已经扫描了巴拉巴拉,修复了巴拉巴拉,然后我就重启电脑,结果不是5国语言了,变成一个带问号的文件夹图标了。

mac-folder-questionmark-screen-icon

重新进入恢复模式,结果找不到原先的系统盘了,于是计划重新安装系统,有两个选择:

  1. 制作USB安装盘进行安装
  2. 使用系统自带的网络恢复进行自动安装

PS:其实这里走了岔路,原因就是过分相信苹果的质量了,查阅苹果官方资料 关于 Mac 启动时您看到的屏幕 里面说这个原因是找不到启动磁盘的原因,到最后我才知道当时我的MacBooKPro的硬盘线出现问题了。如果换了硬盘线都可以不用重装系统了。

3. U盘制作安装盘,无果

尝试了一下网络恢复,30M的光钎电信宽带,速度很慢,只好选择U盘安装,Google一番下载了一些OS X 10.14 EI Capitan DMG文件,按照网上的方法用了很多种方法,试了好几个USB,有3.0的有2.0的,都无法启动安装盘,甚至用了老版本的OS X 10.9 DMG也没成功,在搜索中偶有看到,有人说苹果10.7之后不支持USB安装了。

网上大多教程都是在Mac OS系统里如何制作USB安装盘的,但往往情况是,我们的OS系统已经崩溃,所以只能在Windows底下制作Mac OS X安装盘,网上唯一的工具就是TransMac,网上搜一下就有下载的,每次制作都要花上好长时间。

结果没有一次是成功的,苹果官方也没有关于制作安装U盘的指导文件。

4.无奈选择网络恢复 折磨的开始

不管是Option按键或者Commond+R,都能进入网络恢复,因为此时MacBookPro找不到启动盘,就会自动启动网络恢复功能,只要你选择无线WiFi,输入密码即可。如果是插入有线的网线,记得打开路由器的DHCP,否则容易1202F等类似错误,因为MacBook Pro没被分配IP就无法联网。

乍一看,苹果还是很人性化,免去其他麻烦,直接一联网就解决安装问题了,可这恰恰就是苹果不重视中国用户的地方,在中国实用网络恢复的噩梦。因为速度很慢,Apple也不在中国加个CDN之类。网上一搜关于MacOS网络恢复的问题,都是关于抱怨速度太慢的问题,太多的人都在被苹果蹂躏,花了同样的价格,却享受不到同样的服务质量。(另外不重视中国用户的地方是银联绑定的问题,我们稍后再表。)

  1. 苹果的恢复模式是首先给你安装恢复程序,好了就是上面恢复模式的界面,我试了一下基本要1-3个小时可以下载装好,有时也失败。中间我有一次装好恢复程序后,换了个硬盘,重启后又要重新下载,为什么不能就装到硬盘呢?此处浪费了大把时间。
  2. 装好恢复程序后,就可以点击重新安装OS X了,链接网络,验证后就可以开始安装了。但不是给你安装新版本OS,是你最初笔记本自带的系统版本。这个体积很大,心理早有准备,但苹果服务器的龟速还是打败了我。

试了好多次,Wi-Fi,有线都试了,通常过了很久,然后就告诉你失败,会有XXXXF等错误代码;要不就是告诉你还要100多个小时,实在太慢。后来只好开着电脑整夜的下载,结果到第二天还只有一半多一点点,还预估要50多个小时,崩溃!

5.寻求加速方法 勉强安装成功(分享的重点)

尝试了两种比较靠谱的方法:

  1. 使用Apple DNS host加速。作者github:https://github.com/gongjianhui/AppleDNS.git
  2. V2EX DNS加速,据说专门解决苹果速度慢的问题

5.1 Apple DNS

第一种方法,需要python环境,需要一点点技术背景,但是不管电信/联通/移动的网络都可获得最快的苹

果IP地址,具体可参考作者github页面。ITGeeker发现增加这些后,对手机App Store加速明显,但网络恢复加速似乎没多大帮助。

况且这种方法需要能修改路由器的IP地址,或者你的路由器能使用dnsmasq。我的Linksys路由器刷了openwrt,所以可以添加。以下是我的30M中国电信宽带上海获得的IP加速,时间20160502:

# Build Date: 2016-05-02T09:38:55.136000 (UTC)
# API-1-ChinaNetCenter [ChinaNet] (Avg RTT: 7.950ms)
115.231.23.17   se.itunes.apple.com
115.231.23.17   su.itunes.apple.com
115.231.23.17   upp.itunes.apple.com
115.231.23.17   play.itunes.apple.com
115.231.23.17   client-api.itunes.apple.com
# API-2-ChinaCache [ChinaNet] (Avg RTT: 3.700ms)
180.153.126.252 itunes.apple.com
180.153.126.252 init.itunes.apple.com
# API-HK-Akamai-1 [HongKong0] (Avg RTT: 135.150ms)
184.87.97.50    search.itunes.apple.com
# API-HK-Akamai-2-AMRadio [HongKong1] (Avg RTT: 140.421ms)
104.89.141.101  radio.itunes.apple.com
104.89.141.101  radio-activity.itunes.apple.com
104.89.141.101  radio-services.itunes.apple.com
# Appple Music Streaming and iOS/OS X Apps [ChinaNet-ChinaNetCenter] (Avg RTT: 8.650ms)
183.134.12.71   aod.itunes.apple.com
183.134.12.71   mvod.itunes.apple.com
183.134.12.71   streamingaudio.itunes.apple.com

 

5.2 V2EX DNS

官方介绍:如果你的 iPhone,iPad 或是 Mac 访问 App Store 时很慢,下载很慢,那么试试将 DNS 设置为 V2EX DNS 吧,可以大幅度提高你的设备从 App Store 下载数据的速度。

178.79.131.110

只需要把你的本机网络连接的DNS设为此IP地址就可以了。我当时加速心切,两种加速都添加了。

5.3 如何让Mac OS恢复程序通过指定DNS来下载

在电脑启动的时候按住Commond+R、进入系统恢复界面后、打开实用工具、终端、输入:

networksetup setdnsservers wi-fi 178.79.131.110

回车确认

原理就是通过指令修改当前Wi-Fi的DNS.如果是用网线那就需要输入:

networksetup -setdnsservers ethernet 178.79.131.110

如果不知道自己连接网络设备的代号,就用命令查看一下吧:

networksetup -listnetworkserviceorder

现在终于可以比较“快速”的装完恢复程序,大概一个多小时,我试了好几次都差不多这个速度。重新安装OS X的速度也缩短到15个小时左右,终于再开了一个晚上的电脑,第二天一早发现已经安装成功了。也不知道是该开心呢,还是只是幸运而已。

6. 后记 一点提示

装完之后因为版本比较低10.7 Lion版本,那就赶紧APP Store免费升级,结果碰到错误提示:

此版本的OS X 不支持银联。

这时需要在App Store精选页的右上角选择账号进去才能选择 “无” 也就是不绑定信用卡,在其他地方或者apple.com登入账号都是无法去掉信用卡设置的。

这其实是苹果的一个无限循环错误,不让升级,也不让绑定,真不知道这个逻辑谁想出来的。

重新安装的时候,还是没有发现原先的SSD,于是我装到了另外一个分区,而且换了另外一个SSD也找不到,但用硬盘盒装上后插到电脑就能使用,确认硬盘肯定没问题。于是上淘宝买了一根硬盘线,54元,换上后,终于可以找到SSD,然后使用Carbon Copy Cloner 4.1.6 clone了HD硬盘的整个分区到SSD,启动电脑,按住Option,选择SSD的分区,顺利启动。

这时你还会发现一个问题,那就是SSD硬盘速度很慢,原因是Apple对第三方SSD没有自动开启Trim功能,那就在终端输入以下命令吧:

su trimforce enable

如果看到su:sorry错误,那就先打开系统的Root登入权限吧,如何操作?google吧!