Android查看SELinux状态及关闭SELinux

SELinux2.6版本的 Linux内核中提供的强制访问控制 ( MAC)系统。对于目前可用的 Linux安全模块来说, SELinux是功能最全面,而且测试最充分的,它是在 20年的 MAC研究基础上建立的。 SELinux在类型强制服务器中合并了多级安全性或一种可选的多类策略,并采用了基于角色的访问控制概念。

selinux默认配置在 /etc/sysconfig/selinux

默认有三种级别

enforcing级别: Linuxselinux所设置的安全策略都会被启用.所有与 selinux安全策略有关的服务或者程序都会被策略阻止.也就是,所有操作都会进行权限检查。

permissive级别: Linuxselinux所设置的安全策略都会被启动,但是所有与 selinux安全策略有关的服务或者程序不会被策略阻止,但是会收到警告.也就是,所有操作都被允许(即没有 MAC),但是如果有违反权限的话,会记录日志

disabled级别:关闭 selinux,相当于系统没有安装 selinux一样.

 

一般可以通过 getenforce查看 selinux的运行级别.也可以通过 setenforce 0或者 1设置 selinux的运行级别,级别 表示 Permissive模式,级别 1表示 Enforcing模式. 至于 disabled模式和其他模式的切换只能修改配置文件,命令不起作用.其次,修改完成之后,必须重启系统才能够生效.

参考链接


Ubuntu 14.04服务器Apache禁止某些User Agent抓取网站

最近网站上,被某些爬虫占用了太大的资源,导致访问不畅,网上搜了一下禁止某些爬虫的办法。

下面这些方法需要同时实施才足够稳妥。

1.在网站根目录下修改或创建 .htaccess文件

注意,这个过滤条件需要添加到整个 .htaccess文件的头部,否则可能由于其他的过滤条件而跳过了这个过滤条件,导致某些情况下不生效。

2.修改 Apache2的配置文件

禁止某些 User-Agent的访问

注意:

中间不可用空格,否则无法成功生效。

3.网站根目录下面增加 robot.txt,禁止爬虫

4.对于使用 ProxyPass, ProxyPassReverse代理转发的情况

使用如下配置进行过滤

注意:

中间不可用空格,否则无法成功生效。

5.验证刚刚的服务器设置是否已生效

刚刚的设置完成后,我们需要修改浏览器的 User Agent,来验证一下我们的设置是否已经生效了。
Chrome-55.0为例, Windows下面按下 F12,在弹出的窗口中进行如下操作:

参考链接


服务器反爬虫攻略:Apache/Nginx/PHP禁止某些User Agent抓取网站

被优化为无排版和缩进的JavaScript代码,如何调试?

有时候网页上的 JavaScript代码被优化器优化过后,会丢失原来的换行,导致整个的代码蜷缩成一行,完全没办法调试,此时我们就需要借助 Chrome或者 FireFox自带的代码调整功能来实现代码的调试了,如下图:

参考链接


毫无排版和缩进的 JavaScript 代码,怎么阅读?

Mac OSX下VirtualBox直接使用物理硬盘作虚拟机磁盘

目前 VirtualBox只能用命令行来建立磁盘才可以使用物理硬盘。

如果是USB磁盘的话,那么需要从"关于本机"->"概览"->"系统报告"->"USB"中找到磁盘的名字,比如"disk2".

我们假定 VirtualBox安装在"
/Applications/VirtualBox.app/"这个目录下面,要在" ~/VirtualBox\ VMs/Ubuntu/"目录下面生成文件,则执行如下命令:

/dev/disk2表示机器上的第二块硬盘,每次插入新磁盘后,就会出现类似 /dev/disk*的一个路径名。

最后,新建一个虚拟机,然后指定使用刚刚创建的磁盘即可。

参考链接


How do I install Mavericks onto external HD but from inside VirtualBox

macOS Sierra支持NTFS/EXT4文件系统

1.安装 HomeBrew

按照 让Mac也能拥有apt-get类似的功能——Brew 的介绍配置安装 HomeBrew

2.安装 osxfuseext4fusentfs-3g

卸载命令为:

3.挂载磁盘设备

如果是USB磁盘的话,那么需要从"关于本机"->"概览"->"系统报告"->"USB"中找到磁盘的名字,比如"disk2".
如果已知是"EXT4"磁盘格式的话,则使用如下命令:

参考链接


Mac El Capitan上的latex、NTFS硬盘等的一些东西(不一定靠谱)

Ubuntu 16.04下载Android源代码

由于众所周知的原因,我们是没办法正常下载 Android的源代码的,因此只能使用国内的镜像来操作了。

1.安装 repo工具

2.在需要存储代码的地方创建文件夹

3.使用镜像下载 Android源代码
omapzoom.org的镜像

清华大学的镜像

上面执行之后是拉取全部的代码。

如果要使用某个特定分支的版本的源代码的话,则则初始化的时候指定分支,比如我想要 Android 7.0.0_r21的分支,则执行如下命令

4.同步代码

5.列出全部分支

6.切换到指定分支

7.查看当前的分支

8.删除不用的本地分支

参考链接


WDMyCloud编译TestDisk&PhotoRec 7.0/7.1

1.按照How to successfully build packages for WD My Cloud from source中的介绍,搭建完成 WDMyCloud的编译环境

2.下载TestDisk & PhotoRec 7.1的源代码

3.解压缩源代码

4.安装依赖库

5.编译源代码

编译好的文件在 src目录下面。

上面的编译方法编译出来的没办法生成安装包,如果需要安装包的版本,可以直接从 Debian源中下载已经适配过的源代码进行编译,目前已经被适配的版本是 testdisk_7.0-2

使用如下方式编译:

参考链接


源码包: testdisk (7.0-2)

升级Struts2之后报告HTTP Status 500 - java.lang.ClassNotFoundException: org.apache.jsp.index_jsp以及org.apache.jasper.JasperException: Unable to compile class for JSP

升级 Struts22.3.20.1版本升级到 2.5.5版本后可能报告如下错误:

也有可能发生如下错误信息:

具体信息如下图:

1422265899_66497

比较诡异的是,在 Tomcat 8的环境下,是可以正常运行的,但是在 Tomcat 7环境下却会报错。造成这个现象的原因就是在引入的 Jar包中包含了 jsp-api.jar这个 Jar包,只要在最后生成的 war包中排除这个文件即可。

Struts2从2.3.20.1升级到2.5.5版本后报错:ClassNotFoundException: org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter

以前项目一直使用 Struts22.3.20.1版本,这个版本是 IntelliJ Idea新建项目的时候默认指定的版本,但是这个版本存在漏洞,必须进行升级,干脆一不做二不休,直接升级到最新的 2.5.5版本,但是运行的时候报告如下错误信息:

分析 Struts2-2.5.5的源代码发现

被更改了目录,变成了

只要如此修改即可。

Ubuntu 16.04下创建IntelliJ IDEA图标快捷方式

一般在安装目录下面或者桌面上创建文件,命名为: idea.desktop
使用 vim编辑该文件

内容如下:

接着给予这个文件执行权限

以后双击这个图标,就可以直接启动 IntelliJ IDEA了。