vsftpd使用方法小结、Linux安装JDK出现“NoClassDefFoundError: /Object”的解决方案、ubuntu 12.04安装jdk

161 阅读10分钟

vsftpd使用方法小结

 \

vsftpd 是一个 UNIX 类操作系统上运行的服务器的名字,它可以运行在诸如 Linux, BSD, Solaris,HP-UX 以及 IRIX 上面。它支持很多其他的 FTP 服务器不支持的特征。比如:

  • 非常高的安全性需求
  • 带宽限制
  • 良好的可伸缩性
  • 创建虚拟用户的可能性
  • IPv6支持
  • 中等偏上的性能
  • 分配虚拟 IP 的可能性
  • 高速

vsftpd 的名字代表"very secure FTP daemon", 安全是它的开发者 Chris Evans考虑的首要问题之一。在这个 FTP 服务器设计开发的最开始的时候,高安全性就是一个目标。

一个例子就是 vsftpd 是在 chroot 模式下工作的,chroot 模式就是为程序(这里就是 vsftpd了)单独指定一个新的目录,它也就不能访问那个目录之外的程序和文件了 --- 所以这也称为“被锁上的”。一个可能被潜在的攻击者破坏的FTP 服务器将被从系统的其他部分独立开来,从而避免了更大的损失。

由于有了如此多的特性,其中 FTP 服务的安全性应该是最重要的,vsftpd 比其他 FTP 服务器更加优越。

1.安装vsftpd 
直接从源里面安装,easy \

代码:

sudo apt-get install vsftpd\


安装完毕后或许会自动生成一个帐户"ftp",/home下也会增加一个文件夹。
如果没有生成这个用户的话可以手动来,生成了就不用了:\

代码:

sudo useradd -m ftp
sudo passwd ftp\


有"ftp"帐户后还要更改权限\

代码:

sudo chmod 777 /srv/ftp (注意:原日志是这么写的,但是这句执行之后会有错误。应该是
sudo chmod 755 /srv/ftp)


在这个目录下我建立一个文件夹专门保存需要共享的内容

2.配置文件
通过sudo gedit /etc/vsftpd.conf修改。
配置文件如下:\

代码:

# cat /etc/vsftpd.conf
# 服务器以 standalong 模式运行,如果以 root 用户直接启动 vsftpd 进程,则必须。
# 注销语句以 xinetd 方式运行
listen=YES

# 上传总开关(全局控制)
write_enable=YES

# 接受匿名用户,默认无密码请求
anonymous_enable=YES

# 接受本地用户
local_enable=YES

# 本地用户上传文件(包括目录)的 umask
# 注意 vsftp 版本,某些旧版的该选项会被 chown_uploads/chown_username 二选项覆盖
local_umask=022

# 允许匿名用户上传文件,配合 anon_umask,否则文件权限皆为默认的600,用户上传的文件不提供给任何匿名用户下载
anon_upload_enable=YES

# 匿名用户上传文件(包括目录)的 umask
# 注意点同 local_umask
anon_umask=022

# 允许匿名用户创建目录,配合 anon_umask 实现目录可写,否则依我(aBiNg)看,实际用处很小
anon_mkdir_write_enable=YES

# 允许匿名用户删除/重命名文件等操作
#anon_other_write_enable=YES

# 为 YES 则进入目录时显示此目录下由 message_file 选项指定的文本文件(默认为 .message)的内容
dirmessage_enable=YES

# 使用上传/下载日志,日志文件默认为 /var/log/vsftpd.log,可以通过 xferlog_file选项修改
xferlog_enable=YES

# 使用 port 模式连接,并启用 20 端口
connect_from_port_20=YES

# 改变用户上传文件的所有者
#chown_uploads=YES
#chown_username=whoever
#xferlog_file=/var/log/vsftpd.log

# 日志使用标准 xferlog 格式
#xferlog_std_format=YES

# 用户登陆后 idle 时间,超过设置超则被踢出服务器
#idle_session_timeout=600

# login 时的欢迎信息
ftpd_banner=Welcome to feifei FTP service.

#deny_email_enable=YES
#banned_email_file=/etc/vsftpd.banned_emails

# 若为 NO,则记录在 chroot_list_file 选项所指定的文件(默认是/etc/vsftpd.chroot_list)中的用户将被
# chroot 在登录后所在目录中,无法离开。如果为 YES,则所记录的用户将不被 chroot。
chroot_local_user=YES

# 设置为 YES 则下面的控制有效
#chroot_list_enable=YES
#chroot_list_file=/etc/vsftpd.chroot_list

#ls_recurse_enable=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/certs/ssl-cert-snakeoil.pem
rsa_private_key_file=/etc/ssl/private/ssl-cert-snakeoil.key

local_root=/srv/ftp\


对了,更改配置后不要忘了重启ftp服务   \

代码:

sudo /etc/init.d/vsftpd restart\


此外还有开启关闭服务的命令\

代码:

sudo /etc/init.d/vsftpd start
sudo /etc/init.d/vsftpd stop

这样,就可以使用电脑的IP地址登陆这个ftp服务器了。

 

vsftpd我用了比较长的一段时间,感觉非常稳定,安全性高,就推荐给大家,给大家写点有关限制方面的文章。请看下文介绍!

一、如何让vsFTP服务器限制链接数,以及每个IP最大的链接数?

应该改vsFTPd服务器的配制文件vsftpd.conf,加入下面的两行:

max_clients=数字

max_per_ip=数字

举例:我想让我的vsFTP最大支持链接数为100个,每个IP,最多能支持5个链接,所以我应该在vsftpd.conf中加上如下的两行:

max_clients=100

max_per_ip=5

改好了配制文件,不要忘记启动vsftp服务器。

二、如何限制传输速度?

anon_max_rate=数字

注:这是匿名的速度

local_max_rate=数字

注:这是vsFTP服务器上本地用户的速度

注:这个数字的单位是bit,所以我们要计算一下。比如我想让匿名用户和vsFTP上的用户都以100KB下载,所以这个数字应该是1024x100=102400

所以我们要在vsftpd.conf中加入下面的两行

anon_max_rate=102400

local_max_rate=102400

通过阅读上面的文章,我们不难看出vsftpd有许多小技巧,限制传输速度和链接点数是非常实用的功能,希望对你们有帮助!\

vi的常用命令

  1、vi的基本概念\


基本上vi可以分为三种状态:

分别是命令模式(command mode)

插入模式(Insertmode)

底行模式(last line mode)

1) 命令行模式command mode)

控制屏幕光标的移动,字符、字或行的删除,移动复制某区段及进入Insert mode下,或者到 last line mode。

2) 插入模式(Insert mode)

"i","a","o","r"
只有在Insert mode下,才可以做文字输入,按「ESC」键可回到命令行模式。

3) 底行模式(last line mode)

命令模式下按":"
3,1>:/'查找字符' n  或者 :?'查找字符' n
3,2>:set nu 显示行号
3,3>:q!(退出不保存),:wq(保存并退出)

2、vi的基本操作

a) 进入vi

# vi mynewfile.txt   

b) 切换至插入模式(Insert mode)编辑文件  

"i","a","o","r"

c) Insert 的切换

从当前插入模式切换到命令行模式按[ESC]即可

d) 退出vi及保存文件

: w filename (输入 「w filename」将文章以指定的文件名filename保存)
: wq (输入「wq」,存盘并退出vi)
: q! (输入q!, 不存盘强制退出vi)

3、命令行模式(command mode)功能键

1). 插入模式

按「i」切换进入插入模式「insert mode」,按“i”进入插入模式后是从光标当前位
置开始输入文件;

按「a」进入插入模式后,是从目前光标所在位置的下一个位置开始输入文字;

按「o」进入插入模式后,是插入新的一行,从行首开始输入文字。

2). 从插入模式切换为命令行模式

按「ESC」键。

3). 移动光标

vi可以直接用键盘上的光标来上下左右移动,但正规的vi是用小写英文字母「h」、「
j」、「k」、「l」,分别控制光标左、下、上、右移一格。

按「ctrl」+「b」:屏幕往“后”移动一页。

按「ctrl」+「f」:屏幕往“前”移动一页。

按「ctrl」+「u」:屏幕往“后”移动半页。

按「ctrl」+「d」:屏幕往“前”移动半页。

按数字「0」:移到文章的开头。

按「G」:移动到文章的最后。

按「$」:移动到光标所在行的“行尾”。

按「^」:移动到光标所在行的“行首”

按「w」:光标跳到下个字的开头

按「e」:光标跳到下个字的字尾

按「b」:光标回到上个字的开头

按「#l」:光标移到该行的第#个位置,如:5l,56l。

4). 删除文字

「x」:每按一次,删除光标所在位置的“后面”一个字符。

「#x」:例如,「6x」表示删除光标所在位置的“后面”6个字符。

「X」:大写的X,每按一次,删除光标所在位置的“前面”一个字符。

「#X」:例如,「20X」表示删除光标所在位置的“前面”20个字符。

「dd」:删除光标所在行。

「#dd」:从光标所在行开始删除#行

5). 复制

「yw」:将光标所在之处到字尾的字符复制到缓冲区中。

「#yw」:复制#个字到缓冲区

「yy」:复制光标所在行到缓冲区。

「#yy」:例如,「6yy」表示拷贝从光标所在的该行“往下数”6行文字。

「p」:将缓冲区内的字符贴到光标所在位置。注意:所有与“y”有关的复制命令都
必须与“p”配合才能完成复制与粘贴功能。

6). 替换

「r」:替换光标所在处的字符。

「R」:替换光标所到之处的字符,直到按下「ESC」键为止。

7). 回复上一次操作

「u」:如果您误执行一个命令,可以马上按下「u」,回到上一个操作。按多次“u”
可以执行多次回复。

8). 更改

「cw」:更改光标所在处的字到字尾处

「c#w」:例如,「c3w」表示更改3个字

9). 跳至指定的行

「ctrl」+「g」列出光标所在行的行号。

「#G」:例如,「15G」,表示移动光标至文章的第15行行首。

4、Last line mode下命令简介
在使用「last line mode」之前,请记住先按「ESC」键确定您已经处于「command m
ode」下后,再按「:」冒号即可进入「last line mode」。

A) 列出行号

「set nu」:输入「set nu」后,会在文件中的每一行前面列出行号。

B) 跳到文件中的某一行

「#」:「#」号表示一个数字,在冒号后输入一个数字,再按回车键就会跳到该行了,
如输入数字15,再回车,就会跳到文章的第15行。

C) 查找字符

「/关键字」:先按「/」键,再输入您想寻找的字符,如果第一次找的关键字不是您想
要的,可以一直按「n」会往后寻找到您要的关键字为止。

「?关键字」:先按「?」键,再输入您想寻找的字符,如果第一次找的关键字不是您想
要的,可以一直按「n」会往前寻找到您要的关键字为止。

D) 保存文件

「w」:在冒号输入字母「w」就可以将文件保存起来。

E) 离开vi

「q」:按「q」就是退出,如果无法离开vi,可以在「q」后跟一个「!」强制离开vi。


「qw」:一般建议离开时,搭配「w」一起使用,这样在退出的时候还可以保存文件。


5、vi命令列表
1、下表列出命令模式下的一些键的功能:

h
左移光标一个字符

l
右移光标一个字符

k
光标上移一行

j
光标下移一行

^
光标移动至行首

0
数字“0”,光标移至文章的开头

G
光标移至文章的最后

$
光标移动至行尾

Ctrl+f
向前翻屏

Ctrl+b
向后翻屏

Ctrl+d
向前翻半屏

Ctrl+u
向后翻半屏

i
在光标位置前插入字符

a
在光标所在位置的后一个字符开始增加

o
插入新的一行,从行首开始输入

ESC
从输入状态退至命令状态

x
删除光标后面的字符

#x
删除光标后的#个字符

X
(大写X),删除光标前面的字符

#X
删除光标前面的#个字符

dd
删除光标所在的行

#dd
删除从光标所在行数的#行

yw
复制光标所在位置的一个字

#yw
复制光标所在位置的#个字

yy
复制光标所在位置的一行

#yy
复制从光标所在行数的#行

p
粘贴

u
取消操作

cw
更改光标所在位置的一个字

#cw
更改光标所在位置的#个字


2、下表列出行命令模式下的一些指令
w filename
储存正在编辑的文件为filename

wq filename
储存正在编辑的文件为filename,并退出vi

q!
放弃所有修改,退出vi

set nu
显示行号

/或?
查找,在/后输入要查找的内容

n
与/或?一起使用,如果查找的内容不是想要找的关键字,按n或向后(与/联用)或向前(
与?联用)继续查找,直到找到为止。


对于第一次用vi,有几点注意要提醒一下:
1、用vi打开文件后,是处于「命令行模式(command mode)」,您要切换到「插入模式(
Insert mode)」才能够输入文字。切换方法:在「命令行模式(command mode)」下按一
下字母「i」就可以进入「插入模式(Insert mode)」,这时候你就可以开始输入文字了

2、编辑好后,需从插入模式切换为命令行模式才能对文件进行保存,切换方法:按「ESC
」键。\

3、保存并退出文件:在命令模式下输入:wq即可!(别忘了wq前面的:)\

Linux安装JDK出现“NoClassDefFoundError: /Object”的解决方案

 \

RedHat Linux上安装jdk出现了一个莫名的错误

Error occurred during initialization of VM

java/lang/NoClassDefFoundError: java/lang/Object

辛苦google了一个小时,终于找到了解决方案

首先要确认的是环境变量的设置是否正确

相信大家都是很细心的,这方面如果有错误也会很容易发现

然而还有一个隐蔽的地方也会产生上述的错误

就是lib和jre/lib文件夹中的rt和tools是否是打包后的形式

如果发现rt.pack 和 tools.pack 那么多半问题就出在这里

解决方法也很简单,只要将相应文件解压成rt.jar 和 tools.jar

可以使用bin里面的unpack200工具

如:unpack200 rt.pack rt.jar

解压后java -version应该就没有问题了~~

ps:在 SUSE   Linux上也同样可以处理这样的问题。\

ubuntu 12.04安装jdk

 \

在安装之前,系统没有任何jdk软件,也就是说在终端执行

\

  1. java -version

将会输出如下内容:

\

  1. root@haiyang-Aspire:~# java -version\

  2. 程序 'java' 已包含在下列软件包中:\

  3.  * default-jre\

  4.  * gcj-4.6-jre-headless\

  5.  * openjdk-6-jre-headless\

  6.  * gcj-4.5-jre-headless\

  7.  * openjdk-7-jre-headless\

  8. 请尝试:apt-get install <选定的软件包>

先去 Oracle下载Linux下的JDK压缩包,www.oracle.com/technetwork…,下好后直接解压。

进入在存放jdk文件夹的当前目录,将解压好的jdk1.7.0_10文件夹用最高权限复移动到/usr/lib/jvm目录里,此时即使没有jvm目录也可以执行如下命令,jvm文件夹将得到创建。

\

  1. sudo mv jdk1.7.0_10 /usr/lib/jvm/

接下来需要设置环境变量,进入当前用户名的主文件夹,修改.profile文件。注意,该文件是当前用户的配置文件,如果要对使用计算机的所有用户生效,那么需要设置的文件应该是 /etc/profile。
\

  1. sudo gedit ~/.profile

在末尾加上:

\

  1. export JAVA_HOME=/usr/lib/jvm/jdk1.7.0_10\

  2. export JRE_HOME=/usr/lib/jvm/jdk1.7.0_10/jre \

  3. export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH\

  4. \

  5. export PATH=$JAVA_HOME/bin:$PATH

然后保存关闭,此时在命令行输入java -version将会仍然显示java没有安装。此时,需要使用source更新下.profile文件:
\

  1. $ source ~/.profile

再次使用java -version命令可以看到如下输出:

\

  1. haiyang@haiyang-ubuntu:~$ java -version\

  2. java version "1.7.0_10"\

  3. Java(TM) SE Runtime Environment (build 1.7.0_10-b18)\

  4. Java HotSpot(TM) 64-Bit Server VM (build 23.6-b04, mixed mode)

到此,已经将oracle jdk配置完成。如果之前系统里面已经安装了openjdk,可以使用如下方法将默认jdk更改过来:


将系统默认的jdk修改过来
\

  1. $ sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk1.7.0_10/bin/java 300

输入sun jdk前的数字就好了
\

  1. $ sudo update-alternatives --install /usr/bin/javac javac /usr/lib/jvm/jdk1.7.0_10/bin/javac 300
  1. $ sudo update-alternatives --config java \

  2. $ sudo update-alternatives --config javac