安装vsftpd服务器的注意事项

最近做一个项目 需要在 linux服务器上安装 FTP服务,之间遇到很多问题,现在贴出来给大家分享分享了,就当再复习一下了。


安装VSFTPD

(1)解压并编译软件
# 首先,查看一下当前目录。做到心中有底。
[root@localhost vsftpd]# pwd
/root/soft/web/vsftpd
# 查看所需文件是否在当前工作目录。
[root@localhost vsftpd]# ls
ftp配置 vsftpd-2.0.3.tar.gz vsftpd-2.0.4.tar.gzvsftpd-2.0.5.tar.gz
# 将文件进行解压,命令如下。此命令会显示详细的解压信息。
[root@localhost vsftpd]# tar -zxvf vsftpd-2.0.5.tar.gz
vsftpd-2.0.5/
vsftpd-2.0.5/oneprocess.h
vsftpd-2.0.5/ipaddrparse.h
vsftpd-2.0.5/utility.c
vsftpd-2.0.5/SPEED
vsftpd-2.0.5/strlist.c
vsftpd-2.0.5/parseconf.h
vsftpd-2.0.5/features.c
vsftpd-2.0.5/INSTALL
vsftpd-2.0.5/prelogin.c
vsftpd-2.0.5/port/
vsftpd-2.0.5/port/irix_bogons.h
vsftpd-2.0.5/port/dirfd_extras.h
vsftpd-2.0.5/port/aix_bogons.h
vsftpd-2.0.5/port/porting_junk.h
vsftpd-2.0.5/port/hpux_bogons.h
vsftpd-2.0.5/port/cmsg_extras.h
vsftpd-2.0.5/port/tru64_bogons.h
vsftpd-2.0.5/port/solaris_bogons.h
vsftpd-2.0.5/REWARD
vsftpd-2.0.5/ftpdataio.h
vsftpd-2.0.5/privsock.c
vsftpd-2.0.5/FAQ
vsftpd-2.0.5/secbuf.h
vsftpd-2.0.5/oneprocess.c
vsftpd-2.0.5/tcpwrap.h
vsftpd-2.0.5/str.c
vsftpd-2.0.5/privops.h
vsftpd-2.0.5/postprivparent.h
vsftpd-2.0.5/tcpwrap.c
vsftpd-2.0.5/twoprocess.h
vsftpd-2.0.5/sysutil.h
vsftpd-2.0.5/secutil.h
vsftpd-2.0.5/ftpcodes.h
vsftpd-2.0.5/AUDIT
vsftpd-2.0.5/sysdeputil.h
vsftpd-2.0.5/README
vsftpd-2.0.5/access.h
vsftpd-2.0.5/RedHat/
vsftpd-2.0.5/RedHat/vsftpd.log
vsftpd-2.0.5/RedHat/vsftpd.pam
vsftpd-2.0.5/RedHat/README.spec
vsftpd-2.0.5/strlist.h
vsftpd-2.0.5/privsock.h
vsftpd-2.0.5/ascii.c
vsftpd-2.0.5/logging.h
vsftpd-2.0.5/postlogin.h
vsftpd-2.0.5/netstr.h
vsftpd-2.0.5/README.ssl
vsftpd-2.0.5/sysstr.h
vsftpd-2.0.5/readwrite.c
vsftpd-2.0.5/builddefs.h
vsftpd-2.0.5/readwrite.h
vsftpd-2.0.5/BUGS
vsftpd-2.0.5/LICENSE
vsftpd-2.0.5/standalone.h
vsftpd-2.0.5/Makefile
vsftpd-2.0.5/ftpcmdio.c
vsftpd-2.0.5/tunables.c
vsftpd-2.0.5/EXAMPLE/
vsftpd-2.0.5/EXAMPLE/INTERNET_SITE_NOINETD/
vsftpd-2.0.5/EXAMPLE/INTERNET_SITE_NOINETD/README
vsftpd-2.0.5/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
vsftpd-2.0.5/EXAMPLE/README
vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS_2/
vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS_2/README
vsftpd-2.0.5/EXAMPLE/PER_IP_CONFIG/
vsftpd-2.0.5/EXAMPLE/PER_IP_CONFIG/README
vsftpd-2.0.5/EXAMPLE/PER_IP_CONFIG/hosts.allow
vsftpd-2.0.5/EXAMPLE/VIRTUAL_HOSTS/
vsftpd-2.0.5/EXAMPLE/VIRTUAL_HOSTS/README
vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS/
vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS/logins.txt
vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS/README
vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS/vsftpd.pam
vsftpd-2.0.5/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
vsftpd-2.0.5/EXAMPLE/INTERNET_SITE/
vsftpd-2.0.5/EXAMPLE/INTERNET_SITE/vsftpd.xinetd
vsftpd-2.0.5/EXAMPLE/INTERNET_SITE/README
vsftpd-2.0.5/EXAMPLE/INTERNET_SITE/vsftpd.conf
vsftpd-2.0.5/main.c
vsftpd-2.0.5/parseconf.c
vsftpd-2.0.5/twoprocess.c
vsftpd-2.0.5/postlogin.c
vsftpd-2.0.5/xinetd.d/
vsftpd-2.0.5/xinetd.d/vsftpd
vsftpd-2.0.5/REFS
vsftpd-2.0.5/str.h
vsftpd-2.0.5/logging.c
vsftpd-2.0.5/standalone.c
vsftpd-2.0.5/vsf_findlibs.sh
vsftpd-2.0.5/filestr.c
vsftpd-2.0.5/secutil.c
vsftpd-2.0.5/netstr.c
vsftpd-2.0.5/postprivparent.c
vsftpd-2.0.5/dummyinc/
vsftpd-2.0.5/dummyinc/sys/
vsftpd-2.0.5/dummyinc/sys/sendfile.h
vsftpd-2.0.5/dummyinc/sys/capability.h
vsftpd-2.0.5/dummyinc/crypt.h
vsftpd-2.0.5/dummyinc/utmpx.h
vsftpd-2.0.5/dummyinc/openssl/
vsftpd-2.0.5/dummyinc/openssl/ssl.h
vsftpd-2.0.5/dummyinc/security/
vsftpd-2.0.5/dummyinc/security/pam_appl.h
vsftpd-2.0.5/dummyinc/shadow.h
vsftpd-2.0.5/TODO
vsftpd-2.0.5/sysdeputil.c
vsftpd-2.0.5/SECURITY/
vsftpd-2.0.5/SECURITY/DESIGN
vsftpd-2.0.5/SECURITY/IMPLEMENTATION
vsftpd-2.0.5/SECURITY/TRUST
vsftpd-2.0.5/SECURITY/OVERVIEW
vsftpd-2.0.5/ls.h
vsftpd-2.0.5/ssl.c
vsftpd-2.0.5/sysstr.c
vsftpd-2.0.5/banner.h
vsftpd-2.0.5/tunables.h
vsftpd-2.0.5/vsftpd.conf.5
vsftpd-2.0.5/ascii.h
vsftpd-2.0.5/vsftpver.h
vsftpd-2.0.5/session.h
vsftpd-2.0.5/utility.h
vsftpd-2.0.5/prelogin.h
vsftpd-2.0.5/vsftpd.conf
vsftpd-2.0.5/ftpcmdio.h
vsftpd-2.0.5/COPYRIGHT
vsftpd-2.0.5/vsftpd.8
vsftpd-2.0.5/hash.h
vsftpd-2.0.5/sysutil.c
vsftpd-2.0.5/access.c
vsftpd-2.0.5/TUNING
vsftpd-2.0.5/defs.h
vsftpd-2.0.5/Changelog
vsftpd-2.0.5/SIZE
vsftpd-2.0.5/ftpdataio.c
vsftpd-2.0.5/filestr.h
vsftpd-2.0.5/secbuf.c
vsftpd-2.0.5/ipaddrparse.c
vsftpd-2.0.5/banner.c
vsftpd-2.0.5/COPYING
vsftpd-2.0.5/filesize.h
vsftpd-2.0.5/ls.c
vsftpd-2.0.5/ssl.h
vsftpd-2.0.5/README.security
vsftpd-2.0.5/privops.c
vsftpd-2.0.5/hash.c
vsftpd-2.0.5/BENCHMARKS
vsftpd-2.0.5/features.h


# 解压完毕后进入vsftpd目录
[root@localhost vsftpd]# cd vsftpd-2.0.5


# 开始安装,使用make命令
[root@localhost vsftpd-2.0.5]# make
gcc -c main.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c utility.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c prelogin.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ftpcmdio.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c postlogin.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c privsock.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c tunables.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ftpdataio.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c secbuf.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ls.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c postprivparent.c -O2 -Wall -W -Wshadow -idirafterdummyinc
gcc -c logging.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c str.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c netstr.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c sysstr.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c strlist.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c banner.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c filestr.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c parseconf.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c secutil.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ascii.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c oneprocess.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c twoprocess.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c privops.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c standalone.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c hash.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c tcpwrap.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ipaddrparse.c -O2 -Wall -W -Wshadow -idirafterdummyinc
gcc -c access.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c features.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c readwrite.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c ssl.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c sysutil.c -O2 -Wall -W -Wshadow -idirafter dummyinc
gcc -c sysdeputil.c -O2 -Wall -W -Wshadow -idirafter dummyinc
sysdeputil.c: In function `do_sendfile':
sysdeputil.c:663: warning: null argument where non-null required(arg 3)
gcc -o vsftpd main.o utility.o prelogin.o ftpcmdio.o postlogin.oprivsock.o tunables.o ftpdataio.o secbuf.o ls.o postprivparent.ologging.o str.o netstr.o sysstr.o strlist.o banner.o filestr.oparseconf.o secutil.o ascii.o oneprocess.o twoprocess.o privops.ostandalone.o hash.o tcpwrap.o ipaddrparse.o access.o features.oreadwrite.o ssl.o sysutil.o sysdeputil.o -Wl,-s`./vsf_findlibs.sh`


以上操作是没有问题情况下输出的正确的信息 不过我在安装的时候出现了以下问题

报错信息:/lib/libpam.so.0: could not read symbols: File in wrong format


CENTOS 5.3 64位系统

报错信息:
   :/lib/libpam.so.0: could notread symbols: File in wrong format
   collect2: ld returned 1 exitstatus
   make: *** [vsftpd] Error1

修改方法:
   修改这个文件,将所有lib替换成lib64
   [root@crm vsftpd-2.2.2]# vivsf_findlibs.sh
   :0,$ s/\/lib\//\lib64\//g

以上改完之后再次 make  就安装完成了



下面开始安装VSFTPD的配置、执行和帮助文件。
# 进行安装的第二步,执行命令:make install过程如下。


[root@localhost vsftpd-2.0.5]# make install
if [ -x /usr/local/sbin ]; then \
 

            install -m 755 vsftpd /usr/local/sbin/vsftpd; \
else \
              install -m 755 vsftpd /usr/sbin/vsftpd; fi
if [ -x /usr/local/man ]; then \
              install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
              install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5;\
elif [ -x /usr/share/man ]; then \
              install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
              install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5;\
else \
              install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
              install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
install: 无法创建一般文件‘/usr/local/man/man8/vsftpd.8’: 没有那个文件或目录
install: 无法创建一般文件‘/usr/local/man/man5/vsftpd.conf.5’:没有那个文件或目录
make: *** [install] 错误 1
# 由上观之,产生错误,原因大致为man8与man5两个文件没有建立,建立之。
[root@localhost vsftpd-2.0.5]# mkdir /usr/local/man/man8
[root@localhost vsftpd-2.0.5]# mkdir /usr/local/man/man5
# 再次执行make install命令,详情如下。
[root@localhost vsftpd-2.0.5]# make install
if [ -x /usr/local/sbin ]; then \
              install -m 755 vsftpd /usr/local/sbin/vsftpd; \
else \
              install -m 755 vsftpd /usr/sbin/vsftpd; fi
if [ -x /usr/local/man ]; then \
              install -m 644 vsftpd.8 /usr/local/man/man8/vsftpd.8; \
              install -m 644 vsftpd.conf.5 /usr/local/man/man5/vsftpd.conf.5;\
elif [ -x /usr/share/man ]; then \
              install -m 644 vsftpd.8 /usr/share/man/man8/vsftpd.8; \
              install -m 644 vsftpd.conf.5 /usr/share/man/man5/vsftpd.conf.5;\
else \
              install -m 644 vsftpd.8 /usr/man/man8/vsftpd.8; \
              install -m 644 vsftpd.conf.5 /usr/man/man5/vsftpd.conf.5; fi
if [ -x /etc/xinetd.d ]; then \
              install -m 644 xinetd.d/vsftpd /etc/xinetd.d/vsftpd; fi
# install成功,查看/etc下是否已经有文件:vsftpd.conf
# 若是没有,从当前工作目录拷贝之。

[root@localhost vsftpd-2.0.5]# ls /etc/ |grep vsftpd.conf
[root@localhost vsftpd-2.0.5]# cp vsftpd.conf /etc/

# 编辑/etc/vsftpd.conf,在最下面加入以下这一行:listen=YES
[root@localhost vsftpd-2.0.5]# vi /etc/vsftpd.conf

# 查看/var/下是否存在ftp文件夹,若没有创建之
[root@localhost vsftpd-2.0.5]# ls /var/|grep ftp
[root@localhost vsftpd-2.0.5]# mkdir /var/ftp
# 为测试方便,在/var/ftp/下创建文件夹pub
[root@localhost vsftpd-2.0.5]# mkdir /var/ftp/pub
# 试在后台运行vsftpd
# 若是不知道命令vsftpd的路径可执行命令:which vsftpd查看。
[root@localhost vsftpd-2.0.5]# /usr/local/sbin/vsftpd&
[1] 3594
以上方法我试了一下没有用 报了下面这个错

vsftpd启动提示500 OOPS: vsftpd: not configured for standalone, must be started from inetd

我用的是standalone启动,配置如下


编辑了/etc/xinetd.d/vsftpd文件,把disable=no改成YES
编辑了/etc/vsftpd/vsftpd.conf文件在顶部加listen=YES
停止xinetd服务,
#service xinetd stop ,
再启动vsftpd:
/usr/local/sbin/vsftpd &

这样启动后就提示这个错误,

   最后我发现启动的方法错了。

正确的启动方法,请看下图:





我在网上也是找了很多资料 上面这个命令对于我是可行的
下面开始测试我的FTP服务有没有开启了

# 测试ftp服务
[root@localhost vsftpd-2.0.5]# ftp localhost
Connected to localhost.localdomain.
220 (vsFTPd 2.0.5)
530 Please login with USER and PASS.
530 Please login with USER and PASS.
KERBEROS_V4 rejected as an authentication type
# 登录时用户名为ftp;密码为空。如果你不想为空可以自行设定密码
Name (localhost:root): ftp
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.

以上信息表明登录成功了
# 使用ls查看命令可以看到pub文件夹的详细信息。
ftp> ls
227 Entering Passive Mode (127,0,0,1,250,71)
150 Here comes the directory listing.
drwxrwxrwx      20                                  4096 Sep 26 00:05 pub
226 Directory send OK.
# 执行quit命令退出。
ftp> quit
#或者用bye命令退出
ftp>bye

如果你想更改FTP的密码 就使用以下方法 如你FTP的用户名为:ftp
输入 passwd ftp



# 注:若要开机自动启动vsFTPd,请在/etc/rc.d/rc.local中加入:/usr/local/sbin/vsftpd

在安装和使用时可能会遇到的问题  以下一一列出
另可以参考:http://hi.baidu.com/mgqw/blog/item/0eb21c2f0c5b44301e30894d.html


1、输入命令启动 service vsftpd start时提示:unrecognized service
解答:
        很显然,你的vsftp应该有xinetd来管理。
运行:
#service xinetd restart


2、[root@service root]# ftp localhost
        Connected to localhost (127.0.0.1).
        500 OOPS: could not bind listening IPv4 socket
        解答:
        因为xinetd已经启动了vsftpd,而vsftpd设置成了stardalone模式,所以,先 停止xinetd服务, service xinetd stop ,然后 /usr/local/sbin/vsftpd & 启动ftp服务

        以下链接是详细对这个问题的解答

    http://zhidao.baidu.com/question/289114262.html

3、500 OOPS: vsftpd: refusing to run with writable anonymous root

这表示ftp用户的家目录的权限不对,应该改过才对;

[root@localhost ~]# more /etc/passwd |grep ftp
ftp:x:1000:1000:FTP User:/var/ftp:/sbin/nologin
我们发现ftp用户的家目录在/var/ftp,就是这个/var/ftp的权限不对所致,这个目录的权限是不能打开所有权限的;是您运行了chmod 777 /var/ftp所致;如果没有ftp用户这个家目录,当然您要自己建一个;

如下FTP用户的家目录是不能针对所有用户、用户组、其它用户组完全开放;

[root@localhost ~]# ls -ld /var/ftp
drwxrwxrwx 3 root root 4096 2005-03-23 /var/ftp
修正这个错误,应该用下面的办法;

首先把/var/ftp的权限删掉

[root@localhost ~]# chown root:root /var/ftp

然后再次设定/var/ftp为755
[root@localhost ~]# chmod 755 /var/ftp


有的弟兄可能会说,那匿名用户的可读、可下载、可上传怎么办呢?这也简单,在/var/ftp下再建一个目录,权限是777的就行了,再改一改vsftpd.conf就OK了;没有什么难的;

vsFTPd出于安全考虑,是不准让ftp用户的家目录的权限是完全没有限制的,您可以去读一下vsFTPd的文档就明白的了;否则也不能称为最安全的FTP服务器了,对不对?

这个问题在我保用的时候就出现这样的问题我搞了很长时间才真正的明白其中的原理


解决办法
在/var/ftp下建多个目录要来上传
[root@service root]# mkdir /var/ftp/incoming     建目录

[root@service root]# chgrp ftp /var/ftp/incoming/      把目录付ftp 组
[root@service root]# chmod g+w /var/ftp/incoming/      把所在的组加上写权限
[root@service root]# ls -l /var/ftp |grep incoming
drwxrwxr-x    2 root     ftp          4096 Mar 9 22:10 incoming

看到上面的incoming文件夹的权限了吧,匿名用户组是可以对incoming目录下的文件有可读可写权限所以不安全因此最好把可读隐藏了呵呵 就是如下命令:
[root@service root]# chmod g-r /var/ftp/incoming/


下面的问题解说是关于 vsftpd匿名用户上传和下载的配置问题 我当时遇到的问题是不能对  /var/ftp下的文件夹进行上传和下载

另可以参考:http://lkf009.iteye.com/blog/1328877      http://flashdream8.iteye.com/blog/1028098


vsftpd匿名用户上传和下载的配置
  看到很多朋友配置vsftpd时不能使用匿名用户上传和下载(创建目录或删除、重命名文件夹),本文主要解决vsftpd的匿名用户权限配制问题。
  配置要注意三部分,请一一仔细对照:
  1、vsftpd.conf文件的配置(vi /etc/vsftpd/vsftpd.conf)
  #允许匿名用户登录FTP
  anonymous_enable=YES
  #设置匿名用户的登录目录(如需要,需自己添加并修改)
  anon_root=/var/ftp/pub
  #打开匿名用户的上传权限
  anon_upload_enable=YES
  #打开匿名用户创建目录的权限
  anon_mkdir_write_enable=YES
  #打开匿名用户删除和重命名的权限(如需要,需自己添加)
  anon_other_write_enable=YES
  #匿名用户的掩码(如需要,需自己添加,含义:如umask是022,这时创建一个权限为666的文件,文件的实际权限为666-022=644)
  anon_umask=022
  2、ftp目录的权限设置
  默认情况下,ftp的根目录为/var/ftp,为了安全,这个目录默认不允许设置为777权限,否则ftp将无法访问。但是我们要匿名上传文件,需要“other”用户的写权限,正确的做法:
  在/var/ftp中建立一个upload(名子自己起吧)文件夹,将个文件夹权限设置为777(视具体需要自己设),在upload这个文件夹中,匿名用户可以上传文件、创建文件夹、删除文件等。
  一般至此,便实现vsftpd匿名用户的上传下载了。如果还不行,就是下面的问题。
  3、selinux的配置
  SELinux(Security-Enhanced Linux) 是美国国家安全局(NAS)对于强制访问控制的实现,是 Linux上最杰出的新安全子系统。NSA是在Linux社区的帮助下开发了一种访问控制体系,在这种访问控制体系的限制下,进程只能访问那些在他的任务中所需要文件。SELinux 默认安装在 Fedora 和 Red Hat Enterprise Linux 上,也可以作为其他发行版上容易安装的包得到。
  最简单的办法,关闭selinux
  方法1:修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。
  方法2:用命令setenforce 0,无需重启。(setenforce的格式:setenforce [ Enforcing | Permissive | 1 | 0 ])
  方法3:在lilo或者grub的启动参数中增加:selinux=0,也可以关闭selinux。
  使用getenforce查看当前selinux是否正在运行。
  不关闭selinux,就要设置selinux的ftp权限。
  1、使用getsebool -a | grep ftp查看ftp相关设置状态,我们要将allow_ftpd_anon_write设为on。
  2、使用setsebool -P 进行设置。例:setsebool -P allow_ftpd_anon_write=on。
   或使用togglesebool进行bool值取反,例如togglesebool allow_ftpd_anon_write。
  3、修改selinux安全上下文,先介绍两个命令:
   命令1、ls -Z  ps -Z  id -Z  # 分别可以看到文件,进程和用户的SELinux属性
   命令2、#chcon 改变SELinux安全上下文
   chcon -u   对象
       -r
       -t
       -R 递归
       --reference 源文件 目标文件          # 复制安全上下文
   使用方法:
    步骤1、ls -Zd /var/ftp/upload/ 通常会看到:
     drwxr-xr-x ftp root system_u:object_r:public_content_t /var/ftp/upload/
    步骤2、chcon -R -t public_content_rw_t /var/ftp/upload/
    步骤3、ls -Zd /var/ftp/upload/ 如果看到如下信息就OK了:
     drwxr-xr-x ftp root system_u:object_r:public_content_rw_t /var/ftp/upload/
  最后还是重启下selinux和vsftpd吧,不重启其实也没关系。重新登录到ftp上,应该就能解决问题了。
  另,selinux的图形界面 可由system-config-selinux命令进入。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值