开发中有个需求,需要在服务器开通一个FTP账号给其他人用,让他们上传东西到我们的服务器。但是又不能让他们访问主机的其他目录,所以用到vsftpd这个东西。
我们的主机系统是RHEL 9 ,自带了 vsftpd,如果你的系统没有vsftpd,先自行安装一个,可以上网搜索如何安装。
设置步骤:
1.假设需要建立FTP登陆用户名为test。被限制路径为/home/test
2.linux建立用户 :
useradd -d /home/test test //增加用户test,并制定test用户的主目录为/home/test
passwd test //为test设置密码
3.权限设置
a.关闭用户test telnet权限,使其不能通过ssh登陆,只能通过vsftpd的调用登陆
usermod -s /sbin/nologin test
b.vsftpd调用系统验证用户登录时的bin目录
usermod -s /bin/bash test
c.usermod -d /home/test test 更改用户test的主目录为/home/test
4.限制用户只能访问/home/test,不能访问其他路径
修改/etc/vsftpd/vsftpd.conf如下:
chroot_list_enable=YES //限制访问自身目录
# (default follows)
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
保存退出
5.修改 /etc/vsftpd/vsftpd.chroot_list (将受限制的用户添加进去,每个用户名一行)
在第一行加上 test
6 重启vsFTPd服务器
/etc/init.d/vsftpd restart 或者 service vsftpd restart
7.如果需要允许用户修改密码,但是又没有telnet登录系统的权限:
usermod -s /usr/bin/passwd test //用户telnet(SSH)后将直接进入改密界面
可能出现问题
1.vsftp 500 OOPS: cannot change directory
在终端输入命令:
setsebool -P ftpd_disable_trans 1
service vsftpd restart
这样每次重启机器都可以了·
原因就在SELinux。
2.连接时出现
530 Login incorrect
这种情况多数是配置用户的问题,网上的解决方法不一
如果出现这种情况,再执行一次
usermod -s /bin/bash test 试试
目录 /bin/bash 一定要存在
相关推荐
ftp脚本,基于linux的vsftp配置,实现一键运行不同用户访问不同目录。两个用户ftp1和ftp2,密码是123456,ftp1访问/home/vsftpd,ftp2访问/opt/ftp2
anonymous_enable=yes/no 是否允许匿名用户访问 anon_upload_enable=yes/no 是否允许匿名用户上传文件 anon_mkdir_write_enable=yes/no 是否允许匿名用户创建目录 anon_other_write_enable=yes/no 匿名用户和虚拟...
local_enable=NO 关闭本地用户访问 write_enable=NO 关闭本地用户的写权限 anon_upload_enable=NO 关闭匿名用户的上传权限 anon_mkdir_write_enable=NO 关闭匿名用户创建目录和写入文件的权限 anon_other_write_...
为了能够使用ftp服务器能够使用数据库文件对用户进行身份验证,还需要修改vsftpd的PAM文件,把以前的pam中的内容注释掉,并加入以下 内容。 [root@redhat etc]# vi /etc/pam.d/vsftpd #auth required pam_list...
为了能够使用ftp服务器能够使用数据库文件对用户进行身份验证,还需要修改vsftpd的PAM文件,把以前的pam中的内容注释掉,并加入以下 内容。 [root@redhat etc]# vi /etc/pam.d/vsftpd #auth required pam_listfile....
Linux 源代码 编译安装vsftpd-2.3.4 提供开源安全可靠的ftp服务系统 文件夹内有详细教程与配套文件 Linux 源代码 编译安装vsftpd-2.3.4的配置 Linux下FTP服务器vsftp...Linux下vsFTP配置全方案(限制用户端口速度空间)
后面的内容是对 ftp 服务器进行进一步的安全控制(用户登录控制) ============================ 用户无法登陆 vim /etc/vsftpd/ftpusers 该文件中保存的用户无法进行登录操作。 登录成功之后,默认进入到用户...
Linux 中文件都有对应的所有者,虚拟用户认证指的是,创建一个或多个 FTP 用户,并将这些 FTP 用户与 Linux 本地的某个用户(如 vftpuser )进行映射,这样完成映射的用户在对 FTP 目录进行操作时等同于用户 ...
要使用用户进行上传,比如root 就必须修改etc目录下的两个文件 一个是user_list 一个是ftpusers Chkconfig 开机自启动 如:chkconfig vsftpd on Chkconfig httpd on http服务 chkconfig mysql on mysql服务 ...
FTP 服务器,在此之前我都是使用Linux的vsftpd软件包来搭建FTP服务器的,现在发现了利用pyftpdlib可以更加简单的方法即可实现FTP服务器的功能。 环境要求 Python 2.7 Windows / Linux 环境搭建 pip install ...
vsftpd:免费,开源的ftp服务器软件,支持虚拟用户、带宽限制 参考: 安装 yum -y install vsftpd 检查是否已安装 rpm -qa|grep vsftpd 配置文件默认在/etc/vsftpd/vsftpd.conf 创建虚拟用户 #创建虚拟用户要使用的...
4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符...
4.4.2 修改文件的访问权限 103 4.4.3 设置文件的访问权限 104 4.4.4 其他访问权限设置 106 第5章 文件和目录操作 107 5.1 创建文件 108 5.2 显示文件列表 108 5.2.1 使用ls命令显示文件 列表 108 5.2.2 利用通配符...