vsftpd 有关vsftpd的3个注意事项。。sshd[pid]: fatal: chroot into directory without nodev and either noexec or nosuid

今天帮助已好友配置vsftpd,可能是长时间不用这个东西了,竟然这里个半天才把需求折腾完,

其实需求简单,就是使用系统账户登录,不可跳转目录,限制权限,只能上次不能下载。

懵逼一:

最开始配置sftp协议的时候,配置到Match user那个地方,也就是sftp协议下限制某一个用户的目录,遇到一个奇怪的报错,登录一直日志提示:

sshd[pid]: fatal: chroot into directory without nodev and either noexec or nosuid

估计一般人都没怎么见过,也提示的不明显,其实最后我也没弄明白意思,只是在https://www.suse.com/support/kb/doc/?id=7009112

这个网址的B项目得到了启发,最终通过修改chroot的目录解决,其实总结一下就是用户的目录上次目录必须是root属主,然后呢就是

你再定义match的时候 有个chroot路径不需要写到具体的用户目录,写到上一次即可。比如用户目录是/data/ftproot/user1,那么match下

ChrootDirectory配置到/data/ftproot即可,并且ftoroot目录必须root:root否则就是这个报错。

一个完整的match备份:

Subsystem       sftp    internal-sftp   #这个不属于macth一部分,但是如果使用ssh隧道必须修改成这个。
#以下是一个match示范
Match user cdnok ChrootDirectory
/opt/ftproot/ X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp

懵逼二:

系统账户无法登录,本地登录参数已经YES,但是使用ftp://ip 登录,一直提示你输入账号密码,实际情况是ftp账号密码是对的。

解决:

经过检查配置开启了chroot_list_enable=YES选项,大家可能都知道此选项的作用是定义限制不能切换目录的用户。

可能当时脑子短路了就认为配置完,所有用户默认就是不能切换目录了。造成死活登录不了,最后才发现如果开启了

此配置项目,那么与之配套的chroot_list_file=/etc/vsftpd/chroot_list,必须启动,必须手动简历这个文件,把你的账户

放进去,这样才算完整限制用户调整目录,2个必须一起使用。

懵逼三:

细化用户权限的时候,重启后直接无法访问。

解决:

经检查是个别权限关键字的问题,我也是在网上找了一个下载专用的权限:

此处备份:(英文逗号,不能有空格)

cmds_allowed=FEAT,REST,CWD,LIST,MDTM,MKD,NLST,PASS,PASV,PORT,PWD,QUIT,RMD,SIZE,STOR,TYPE,USER,ACCT,APPE,CDUP,HELP,MODE,NOOP,REIN,STAT,STOU,STRU,SYST

原文地址:https://www.cnblogs.com/netsa/p/9289566.html