vsftp 锁定用户目录

vsftp 安装以后给用户权限和锁定目录;

关闭SELinux:

修改/etc/selinux/config文件中的SELINUX="" 为 disabled ,然后重启。

如果不想重启系统,使用命令setenforce 0

添加用户:

useradd -d /var/www -s /sbin/nologin ftpuser

主要是修改/etc/vsftpd/vsftpd.conf如下:

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/vsftpd.chroot_list

vim chroot_list

添加锁定目录用户

Ftpuser

Upload

当然可以修改路径:

usermod –d /www/html   ftpuser

**vsftpd.user_list:该文件里的用户账户在默认情况下也不能访问FTP服务器,仅当vsftpd .conf配置文件里启用userlist_enable=NO选项时才允许访问。

/etc/vsftpd/user_list ,添加上需要阻止的本地用户,一个用户名一行 用被阻止的用户

grep -v "^#" vsftpd.conf

anonymous_enable=NO

local_enable=YES

write_enable=YES

local_umask=000

dirmessage_enable=YES

xferlog_enable=YES

connect_from_port_20=YES

xferlog_file=/var/log/xferlog

xferlog_std_format=YES

chroot_local_user=NO

chroot_list_enable=YES

chroot_list_file=/etc/vsftpd/chroot_list

listen=YES

listen_port=21

pasv_address=192.168.10.123

pasv_addr_resolve=yes

pasv_enable=YES

pasv_min_port=5000

pasv_max_port=5008

use_localtime=YES

listen_ipv6=NO

allow_writeable_chroot=YES

pam_service_name=vsftpd

userlist_enable=YES

配置相关来源网络:

登录和对匿名用户的设置

write_enable=YES               //是否对登录用户开启写权限。属全局性设置。默认NO
local_enable=YES               //是否允许本地用户登录FTP服务器。默认为NO
anonymous_enable=YES          //设置是否允许匿名用户登录FTP服务器。默认为YES
ftp_username=ftp                //定义匿名用户的账户名称,默认值为ftp。
no_anon_password=YES             //匿名用户登录时是否询问口令。设置为YES,则不询问。默 
认NO
anon_world_readable_only=YES   //匿名用户是否允许下载可阅读的文档,默认为YES。
   anon_upload_enable=YES      //是否允许匿名用户上传文件。只有在write_enable设置为
YES时,该配置项才有效。而且匿名用户对相应的目录必须有写权限。默认为NO。
anon_mkdir_write_enable=YES //是否允许匿名用户创建目录。只有在write_enable设置为    YES时有效。且匿名用户对上层目录有写入的权限。默认为NO。
anon_other_write_enable=NO    //若设置为YES,则匿名用户会被允许拥有多于
上传和建立目录的权限,还会拥有删除和更名权限。默认值为NO。

2.设置用户登录后所在的目录 
local_root=/var/ftp             
// 设置本地用户登录后所在的目录。默认配置文件中没有设置该项,此时用户登录FTP服务器后,所在的目录为该用户的主目录,对于root用户,则为/root目录。
anon_root=/var/ftp            
//设置匿名用户登录后所在的目录。若未指定,则默认为/var/ftp目录。

3.控制用户是否允许切换到上级目录 
       在默认配置下,用户可以使用“cd..”命名切换到上级目录。比如,若用户登录后所在的目录为/var/ftp,则在“ftp>”命令行 下,执行“cd..”命令后,用户将切换到其上级目录/var,若继续执行该命令,则可进入Linux系统的根目录,从而可以对整个Linux的文件系统 进行操作。

若设置了write_enable=YES,则用户还可对根目录下的文件进行改写操作,会给系统带来极大的安全隐患,因此,必须防止用户切换到Linux的根目录,相关的配置项如下:
chroot_list_enable=YES                    
// 设置是否启用chroot_list_file配置项指定的用户列表文件。设置为YES则除了列在j/etc/vsftpd/chroot_list文件中的的帐号外,所有登录的用户都可以进入ftp根目录之外的目录。默认NO
chroot_list_file=/etc/vsftpd/chroot_list         
// 用于指定用户列表文件,该文件用于控制哪些用户可以切换到FTP站点根目录的上级目录。
chroot_local_user=YES                    
// 用于指定用户列表文件中的用户,是否允许切换到上级目录。默认NO
注意:要对本地用户查看效果,需先设置local_root=/var/ftp

具体情况有以下几种:
1)当chroot_list_enable=YES,chroot_local_user=YES时,在/etc/vsftpd/chroot_list文件中列出的用户,可以切换到上级目录;未在文件中列出的用户,不能切换到站点根目录的上级目录。
2)当chroot_list_enable=YES,chroot_local_user=NO时,在/etc/vsftpd/chroot_list文件中列出的用户,不能切换到站点根目录的上级目录;未在文件中列出的用户,可以切换到上级目录。
3)当chroot_list_enable=NO,chroot_local_user=YES时,所有用户均不能切换到上级目录。
4)当chroot_list_enable=NO,chroot_local_user=NO时,所有用户均可以切换到上级目录。
5)当用户不允许切换到上级目录时,登录后FTP站点的根目录“/”是该FTP账户的主目录,即文件的系统的/var/ftp目录。

4.设置访问控制 
(1)设置允许或不允许访问的主机(见TBP14)
tcp_wrappers=YES用来设置vsftpd服务器是否与tcp wrapper相结合,进行主机的访问控制。默认设置为YES,vsftpd服务器会检查/etc/hosts.allow和/etc /hosts.deny中的设置,以决定请求连接的主机是否允许访问该FTP服务器。这两个文件可以起到简易的防火墙功能。
比如,若要仅允许192.168.168.1~192.168.168.254的用户,可以访问连接vsftpd服务器,则可在/etc/hosts.allow文件中添加以下内容:
vsftpd:192.168.168.0/255.255.255.0 :allow
all:all:deny

(2)设置允许或不允许访问的用户
对用户的访问控制由/etc/vsftpd/user_list和/etc/vsftpd/ftpusers文件来控制实现。相关配置命令如下:
userlist_enable=YES     
// 决定/etc/vsftpd/user_list文件是否启用生效。YES则生效,NO不生效。
userlist_deny=YES       
// 决定/etc/vsftpd/user_list文件中的用户是允许访问还是不允许访问。若设置为YES,则/etc/vsftpd/user_list 文件中的用户将不允许访问FTP服务器;若设置为NO,则只有vsftpd.user_list文件中的用户,才能访问FTP服务器。

5.设置访问速度 
anon_max_rate=0       
//设置匿名用户所能使用的最大传输速度,单位为b/s。若设置为0,则不受速度限制,此为默认值。
local_max_rate=0       
// 设置本地用户所能使用的最大传输速度。默认为0,不受限制。

6.定义用户配置文件 
在vsftpd服务器中,不同用户还可使用不同的配置,这要通过用户配置文件来实现。
user_config_dir=/etc/vsftpd/userconf //用于设置用户配置文件所在的目录。
设置了该配置项后,当用户登录FTP服务器时,系统就会到/etc/vsftpd/userconf目录下读取与当前用户名相同的文件,并根据文件中的配 置命令,对当前用户进行更进一步的配置。比如,利用用户配置文件,可实现对不同用户进行访问的速度进行控制,在各用户配置文件中,定义 local_max_rate配置,以决定该用户允许的访问速度。

7.与连接相关的设置 
listen=YES        
//设置vsftpd服务器是否以standalone模式运行。以standalone模式运行是一种较好的方式,此时listen必须设置为YES, 此为默认值,建议不要更改。很多与服务器运行相关的配置命令,需要此运行模式才有效。若设置为NO,则vsftpd不是以独立的服务运行,要受 xinetd服务的管理控制,功能上会受限制。

max_clients=0
//设置vsftpd允许的最大连接数,默认为0,表示不受限制。若设置为150时,则同时允许有150个连接,超出的将拒绝建立连接。只有在以standalone模式运行时才有效。

max_per_ip=0
// 设置每个IP地址允许与FTP服务器同时建立连接的数目。默认为0,不受限制。通常可对此配置进行设置,防止同一个用户建立太多的连接。只有在以standalone模式运行时才有效。

listen_address=IP地址        
//设置在指定的IP地址上侦听用户的FTP请求。若不设置,则对服务器所绑定的所有IP地址进行侦听。只有在以standalone模式运行时才有效。 对于只绑定了一个IP地址的服务器,不需要配置该项,默认情况下,配置文件中没有该配置项。若服务器同时绑定了多个IP地址,则应通过该配置项,指定在哪 个IP地址上提供FTP服务,即指定FTP服务器所使用的IP地址。
注意:设置此值前后,可以通过netstat -tnl对比端口的监听情况

accept_timeout=60            
//设置建立被动(PASV)数据连接的超时时间,单位为秒,默认值为60。
connect_timeout=60    
// PORT方式下建立数据连接的超时时间,单位为秒。
data_connection_timeout=300   
//设置建立FTP数据连接的超时时间,默认为300秒。

idle_session_timeout=600      
//设置多长时间不对FTP服务器进行任何操作,则断开该FTP连接,单位为秒,默认为600秒。即设置发呆的逾时时间,在这个时间内,若没有数据传送或指令的输入,则会强行断开连接。
pam_service_name=vsftpd     
//设置在PAM所使用的名称,默认值为vsftpd。

setproctitle_enable=NO|YES   
//设置每个与FTP服务器的连接,是否以不同的进程表现出来,默认值为NO,此时只有一个名为vsftpd的进程。若设置为YES,则每个连接都会有一个vsftpd进程,使用“ps -ef|grep ftp”命令可查看到详细的FTP连接信息。安全起见,建议关闭。

vsftp用户锁定目录折腾好久,只对自己做一个小笔记而已。

原文地址:http://blog.51cto.com/xpu2001/2070591

时间: 2024-10-13 04:46:41

vsftp 锁定用户目录的相关文章

ubuntu 14.04 下FTP服务器的搭建--锁定用户目录,解决vsftpd: refusing to run with writable root inside chroot()

FTP服务器的搭建,我要实现的需求是: 不允许匿名访问,因为我的机器不想让谁都能登录上来,随便获取文件, 需要锁定一个目录,因为在家里,我需要给媳妇下载一些电影 韩剧之类的东西,媳妇会来我机器下载,但是我不想让他随意操作我的东西. 万一删除我的配置文件,我就惨了(吐槽一下韩剧:媳妇问我,你都没看过韩剧怎么知道它不好看呢,我说:我没吃过屎 但是知道它一定不好吃!) 另外,需要本机也能访问,因为我要做一些关于FTP的测试.  不单独建立FTP用户,FTP也使用ubuntu桌面的用户进行登录和操作,

Linux下创建ftp用户并锁定用户目录

linux上创建ftp用户:useradd -s /sbin/nologin -G ftp -d /你的目录 -M 用户名passwd 用户 -s /sbin/nologin  禁止用户ssh登录-g 添加到哪个组-G 可添加到多个组,组名之间使用逗号隔开-d 指定用户目录 锁定根目录:1.修改vsftpd.confchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list2.创建/etc/vsftpd/chroot_list文件

创建ftp用户,锁定访问目录

linux上创建ftp用户:useradd -s /sbin/nologin -G ftp -d /你的目录 -M 用户名passwd 用户-s /sbin/nologin  禁止用户ssh登录-g 添加到哪个组-G 可添加到多个组,组名之间使用逗号隔开-d 指定用户目录 如果要锁定到根目录就要改下配置 锁定根目录:1.修改vsftpd.confchroot_list_enable=YESchroot_list_file=/etc/vsftpd/chroot_list2.创建/etc/vsftp

如何给VSFTP增加用户,只能访问指定目录

1 增加组 groupadd ftpgroup 2 修改/etc/vsftpd/vsftpd.conf 将底下三行 #chroot_list_enable=YES # (default follows) #chroot_list_file=/etc/vsftpd.chroot_list 改为 chroot_list_enable=YES # (default follows) chroot_list_file=/etc/vsftpd/chroot_list 3 增加用户 useradd -g f

mysql实现vsftp虚拟用户访问

使用MYSQL实现VSFTP虚拟用户访问 1.查看是否安装 mysql 安装包,没有就使用yum安装一下 2.查看是否安装vsftpd 软件包 如果没有就是用yum安装一下 3.查看mysql和ftp 服务是否为开机自启动如果不是就使用chkconfig 设置一下 4.登陆数据库 5.创建数据库名字vsftp 注意是后面使用分号 6.使用数据库vsftp并创建ftpuser 表 7.查看创建的ftpuser 是否成功,已经创建成功 8.插入数据名字为 yuri  和 kebo  密码为 1234

RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能

锁定用户功能在现实应用场景中得到了大量的应用,当我们需要限制某用户的登录,又不能删除这个用户时就可以使用锁定功能,如:未授权的用户尝试错误密码错误过多可以尝试的用户进行锁定,又如ATM机上取钱时密码错误输入过多也会对当前用户进行锁定等其他非常多的应用场合. RDIFramework.NET V3.2版本新增了用户锁定与解除锁定的功能,当指定用户被锁定后,就不能进行登录了,只有解除锁定后才可以登录.锁定用户与解除锁定放在了用户授权管理界面中. 锁定用户与解除锁定用户可以调用框架提供的下面两个接口处

vsftp虚拟用户登录配置详解

一.安装: 1.安装Vsftpd服务: # yum install vsftpd 2.安装DB4部件包: 这里要特别安装一个db4的包,用来支持文件数据库. # yum install db4-utils 二.系统帐户 1.建立Vsftpd服务的宿主用户: # useradd vsftpd -s /sbin/nologin 默认的Vsftpd的服务宿主用户是root,但是这不符合安全性的需要.这里建立名字为vsftpd的用户,用他来作为支持Vsftpd的服务宿主用户.由 于该用户仅用来支持Vsf

Linux下vsftp匿名用户配置

Linux下vsftp匿名用户上传和下载的配置 配置要注意三部分,请一一仔细对照: 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=YE

vsftp虚拟用户权限设置(转)

vsftp虚拟用户权限设置(转) 首先安装vsftp db-4斯蒂芬个http://hi.baidu.com/phpfool/item/d295fd5f6f960e3d33e0a981mkdir -p /opt/ftp创建用户 useradd -d /opt/ftp virtual创建虚拟用户 vi /etc/vsftp/loguser.txt格式如下用户名 admin密码    admin db_load -T -t hash -f loguser.txt vsftp_login.db 修改/