Ubuntu FTP服务器搭建,配置修改,所遇问题解决

1.安装

sudo apt-get install vsftpd
这样安装后,配置文件在 /etc 下即: /etc/vsftpd.conf
备份默认配置
sudo cp /etc/vsftpd.conf /etc/vsftpd.conf.bak
下面就是修改配置文件了,此时,我们需要明确的,就是需求,我们的需求如下:

1,一台win服务器定时(每两分钟)向一台Ubuntu服务器(本机器)发送一个文档。
2,该win机只能访问固定目录,不能全局访问
3,该win机对应用户名不能ssh登录Ubuntu服务器
4,另创建一个可以全局访问的用户
5,为Ubuntu服务器上的几个用户开通ftp权限

注意,最终解决的方法可能并非最优方法。

2.配置文件修改/etc/vsftpd.conf

  • 2.1默认配置
    官方解释
    中文参考资料
  • 2.2重点配置项
    • anonymous_enable=YES/NO
      是否允许匿名登录ftp。本项目是私有项目,故设为NO

    • write_enable=YES/NO
      是否允许写入。例如添加文件等。本项目为YES

    • local_enable=YES/NO
      是否允许本地用户登录。本项目为YES

    • local_umask=022
      默认掩码:设置用户创建的文件的默认权限。同时ftp禁止直接创建一个可执行的文件。umask码与chmod时的码互补。即若umask=022,实际权限为777-022=755。但是由于ftp又有上述的禁止条件,所以刚才的算法对文件夹适用,对于文件可以使用666-022=644。具体参考此链接 。本项目设置为022

    • chroot_local_user=YES/NO
      是否限制用户在其目录下。YES为限制,即用户只能在自己的目录下操作,无法到其他用户目录。本项目为YES

    • chroot_list_enable=YES/NO
      是否启用一个列表,这个列表由chroot_list_file=/path/chroot_list来指定。这个列表里一行一个用户名。

      • 如果此项设置为YES,即启用列表则:
        chroot_local_user=YES,那么这个列表里的用户就可以跳出目录限制而有权限到其他用户的路径。
        chroot_local_user=NO,那么这个列表里的用户就被限制在了自己的目录而无法到其他用户路径。
      • 如果此项设置为NO,则不启用列表,直接按chroot_local_user的设置来执行。

      详细参考此链接

    • allow_writeable_chroot=YES
      参考4.1

    • /etc/ftpusers
      这是一个文件,是个黑名单。里面用户不能登录ftp

    • userlist_file=/etc/vsftpd.user_list
      这也是指定了一个用户列表(一行一个)。这个列表会根据其他配置而变成白名单黑名单
      其他配置即:userlist_enable 和 userlist_deny

    • userlist_enable=YES/NO
      是否启用userlist(即userlist_file指定的列表)。

      • 当设置为YES时,这个列表的用户能不能登录取决于userlist_deny的值。
      • 当设置为NO时,除了/etc/ftpusers中的用户,其他系统用户都可以登录。

      默认(即改配置被注释或不出现在vsftpd.conf文件中时)为NO

    • userlist_deny=YES/NO
      是否把userlist设置为黑名单。YES为设置为黑名单;NO为白名单。
      注意!!此设置仅当userlist_enable=YES时才会起作用。
      默认为YES。即如果只设置userlist_enable=YES,而不设置此项,则userlist里的用户是登录不了的。

3.结果展示

登录过程
登陆成功
网页登录

4.所遇问题

  • 4.1. userlist中用户登录时报错:500 OOPS: vsftpd: refusing to run with writable root inside chroot()

解决方法见此处

If you're using vsftpd with chroot local user option and write enable like this:
write_enable=YES
chroot_local_user=YES
and you're getting following error when you log-in through ftp:
500 OOPS: vsftpd: refusing to run with writable root inside chroot()
you can fix the problem with adding following line to /etc/vsftpd.conf and restart the vsftpd service:
allow_writeable_chroot=YES

这是因为如果配置中开启了chroot来控制用户路径(chroot_local_user=YES 说明用户无法跳出自己的初始根目录而去访问他人的目录),则用户不能再具有在该用户根目录下的写的权限。所以,要添加配置项allow_writeable_chroot=YES以开启根目录(非系统根目录,而是用户登录后所在的最上级目录)下写权限。

  • 4.2. userlist中nologin用户登录时报错:530 Login incorrect.

解决方法见此处

If you are not using PAM, then vsftpd will do its own check for a valid
user shell in /etc/shells. You may need to disable this if you use an invalid
shell to disable logins other than FTP logins. Put check_shell=NO in your
/etc/vsftpd.conf.

或者

Look at check_shell in vsftpd.conf:
Note! This option only has an effect for non-PAM builds of vsftpd.
If disabled, vsftpd will not check /etc/shells for a valid user
shell for local logins.
Default: YES
You can add '/usr/sbin/nologin' to /etc/shells. Simple and easy solution.
Another one is to change vsftpd.conf/PAM configuration.
Comment out this "auth ..." line in PAM case:
$ grep shells /etc/pam.d/vsftpd
auth required pam_shells.so

原因是vsftpd配置文件的check_shell默认是开启的
当你的用户当初创建时是用的-s /bin/false or -s bin/nologin
ftp会拿这个和/etc/shells文件比对,如果不包含,则报错。所以,
你可以把check_shell设置为NO
或者把bin/nologin添加进/etc/shells来解决此问题。
又或者,找到vsftpd对应的pam文件/etc/pam.d/vsftpd,把auth required pam_shells.so这一行注释掉。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容

  • ftp 文件传输协议 跨平台 上传下载文件 vsftpd 工具:非常安全的文件传输协议;默认的命令端口21号,数据...
    柒夏锦阅读 4,025评论 1 9
  • 1 概述 工作中,需要搭建ftp服务器来实现资源的共享。本文将通过脚本实现自动化安装ftp服务器,并进行相关配置,...
    ghbsunny阅读 3,093评论 0 2
  • vsftpd.conf 部分:文件格式(5)索引 返回主要内容 名称 vsftpd.conf - vsftpd的配...
    张龙象阅读 2,273评论 0 1
  • 图片更清晰,文字在最下面 FTP是TCP/IP的一种应用,使用TCP而不是UDP,所以是可靠的,面向连接的。 FT...
    停下浮躁的心阅读 1,697评论 0 4
  • 1.测试环境: Centos 6.9虚拟主机中安装以Vsftpd安装为例 2.安装过程: a)因为使用的Cento...
    十二楼中月阅读 2,200评论 0 12