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

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压缩包,http://www.oracle.com/technetwork/java/javase/downloads/index.html,下好后直接解压。

进入在存放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. 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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值