无法删除目录,目录包含.user.ini

无法删除或更改权限,显示:rm: cannot remove `.user.ini’: Operation not permitted

无法删除“.user.ini”文件解决方法,运行后删除即可

chattr -i /home/wwwroot/yoursite/.user.ini

如果是需要修改文件,记得修改完以后运行:

chattr +i /home/wwwroot/yoursite/.user.ini

chattr命令:有时候你发现用root权限都不能修改某个文件,大部分原因是曾经用chattr命令锁定该文件了。chattr命令的作用很大,通过chattr命令修改属性能够提高系统的安全性,但是它并不适合所有的目录。chattr命令不能保护/、/dev、/tmp、/var目录。lsattr命令是显示chattr命令设置的文件属性。

语法 chattr [-RV] [-+=AacDdijsSu] [-v version] 文件或目录
参数  描述
-R  递归处理所有的文件及子目录。
-V  详细显示修改内容,并打印输出。
–   失效属性。
+   激活属性。
=   指定属性。
A   Atime,告诉系统不要修改对这个文件的最后访问时间。
S   Sync,一旦应用程序对这个文件执行了写操作,使系统立刻把修改的结果写到磁盘。
a   Append Only,系统只允许在这个文件之后追加数据,不允许任何进程覆盖或截断这个文件。如果目录具有这个属性,系统将只允许在这个目录下建立和修改文件,而不允许删除任何文件。
i   Immutable,系统不允许对这个文件进行任何的修改。如果目录具有这个属性,那么任何的进程只能修改目录之下的文件,不允许建立和删除文件。
D   检查压缩文件中的错误。
d   No dump,在进行文件系统备份时,dump程序将忽略这个文件。
C   Compress,系统以透明的方式压缩这个文件。从这个文件读取时,返回的是解压之后的数据;而向这个文件中写入数据时,数据首先被压缩之后才写入磁盘。
s   Secure Delete,让系统在删除这个文件时,使用0填充文件所在的区域。
u   Undelete,当一个应用程序请求删除这个文件,系统会保留其数据块以便以后能够恢复删除这个文件。

例子
用chattr命令防止系统中某个关键文件被修改:
# chattr +i /etc/resolv.conf

用lsattr查询文件属性:
# lsattr /etc/resolv.conf
—-i——– /etc/resolv.conf #显示如上

让某个文件只能往里面追加数据,但不能删除,适用于各种日志文件:
# chattr +a /var/log/messages

SVN服务端安装

安装:
#yum install subversion
测试是否安装成功
#svnserve –version
如果显示了版本信息则表示安装成功
配置:
/root/svn/repo为所创建仓库的路径,理论上可以是任何目录
1、创建仓库 svnadmin create /home/svn/repo
2、修改配置文件/home/svn/repo/conf/svnserve.conf
#去掉#[general]前面的#号
[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access = none
#认证用户的权限,可以是read,write,none,默认为write
auth-access = write
#密码数据库的路径,去掉前面的#
password-db = passwd
3、修改配置文件passwd。
[users]
name = password
4、启动SVN服务器
对于单个代码仓库
启动命令 svnserve -d -r /home/svn –listen-host 192.168.1.16
其中-d表示在后台运行,-r指定服务器的根目录,这样访问服务器时就可以直接用svn://服务器ip来访问了。如果服务器有多ip的话–listen-host来指定监听的ip地址.
我们可以在svn客户端中通过svn://192.168.1.16来访问svn服务器
对于多个代码仓库,我们在启动时也可以用-r选项来指定服务器根目录,但访问时需要写上每个仓库相对于svn根目录的相对路径.
比如,我们有两个代码仓库/home/repo1 和/home/repo2,我们用svnserve -d -r /home –listen-host 192.168.1.16来启动,那么在客户端访问时可以用svn://192.168.1.16/repo1和svn: //192.168.1.16/repo2来分别访问两个项目
5、停止SVN服务器:killall svnserve
svn默认端口是3690,在防火墙上开放这个端口。
/sbin/iptables -A INPUT -i eth0 -p tcp –dport 3690 -j ACCEPT
/sbin/service iptables save

CentOS下pip和shadowsocks的安装使用

Pip是安装Python包的工具,提供了安装、列举已安装包、升级以及卸载包的功能。Pip 是对easy_install的取代,提供了和easy_install相同的查找包的功能,因此可以使用easy_install安装的包也同样可以使用pip进行安装。

目前有很多Python程序都是可以直接通过Pip来一键安装了,比如众所周知的Django、Markdown、Shadowsocks等。

简要介绍一下Pip的用法(以安装Shadowsocks举例):
1、安装package
pip install shadowsocks
2、列出已安装的packages
pip freeze
3、安装特定版本的package
pip install shadowsocks=1.3.3′
pip install shadowsocks>1.0,<1.3.3′
4、升级已安装的package到最新版本
pip install -U shadowsocks
5、卸载已安装的package
pip uninstall shadowsocks
6、查询已安装的package
pip search “shadowsocks”

安装Pip之前必须要先安装setuptools,安装setuptools之前,必须要安装了Python,这之间的安装过程存在依赖关系,缺一不可。因此,整个过程还是比较麻烦的。
1、 检查Python版本
python –version
CentOS6.5默认安装的Python版本是2.6.6,返回值为:Python 2.6.6
2、 安装setuptools
yum install -y python-setuptools
安装完毕后,easy_install命令就可以使用了。
3、 安装pip
easy_install pip
通过easy_install安装pip是最为简单的方法。pip默认安装到/usr/bin目录下。
4、 安装shadowsocks
pip install shadowsocks

Shadowsocks的配置和使用
至于Shadowsocks可以拿来做什么,这里就毋须赘述了。直接开始吧。
1、 创建Shadowsocks的配置文件:
CentOS下通过vim创建该配置,运行命令:
vi /etc/shadowsocks.json
内容如下:

{
    "server":"your_server_ip",
    "server_port":8989,
    "local_address": "127.0.0.1",
    "local_port":1080,
    "password":"yourpassword",
    "timeout":600,
    "method":"aes-256-cfb",
    "fast_open": false,
    "workers": 1
}

各字段的含义:
server:服务器 IP (IPv4/IPv6),注意这也将是服务端监听的 IP 地址
server_port:监听的服务器端口
local_address:本地监听的 IP 地址
local_port:本地端端口
password:用来加密的密码
timeout:超时时间(秒)
method:加密方法,可选择 “bf-cfb”, “aes-256-cfb”, “des-cfb”, “rc4″, 等等。默认是一种不安全的加密,推荐用 “aes-256-cfb”
fast_open:true 或 false。如果你的服务器 Linux 内核在3.7+,可以开启 fast_open 以降低延迟。开启方法:

echo 3 > /proc/sys/net/ipv4/tcp_fastopen

开启之后,将 fast_open 的配置设置为 true 即可。
works:works数量,默认为 1

2、 安装M2Crypto
默认加密方法 table 速度很快,但很不安全。推荐使用 “aes-256-cfb” 或者 “bf-cfb”。请不要使用 “rc4″,它不安全。如果选择 “table” 之外的加密,需要安装 M2Crypto。
先安装依赖包:

yum install -y openssl-devel gcc swig python-devel autoconf libtool

安装setuptools:

wget --no-check-certificate https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
python ez_setup.py install

再通过pip安装M2Crypto:
pip install M2Crypto

3、 安装 gevent
安装 gevent可以提高 Shadowsocks 的性能。CentOS下安装gevent依赖libevent和greenlet。
安装libevent:
yum install -y libevent
安装greenlet:
pip install greenlet
安装gevent:
pip install gevent

4、 命令行参数(服务器端启动命令)
ssserver -c /etc/shadowsocks.json
如果想在后台一直运行Shadowsocks,启动命令如下:

nohup ssserver -c /etc/shadowsocks.json > /dev/null 2>&1 &

备注:关于nohup,是可以让程序在后台运行的命令。

同时可以用命令行参数覆盖 /etc/shadowsocks.json 里的设置:
sslocal -s 服务器地址 -p 服务器端口 -l 本地端端口 -k 密码 -m 加密方法
ssserver -p 服务器端口 -k 密码 -m 加密方法

备注:sslocal是客户端程序;ssserver是服务端程序。

5、 防火墙设置(如有)
编辑防火墙配置文件/etc/sysconfig/iptables,将服务器端口(server_port)放行。
新增一条防火墙规则:

-A INPUT -m state --state NEW -m tcp -p tcp --dport 8989 -j ACCEPT

重启防火墙iptables:
service iptables restart

至此,服务器端的 Shadowsocks 安装和配置完毕。

6、客户端配置
Windows客户端有图形界面也有命令行,我们这里以配置图形化界面的shadowsocks-csharp为例说明。
下载客户端shadowsocks-csharp(最新版1.1.2):
https://shadowsocks-csharp.googlecode.com/files/shadowsocks-csharp-1.1.2.zip

解压至任意目录下,双击shadowsocks-csharp.exe运行程序,各参数选项填入:

Server IP:   服务器 IP (IPv4/IPv6),填入在服务器端设置的IP地址(server)
Server Port: 服务器端口,填入在服务器端设置的端口号(server_port)
Password:    用来加密的密码,填入在服务器端设置的加密密码(password)
Proxy Port:  本地端代理的端口,填入在服务器端设置的本地端端口(local_port)
Encryptor:   加密方法,填入在服务器端设置的加密方法(method)

注意:本地客户端填写的参数一定要与服务器端设置的一致才可以。

另有一款客户端 shadowsocks-gui (推荐)可供选择,下载地址:
https://sourceforge.net/projects/shadowsocksgui/files/dist/

下面就可以利用浏览器插件无障碍浏览国外网站了。插件的设置过程这里略过。
AutoProxy(用于Firefox)、Proxy SwitchySharp(用于Chrome)