中文文档:
首先我查看centos版本
# cat /etc/redhat-release

1:安装vsftpd   yum install vsftpd
PS:这里顺便说下卸载方法
rpm -e vsftpd 或用 yum remove vsftpd 根据服务器安装你是用的RPM包还是YUM
2:关闭防火墙 serviceiptables stop
3: 允许21端口通行 vi/etc/sysconfig/iptables 添加两条   -A INPUT -m state –stateNEW -m tcp -p tcp –dport 21 -j ACCEPT   -A INPUT-p tcp –dport 30000:30100 -j ACCEPT
4:重启防火墙 serviceiptables restart
5:启动ftp servicevsftpd start (这时可以匿名登录ftp了)
6:配置ftp  vi/etc/vsftpd/vsftpd.conf  

修改一下内容:

anonymous_enable=NO
设定不允许匿名用户访问。

之类的软件更好的连接服务器,得让VSFTPD支持被动模式才行,上面已经开通相应端口防火墙,在最后加入
pasv_enable=YES
pasv_max_port=30100
pasv_min_port=30000
(上面的30000–30100端口号可以是其它的,在此举例)

7:添加用户

vi /etc/vsftpd/vsftpd.conf中

把用户限定到自己的目录
添加或取消如下行注释

chroot_local_user=YES  //禁锢本地用户宿主目录

chroot_list_file=/etc/vsftpd/chroot_list
在chroot_list中添加用户名就行了 一行一个用户

# useradd -d /var/www/html -g ftp -s/sbin/nologin xxx

设置用户密码
# passwd xxx

 

gpasswd  -a  ganjier  www          //将ganjier添加到www用户组

chown  -R  www:www  ganji/      //递归修改ganji目录所有者所属组为www

 

重启vsftpd
# service vsftpd restart

linux–解决登录vsftpd后无法使用dir和切换目录的方法

查看selinux是否打开ftp支持

# getsebool -a|grep ftp

开启目录查看和文件上传

# setsebool -P ftpd_disable_trans 1 或setsebool -P ftp_home_dir 1

# setsebool -P allow_ftpd_full_access1

然后重启服务器
// 那么到这里我们也算成功了。为了安全起见 之前我们将用户赋给了ftp->id50用户组 那么我们将用户所在文件夹改为所在组为ftp组
chgrp -R ftp /*
再将权限递归为775
chmod -R 775 /*

 

测试成功

补充一句 如果这个服务默认重启后关闭 需要重新开启 如果需要写入开机自启动

修改/etc/rc.local,加入/etc/rc.d/init.d/vsftpd start

FAQ:自行操作遇到的问题
执行倒数共三个命令 出现报错
setsebool:  SELinux is disabled.
这时我们查看
selinux状态 getenforce状态应该是Disabled
应为
# getenforce
Permissive

这时我们需要开启selinux
通过配置文件调整SELinux的参数

[root@www ~]# vi /etc/selinux/config

SELINUX=enforcing     <==调整 enforcing|disabled|permissive

SELINUXTYPE=targeted  <==目前仅有 targeted 与 strict

SELinux拓展延伸:(SELinux 的启动、关闭与查看)

1,并非所有的 Linux distributions 都支持 SELinux 的

目前 SELinux 支持三种模式,分别如下:

•enforcing:强制模式,代表 SELinux 运作中,且已经正确的开始限制 domain/type 了;

•permissive:宽容模式:代表 SELinux 运作中,不过仅会有警告讯息并不会实际限制 domain/type 的存取。这种模式可以运来作为 SELinux 的 debug 之用;

•disabled:关闭,SELinux 并没有实际运作。

2,查看SELinux的模式

# getenforce

Enforcing  <==就显示出目前的模式为 Enforcing

3,查看 SELinux 的政策 (Policy)

[root@master oracle]# sestatus

SELinux status:                 enabled    <==是否启动 SELinux

SELinuxfs mount:                /selinux   <==SELinux 的相关文件资料挂载点

Current mode:                   enforcing  <==目前的模式

Mode from config file:          enforcing  <==设定档指定的模式

Policy version:                 21

Policy from config file:        targeted   <==目前的政策为何?

4,通过配置文件调整SELinux的参数

[root@www ~]# vi /etc/selinux/config

SELINUX=enforcing     <==调整 enforcing|disabled|permissive

SELINUXTYPE=targeted  <==目前仅有 targeted 与 strict

5,SELinux 的启动与关闭

【重 要常识】上面是预设的政策与启动的模式!你要注意的是,如果改变了政策则需要重新开机;如果由 enforcing 或 permissive 改成 disabled ,或由 disabled 改成其他两个,那也必须要重新开机。这是因为 SELinux 是整合到核心里面去的, 你只可以在 SELinux 运作下切换成为强制 (enforcing) 或宽容 (permissive) 模式,不能够直接关闭 SELinux 的!

同时,由 SELinux 关闭 (disable) 的状态到开启的状态也需要重新开机啦!所以,如果刚刚你发现 getenforce 出现 disabled 时, 请到上述文件修改成为 enforcing 吧!

【重点】如果要启动SELinux必须满足以下两个点:

所 以,如果你要启动 SELinux 的话,请将上述的 SELINUX=enforcing 设定妥当,并且指定 SELINUXTYPE=targeted 这一个设定, 并且到 /boot/grub/menu.lst 这个文件去,看看核心有无关闭 SELinux 了呢?

[root@www ~]# vi/boot/grub/menu.lst

default=0

timeout=5

splashimage=(hd0,0)/grub/splash.xpm.gz

hiddenmenu

title CentOS (2.6.18-92.el5)

        root (hd0,0)

        kernel /vmlinuz-2.6.18-92.el5 roroot=LABEL=/1 rhgb quiet selinux=0

        initrd /initrd-2.6.18-92.el5.img

# 如果要启动 SELinux ,则不可以出现 selinux=0 的字样在 kernel 后面!

【问题】通过上面的学习我们知道,如果将启动着的SELinux改为禁用,需要重启电脑,我们不想重启电脑又不想开启SELinux该怎么办呢?

【答案】将强制模式改为宽松模!

[root@www ~]# setenforce [0|1]

选项与参数:

0 :转成 permissive 宽容模式;

1 :转成 Enforcing 强制模式

范例一:将 SELinux 在 Enforcing 与 permissive 之间切换与查看

[root@www ~]# setenforce 0

[root@www ~]# getenforce

Permissive

[root@www ~]# setenforce 1

[root@www ~]# getenforce

Enforcing

6,查看已启动程序的type设定

[root@master oracle]# ps aux-Z

LABEL                           USER       PID %CPU %MEM    VSZ  RSS TTY      STAT START   TIME COMMAND

system_u:system_r:init_t        root         1 0.0  0.4   2060  520 ?        Ss   May07   0:02 init [5

system_u:system_r:kernel_t      root         2 0.0  0.0      0    0 ?        S<   May07  0:00 [migra]

system_u:system_r:kernel_t      root        11 0.0  0.0      0    0 ?        S<   May07  0:00 [kacpi]

system_u:system_r:auditd_t      root     4022  0.0  0.4 12128   560 ?        S<sl May07   0:01 auditd

system_u:system_r:auditd_t      root     4024  0.0  0.4 13072   628 ?        S<sl May07   0:00 /sbin/a

system_u:system_r:restorecond_troot      4040  0.0 4.4  10284  5556 ?       Ss   May07  0:00 /usr/sb

说明:其实这些东西我们都不用管,都是SELinux内置的。只要学会在强制和宽松模式间转换就行了!

配置完成后一般不能链接

Linux vsftpd:500 OOPS: vsftpd: refusing to run with writable root inside chroot ()错误的解决方法

http://www.okweex.com/257.html

发表回复