【求助】ubuntu vsftpd 虚拟用户不能上传文件

Web、Mail、Ftp、DNS、Proxy、VPN、Samba、LDAP 等基础网络服务
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

【求助】ubuntu vsftpd 虚拟用户不能上传文件

#1

帖子 gkbwin » 2013-07-16 17:25

最近为实验室搭建ftp服务器,设了两个虚拟用户admin,和oelab,admin是服务器管理员拥有上传下载,删除、创建文件夹等全部权限;oelab是普通用户,只能在/home/oelab文件夹下上传和下载文件;服务器允许匿名访问,但是只允许匿名用户下载文件。具体配置过程如下:
创建虚拟用户数据库没有问题,因为这两个虚拟用户都可以正常登录。
然后建了一个系统用户virtual,家目录/home/vsftpd
sudo useradd virtual -d /home/vsftpd -s /bin/false
sudo chown virtual:virtual /home/vsftpd
下面是虚拟用户配置文件
sudo mkdir /etc/vsftpd/vsftpd_user_conf
cd /etc/vsftpd/vsftpd_user_conf
sudo touch admin oelab
admin配置文件中内容如下:
write_enable=YES
anon_world_readable_only=No
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd
oelab配置文件中内容如下:
anon_world_readable_only=NO
write_enable=YES
anon_upload_enable=YES
local_root=/home/vsftpd/oelab
最后/etc/vsftpd.conf配置内容如下:
listen=YES
anonymous_enable=YES
anon_world_readable_only=NO
anon_root=/home/vsftpd/oelab
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
message_file=Welcome
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES
idle_session_timeout=600
data_connection_timeout=120
ascii_upload_enable=YES
ascii_download_enable=YES
ftpd_banner=Welcome to oelab FTP service.
max_clients=30
max_per_ip=5
local_max_rate=10485760
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd
pam_service_name=vsftpd.vu
guest_enable=YES
guest_username=virtual
user_config_dir=/etc/vsftpd/vsftpd_user_conf
rsa_cert_file=/etc/ssl/private/vsftpd.pem
--------------------------------------------------------------
(操作系统是ubuntu12.04)上述这些全部弄好后,admin和oelab可以正常登录,匿名用户也能浏览。但是现在我发现,当登录admin时只能下载不能上传,也不能创建和删除文件;登录oelab时也是只能下载不能上传;当登录前面两个用户上传文件时会有错误提示:
200 Switching to Binary mode
227 Enter Passive Mode
553 Could not creat file
匿名用户只能浏览不能下载,下载时会提示复制文件时发生错误。
由于之前未接触过linux,是纯菜鸟,弄了好几天了,头都大了,还是没有发现到底哪里出了问题。刚接触Linux,能力有限,跪求高手指点一下,十分感谢! :em19
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#2

帖子 gkbwin » 2013-07-16 20:22

也许您的一次指点会让我重新找到希望 :em09
上次由 gkbwin 在 2013-07-16 20:36,总共编辑 1 次。
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#3

帖子 gkbwin » 2013-07-16 20:24

各位路过的大神,麻烦耽误您几分钟的时间,看一下我的配置,给指点指点吧 :em01
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#4

帖子 gkbwin » 2013-07-17 9:44

怎么没人呢?呼叫好心人
头像
zhw2101024
帖子: 1849
注册时间: 2009-03-28 16:10
系统: Arch debian win7
联系:

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#5

帖子 zhw2101024 » 2013-07-17 10:55

http://wiki.ubuntu.org.cn/Vsftpd%E8%99% ... E%E7%BD%AE
多看wiki,什么都靠自己摸索是不行的
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#6

帖子 gkbwin » 2013-07-17 11:15

zhw2101024 写了:http://wiki.ubuntu.org.cn/Vsftpd%E8%99% ... E%E7%BD%AE
多看wiki,什么都靠自己摸索是不行的
谢谢,其实我就是按照这个官方的教程自己慢慢做的,但是现在卡在了权限设置这一块
头像
zhw2101024
帖子: 1849
注册时间: 2009-03-28 16:10
系统: Arch debian win7
联系:

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#7

帖子 zhw2101024 » 2013-07-17 13:28

write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/dbzh3
这个部分做没做?
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#8

帖子 gkbwin » 2013-07-17 13:57

zhw2101024 写了:
write_enable=YES
anon_world_readable_only=NO
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
local_root=/home/vsftpd/dbzh3
这个部分做没做?
做啦,就在admin配置文件中,您看一下,跟这个是一样的
头像
zhw2101024
帖子: 1849
注册时间: 2009-03-28 16:10
系统: Arch debian win7
联系:

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#9

帖子 zhw2101024 » 2013-07-17 15:03

检查一下vsftpd的子目录权限对不对,是不是属于virtual用户?
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#10

帖子 gkbwin » 2013-07-17 16:37

zhw2101024 写了:检查一下vsftpd的子目录权限对不对,是不是属于virtual用户?
我现在被这些搞晕掉了,我的服务器主目录是/home/vsftpd
以前我查看vsftpd子目录权限是属于root root,然后我用chown -R virtual:virtual /home/vsftpd想把子目录文件权限全部属于virtual用户
下面是我查看权限的结果:------------------------
ls -l /home
总用量 16
-rw-r--r-- 1 root root 28 7月 12 18:49 loguser.txt
-rw-r--r-- 1 root root 29 7月 12 18:02 loguser.txt~
drwxr-xr-x 23 oelab oelab 4096 7月 5 21:16 oelab
dr-xr-xr-x 3 virtual virtual 4096 7月 12 18:30 vsftpd

ls -l /home/vsftpd
总用量 4
drwxr-xr-x 3 virtual virtual 4096 7月 15 21:00 oelab

ls -l /home/vsftpd/oelab
总用量 56
drwxr-xr-x 2 virtual virtual 4096 7月 15 21:01 Movies
-rwxr-xr-x 1 virtual virtual 25394 7月 15 21:00 VSFTP配置.docx
-rwxr-xr-x 1 virtual virtual 24489 7月 15 21:00 官网配置.docx
---------------------------------------------------
但是现在oelab这个帐号就不能登录了,提示错误500 OOPS: vsftpd: refusing to run with writable root inside chroot()
上次由 gkbwin 在 2013-07-17 18:10,总共编辑 4 次。
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#11

帖子 gkbwin » 2013-07-17 17:22

zhw2101024 写了:检查一下vsftpd的子目录权限对不对,是不是属于virtual用户?
:em11 不过哈,现在我发现,我用匿名用户可以下载了,管理员admin也可以进行上传现在也可以上传下载以及其他操作了,但是oelab普通账户却不能登陆了。
我想是不是这个原因呢:
因为我把匿名用户和虚拟用户oelab的根目录也就是/home/vsftpd/oelab 设置的是完全一样的,可能是我为了让匿名用户可以下载/home/vsftpd/oelab目录下的东西, 设置的权限过高,vsftpd系统的自我保护原因,就出现:500 OOPS: vsftpd: refusing to run with writable root inside chroot()登录失败的的结果
但是我需要让匿名用户可以自由下载啊,该怎样设置呢?
上次由 gkbwin 在 2013-07-17 18:07,总共编辑 2 次。
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#12

帖子 gkbwin » 2013-07-17 17:29

zhw2101024 写了:检查一下vsftpd的子目录权限对不对,是不是属于virtual用户?
我想可能这里面有个很关键的一点是:我把虚拟用户oelab的根目录设置的是/home/vsftpd/oelab,并且我在/etc/vsftpd.conf中设置的匿名用户的根目录也是anon_root=/home/vsftpd/oelab,
这两个可能导致了冲突,vsftpd处于自我保护的原因不允许oelab登陆。
请问有没有解决办法?
头像
zhw2101024
帖子: 1849
注册时间: 2009-03-28 16:10
系统: Arch debian win7
联系:

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#13

帖子 zhw2101024 » 2013-07-17 20:31

试试这个

代码: 全选

sudo chmod 555 /home/vsftpd/oelab
gkbwin
帖子: 12
注册时间: 2013-07-16 17:17
系统: ubuntu12.04

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#14

帖子 gkbwin » 2013-07-18 17:01

zhw2101024 写了:试试这个

代码: 全选

sudo chmod 555 /home/vsftpd/oelab
这位热心肠的技术帝,我下面写了很多东西,烦请您能看一下哈,我现在感觉问题真的好多哦,不知道从何下手了。
----------------------------------------------------------------------------------------------------------------------------
我试了下,这样设置一下,oelab用户果然可以登录了。但是我想请问下是为什么呢?这样不是赋予oelab这个文件夹只有读和操作的权限吗?
还有,接下来又出现了很多问题:
1、匿名用户现在打不开admin新建的在/home/vsftpd/oelab目录下的文件夹,这样就不能下载里面的东西啦,比如我新建了一个名为Test的文件,现在提示匿名用户没有权限进入,但是在此之前建的文件夹和文件,匿名用户却可以自由下载。
2、oelab用户不能在/home/vsftpd/oelab根目录下上传文件,就是直接在/home/vsftpd/oelab目录下直接上传文件,但是却可以在该目录下的文件夹下上传文件。(我想这个可能是和刚刚给/home/vsftpd/oelab赋予的权限有关)
3、admin管理员用户也不能在/home/vsftpd/oelab下新建目录、删除文件、上传了,但是在该目录下的文件夹中却可以自由操作(但是不能重命名文件)。
下面是我查看权限的信息
ls -l /home/vsftpd
总用量 4
dr-xr-xr-x 5 virtual virtual 4096 7月 17 18:14 oelab
ls -l /home/vsftpd/oelab
总用量 96
drwx------ 2 virtual virtual 4096 7月 18 16:07 Labdata
drwxr-xr-x 2 virtual virtual 4096 7月 18 16:03 Movies
drwx------ 2 virtual virtual 4096 7月 18 16:11 Test
-rwxr-xr-x 1 virtual virtual 25394 7月 15 21:00 VSFTP配置.docx
-rwxr-xr-x 1 virtual virtual 24489 7月 15 21:00 官网配置.docx
-rw------- 1 virtual virtual 31744 7月 17 17:55 修改LINUX目录或文件的权限和所有权.doc
ls -l /home/vsftpd/oelab/Test
总用量 208
-rw------- 1 virtual virtual 90112 7月 18 16:04 IPTV.EXE
-rw------- 1 root virtual 5509 7月 18 16:50 linux修改文件夹及文件权限的命???doc
-rw------- 1 root virtual 1000 7月 18 16:52 oelab.txt
-rw------- 1 virtual virtual 64000 7月 18 16:11 vsftpd下设置多个虚拟用户使用同一个目???doc
-rw------- 1 virtual virtual 25394 7月 18 16:05 VSFTP配置.docx
-rw------- 1 virtual virtual 15360 7月 18 15:51 下载无权限文献的方法.doc
我想上述问题应该都从这些信息中看出来:
1、/home/vsftpd/oelab这个文件目录现在只有r和x的权限,也就是没有用户没有写权限了,但是有x的权限,admin管理员为什么不能新建文件呢?这个我实在想不通。
2、我今天新建的文件夹的Test,是属于virtual的,并且权限是rwx------,这样的话就只有virtual用户拥有权限,用户组和其他用户均无任何权限,为什么会是这样呢?以前建的文件夹Movies文件属性就是rwxr-xr-x,用户组和其他用户均有读和操作的权限啊,为什么今天新建的文件属性就变了呢?这就是匿名用户无法进入今天新建的文件夹的原因吧,怎么解决?
3、今天新建的文件夹Test中的文件权限都是rw-------,这样admin就不能重命名它们了,真的好麻烦啊,不晓得到底哪里出了问题了。
头像
zhw2101024
帖子: 1849
注册时间: 2009-03-28 16:10
系统: Arch debian win7
联系:

Re: 【求助】ubuntu vsftpd 虚拟用户不能上传文件

#15

帖子 zhw2101024 » 2013-07-19 9:09

vsftpd的匿名用户的家目录是不能有写权限的,这是为了保证安全性。
匿名用户和oelab要求的权限是不一样的,如果你一定坚持把这两个用户的家目录设置成一样的,那这个问题就无解。
我的建议就是把匿名用户的oelab的家目录设置成不一样的。
至于匿名用户下载的问题,可以试试在匿名用户的目录里面创建oelab目录的软链接,只给读权限。
回复