linux 设置ftp帐号并限制访问目录

查看组:cat /etc/group

查看用户:cat  /etc/passwd

查看用户所属组

当前用户 groups

查看指定用户的 groups user_name

 

 

首先安装FTP参照 http://blog.csdn.NET/lihuang319/article/details/50728037

1. //添加用户hdcsc,限定访问目录/data/export

useradd -d /data/export hdcsc

2. //输入两次密码

passwd hdcsc

//限定用户test不能telnet,只能ftp
usermod -s /sbin/nologin hdcsc

3. vi /etc/passwd 文件里能看到刚刚创建的用户名和可访问目录信息

4. 修改vsftp配置文件

编辑vsftpd的配置文件/etc/vsftpd/vsftpd.conf

把这两行的注释去掉
chroot_list_enable=YES
# (default follows)
chroot_list_file=/etc/vsftpd/chroot_list

如果没有/etc/vsftpd/chroot_list文件请新建,把用户名hdcsc写进去,每个用户名一行保存,可参见同目录下user_list文件格式

5. 更改文件夹权限

chown hdcsc:hdcsc -R /data/export

chmod 755 -R /data/export

注意其他文件夹权限,最好也是755一下的,不能让新ftp账户修改到其他的文件夹

6. 重启ftp服务

service vsftpd restart

问题1. 连接ftp出现 553 Could not create file

执行命令 setsebool allow_ftpd_full_access on

或者检查文件夹是否有可写权限

修改权限:chmod 777 -R 文件夹

 

http://blog.csdn.net/bluishglc/article/details/42399439

从2.3.5之后,vsftpd增强了安全检查,如果用户被限定在了其主目录下,则该用户的主目录不能再具有写权限了!如果检查发现还有写权限,就会报该错误。

要修复这个错误,可以用命令chmod a-w /home/user去除用户主目录的写权限,注意把目录替换成你自己的。或者你可以在vsftpd的配置文件中增加下列两项中的一项:

allow_writeable_chroot=YES

搭建nginx反向代理用做内网域名转发

情景

由于公司内网有多台服务器的http服务要映射到公司外网静态IP,如果用路由的端口映射来做,就只能一台内网服务器的80端口映射到外网80端 口,其他服务器的80端口只能映射到外网的非80端口。非80端口的映射在访问的时候要域名加上端口,比较麻烦。并且公司入口路由最多只能做20个端口映 射。肯定以后不够用。
然后k兄就提议可以在内网搭建个nginx反 向代理服务器,将nginx反向代理服务器的80映射到外网IP的80,这样指向到公司外网IP的域名的HTTP请求就会发送到nginx反向代理服务 器,利用nginx反向代理将不同域名的请求转发给内网不同机器的端口,就起到了“根据域名自动转发到相应服务器的特定端口”的效果,而路由器的端口映射 做到的只是“根据不同端口自动转发到相应服务器的特定端口”,真是喜大普奔啊。

涉及的知识:nginx编译安装,nginx反向代理基本配置,路由端口映射知识,还有网络域名等常识。

本次实验目标是做到:在浏览器中输入xxx123.tk能访问到内网机器192.168.10.38的3000端口,输入xxx456.tk能访问到内网机器192.168.10.40的80端口。

配置步骤

服务器ubuntu 12.04

###更新仓库

#下载nginx和相关软件包

pcre是为了编译rewrite模块,zlib是为了支持gzip功能。额,这里nginx版本有点旧,因为我还要做升级nginx的实验用。大家可以装新版本。

#安装编译环境

#创建nginx用户

所谓的unprivileged user

#开始编译安装

#给文件夹授权

#修改配置文件
vim nginx.conf

编辑反向代理服务器配置文件:
vim /usr/local/nginx/conf/reverse-proxy.conf

然后重新加载nginx配置文件,使之修改生效,再把xxx123.tk域名指向公司静态IP,这样就成功的做到了在浏览器中输入 xxx123.tk的时候访问的内网服务器192.168.10.38的3000端口,输入xxx456.tk访问192.168.10.40的80端口 的作用。
如果想对后端机器做负载均衡,像下面这配置就可以把对nagios.xxx123.tk的请求分发给内网的131和132这两台机器做负载均衡了。

额,关于负载均衡和缓存就不多说了,这里只是要起到一个简单的“域名转发”功能。
另外,由于http请求最后都是由反向代理服务器传递给后段的机器,所以后端的机器原来的访问日志记录的访问IP都是反向代理服务器的IP。
要想能记录真实IP,需要修改后端机器的日志格式,这里假设后端也是一台nginx:
在后端配置文件里面加入这一段即可:

再看看原来日志的格式长什么样:

看出区别了吧

 

遇到的问题

 

  • 之前没配置下面这段,访问时候偶尔会出现504 gateway timeout,由于偶尔出现,所以不太好排查

报错日志:

从日志看来是连接超时了,网上一通乱查之后估计可能是后端服务器响应超时了,本着大胆假设,小心求证的原则,既然假设了错误原因就要做实验重现错 误:那就调整代理超时参数,反过来把代理超时阀值设小(比如1ms)看会不会次次出现504。后来发现把proxy_read_timeout 这个参数设置成1ms的时候,每次访问都出现504。于是把这个参数调大,加入上面那段配置,解决问题了。

作者邮箱:790455803@qq.com,有问题可以直接EMAIL作者,当然也可以加入我们ttlsa群单独私聊或者群里发提问。

jQuery 1.7以后版本使用on代替live

对于动态创建的标签,假如映射事件。在1.7版本以前使用live。1.8版本推荐使用on。

使用方法如下

1.7版以前的

$(“#ajaxTable tbody tr”).live(“click”,function(){

});

假如想当然的简单替换

$(“#ajaxTable tbody tr”).on(“click”,function(){

}); 呵呵不好用。得按照以下的方法才可以

$(document).on(“click”,”#ajaxTable tbody tr”,function(){});

$(this)与this的区别

相信很多刚接触JQuery的人,很多都会对$(this)和this的区别模糊不清,那么这两者有什么区别呢?

首先来看看JQuery中的  $()  这个符号,实际上这个符号在JQuery中相当于JQuery(),即$(this)=jquery();也就是说,这样可以返回一个jquery对象。 那么,当你在网页中alert($(‘#id’));时,会弹出一个[object Object ],这个object对象,也就是jquery对象了。

那么,我们再回过头来说$(this),这个this是什么呢?假设我们有如下的代码:

$(“#desktop a img”).each(function(index){

alert($(this));

alert(this);

}

那么,这时候可以看出来:

alert($(this));  弹出的结果是[object Object ]

alert(this);        弹出来的是[object HTMLImageElement]

也就是说,后者返回的是一个html对象(本例中是遍历HTML的img对象,所以为 HTMLImageElement)。很多人在使用jquery的时候,经常this.attr(‘src’);   这时会报错“对象不支持此属性或方法”,这又是为什么呢?其实看明白上面的例子,就知道错在哪里了:

很简单,this操作的是HTML对象,那么,HTML对象中怎么会有val()方法了,所以,在使用中,我们不能直接用this来直接调用jquery的方法或者属性。

linux下导入、导出mysql数据库命令

一、导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):
1、导出数据和表结构:
mysqldump -u用户名 -p密码 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/   mysqldump -uroot -p abc > abc.sql
敲回车后会提示输入密码

2、只导出表结构
mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql
#/usr/local/mysql/bin/   mysqldump -uroot -p -d abc > abc.sql

注:/usr/local/mysql/bin/  —>  mysql的data目录
二、导入数据库
1、首先建空数据库
mysql>CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

2、导入数据库
方法一:
(1)选择数据库
mysql>use abc;
(2)设置数据库编码
mysql>set names utf8;
(3)导入数据(注意sql文件的路径)
mysql>source /home/abc/abc.sql;
方法二:
mysql -u用户名 -p密码 数据库名 < 数据库名.sql
#mysql -uabc_f -p abc < abc.sql

建议使用第二种方法导入。

注意:有命令行模式,有sql命令

 

创建数据库yourdbname,并制定默认的字符集是utf8。

CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8 COLLATE utf8_general_ci;

如果要创建默认gbk字符集的数据库可以用下面的sql:

create database yourdb DEFAULT CHARACTER SET gbk COLLATE gbk_chinese_ci;

快速操作Linux终端命令行的快捷键列表

在shell命令终端中,Ctrl+n相当于方向向下的方向键,Ctrl+p相当于方向向上的方向键。

 

在命令终端中通过它们或者方向键可以实现对历史命令的快速查找。这也是快速输入命令的技巧。

 

在命令终端中可以通过Ctrl+r 实现快速检索使用过的历史命令。Ctrl+r中r是retrieve中r。

 

Ctrl+a:光标回到命令行首。 (a:ahead)

 

Ctrl+e:光标回到命令行尾。 (e:end)

 

Ctrl+b:光标向行首移动一个字符。 (b:backwards)

 

Ctrl+ f:光标向行尾移动一个字符。 (f:forwards)

 

Ctrl+w: 删除光标处到行首的字符。

 

Ctrl+k:删除光标处到行尾的字符。

 

Ctrl+u:删除整个命令行文本字符。

 

Ctrl+h:向行首删除一个字符。

 

Ctrl+d:向行尾删除一个字符。

 

 

 

Ctrl+y::粘贴Ctrl+u,Ctrl+k,Ctrl+w删除的文本。

 

Ctrl+p: 上一个使用的历史命令。 (p:previous)

 

Ctrl+n: 下一个使用的历史命令。(n:next )

 

Ctrl+r:快速检索历史命令。(r:retrieve)。

 

Ctrl+t: 交换光标所在字符和其前的字符。

 

Ctrl+i:相当于Tab键。

 

Ctrl+o:相当于Ctrl+m.

 

Ctrl+m:相当Enter键。

 

 

 

其他控制键:

 

Ctrl+s:使终端发呆,静止,可以使快速输出的终端屏幕停下来。

 

Ctrl+q:退出Ctrl+s引起的发呆。

 

Ctrl+z:使正在运行在终端的任务,运行于后台。 (可用fg恢复)

 

Ctrl+c:中断终端中正在执行的任务。

 

Ctrl+d: 在空命令行的情况下可以退出终端。

 

Ctrl+[ :相当于Esc键。

 

Esc键:连续按3次显示所有的支持的终端命令。

 

Tab键:命令、文件名等自动补全功能。

两台Linux系统之间传输文件

scp是有Security的文件copy,基于ssh登录。操作起来比较方便,比如要把当前一个文件copy到远程另外一台主机上,可以如下命令。

scp /home/daisy/full.tar.gz root@172.19.2.75:/home/root

如果想反过来操作,把文件从远程主机copy到当前系统,也很简单。

实例1:从远处复制文件到本地目录

命令:

scp root@192.168.120.204:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/

 

php5.6安装(apache2.4,mysql5.6已安装)

wget http://mirrors.sohu.com/php/php-5.6.9.tar.gz

tar zxf php-5.6.9.tar.gz

yum install libxml2

yum install libxml2-devel

yum install bzip2 bzip2-devel

yum install libcurl

yum install curl curl-devel

yum install libjpeg-devel

yum -y install libpng-devel

yum -y install freetype-devel

wget ftp://mcrypt.hellug.gr/pub/crypto/mcrypt/attic/libmcrypt/libmcrypt-2.5.7.tar.gz

tar zxf libmcrypt-2.5.7.tar.gz

cd libmcrypt-2.5.7

./configure –prefix=/usr/local/libmcrypt

make && make install

wget http://soft.7dot.com/soft/mhash-0.9.9.9.tar.gz

tar zxf mhash-0.9.9.9.tar.gz

cd mhash-0.9.9.9

./configure –prefix=/usr/local/mhash

make && make install

wget https://sourceforge.net/projects/mcrypt/files/MCrypt/2.6.8/mcrypt-2.6.8.tar.gz/download

tar zxf mcrypt-2.6.8.tar.gz

cd mcrypt-2.6.8

export LD_LIBRARY_PATH=/usr/local/libmcrypt/lib:/usr/local/mhash/lib

export LDFLAGS=”-L/usr/local/mhash/lib -I/usr/local/mhash/include/”

export CFLAGS=”-I/usr/local/mhash/include/”

./configure –prefix=/usr/local/mcrypt –with-libmcrypt-prefix=/usr/local/libmcrypt

make

make install

cd php-5.6.9

./configure –prefix=/usr/local/php –with-apxs2=/usr/local/httpd/bin/apxs –with-libxml-dir=/usr/include/libxml2 –with-config-file-path=/etc/php –with-mysql=/usr/local/mysql –with-mysqli=/usr/local/mysql/bin/mysql_config –with-gd –enable-gd-native-ttf –with-zlib –with-mcrypt=/usr/local/libmcrypt –with-pdo-mysql=/usr/local/mysql –enable-shmop –enable-soap –enable-sockets –enable-wddx –enable-zip –with-xmlrpc –enable-fpm –enable-mbstring –with-zlib-dir –with-bz2 –with-curl –enable-exif –enable-ftp –with-jpeg-dir=/usr/lib –with-png-dir=/usr/lib –with-freetype-dir=/usr/lib/

make && make install

php安装成功

接下来仿wampserver 的httpd.conf 加对php的支持

中国大陆开源镜像站汇总

1.企业贡献:

搜狐开源镜像站:http://mirrors.sohu.com/

网易开源镜像站:http://mirrors.163.com/

2.大学教学:

  北京理工大学:

http://mirror.bit.edu.cn (IPv4 only)

http://mirror.bit6.edu.cn (IPv6 only)

  北京交通大学:

http://mirror.bjtu.edu.cn (IPv4 only)

http://mirror6.bjtu.edu.cn (IPv6 only)

http://debian.bjtu.edu.cn (IPv4+IPv6)

兰州大学:http://mirror.lzu.edu.cn/

厦门大学:http://mirrors.xmu.edu.cn/

  上海交通大学:

http://ftp.sjtu.edu.cn/ (IPv4 only)

http://ftp6.sjtu.edu.cn (IPv6 only)

  清华大学:

http://mirrors.tuna.tsinghua.edu.cn/ (IPv4+IPv6)

http://mirrors.6.tuna.tsinghua.edu.cn/ (IPv6 only)

http://mirrors.4.tuna.tsinghua.edu.cn/ (IPv4 only)

天津大学:http://mirror.tju.edu.cn/

  中国科学技术大学:

http://mirrors.ustc.edu.cn/ (IPv4+IPv6)

http://mirrors4.ustc.edu.cn/

http://mirrors6.ustc.edu.cn/

西南大学:http://linux.swu.edu.cn/swudownload/Distributions/

  东北大学:

http://mirror.neu.edu.cn/ (IPv4 only)

http://mirror.neu6.edu.cn/ (IPv6 only)

电子科技大学:http://ubuntu.uestc.edu.cn/

青岛大学:http://mirror.qdu.edu.cn/