FTP(五)创建虚拟用户
2018-02-27 11:47
176 查看
创建虚拟用户
所谓虚拟用户就是,所有虚拟用户会统一映射为一个指定的系统普通账号:访问共享位置,即为此系统普通用户的家目录,当然每个虚拟用户也可被赋予不同的访问权限,通过匿名用户的权限控制参数进行指定虚拟用户帐号的存储方式:
1,创建专门一个文件存放用户密码,但是该文件需要用hash格式。所以需要用下面的这条命令:
db_load -T -t hash -f vusers.txt vusers.db
实现步骤:
一,创建用户数据库文件
"注意该文件的格式:第一行 用户名,第二行 密码,以此类推" vim /etc/vsftpd/vusers.txt wang #用户名 wangpass #密码 mage #用户名 magepass #密码
二,修改文件格式
1,cd /etc/vsftpd/ 2,db_load -T -t hash -f vusers.txt vusers.db #为了安全修改文件权限 3,chmod 600 vusers.*
三,创建系统普通用户,和FTP访问目录
1,创建用户 useradd -d /var/ftproot -s /sbin/nologin vuser • 2,因为FTP是只能普通用户登入,所以普通用户需要对目录有读和执行权限,这样才能上传下载文件。 chmod +rx /var/ftproot/ 3,因为FTP为了安全根目录不能有写权限,因为根目录有写权限,我们登入上去是不是就能根目录给删了对吧,所以需要执行下面的命令。 chmod -w /var/ftproot/ #为了能有个上传下载的目录单独在创建一个目录。 mkdir /var/ftproot/upload #因为登入上来映射的用户都是vuser用户所以要给vuser用户对upload目录有完全控制的权限,所以可以给它ACL权限这样比较安全 setfacl -m u:vuser:rwx /var/ftproot/upload
四,创建PAM模块配置文件
因为现在的验证方式跟之前的不同了,所以需要自己创建一个PAM模块文件,然后在主配置文件中调用该文件1,创建PAM模块文件
vim /etc/pam.d/vsftpd.db 文件内容如下: auth required pam_userdb.so db=/etc/vsftpd/vusers account required pam_userdb.so db=/etc/vsftpd/vusers
2,重新指定PAM配置文件
vim /etc/vsftpd/vsftpd.conf guest_enable=YES guest_username=vuser "pam_service_name=vsftpd.db"注意该项在配置文件中已经有需要修改一下
六,SELinux设置
禁用SELinux或者 setsebool -P ftpd_full_access 1七,重启服务
如果是CentOS-7:systemctl restart vsftpd 如果是CentOS-6:service vsftpd restart
八,测试
这时候登入就可以用刚才创建的vusers.txt文件里的用户名密码了例如: [root@ansible-7 ~]# ftp 192.168.136.7 Connected to 192.168.136.7 (192.168.136.7). 220 (vsFTPd 3.0.2) Name (192.168.136.7:root): "wang" 331 Please specify the password. Password: 230 Login successful. Remote system type is UNIX. Using binary mode to transfer files. ftp> ls 227 Entering Passive Mode (192,168,136,7,149,32). 150 Here comes the directory listing. drwxrwxr-x 2 0 0 6 Feb 27 00:58 upload 226 Directory send OK.
成功了,但是有一个不足就是每个用户登入上来都是一个权限一个目录这样不太灵活,下面实现每个虚拟用户登入上来各自对应不同的权限,并且还可让他登入上来对应的目录都不同一个。
九,实现虚拟用户不同权限
1,修改FTP主配置文件vim /etc/vsftpd/vsftpd.conf #下面这个选项,作用就是让虚拟用户支持独立的权限配置文件 user_config_dir=/etc/vsftpd/vusers.d/
2,给每个虚拟用户创建一个独立的权限配置文件
#创建配置文件存放的路径 mkdir /etc/vsftpd/vusers.d/ #进入此目录 cd /etc/vsftpd/vusers.d #创建各自用户的权限配置文件 vim wang anon_upload_enable=YES #允许wang用户上传文件 anon_mkdir_write_enable=YES #允许wang用户创建文件 anon_other_write_enable=YES #允许wang用户删除文件 local_root=/wangroot #登录wang目录改变至指定wangroot目录里 注意"wangroot这个目录手工创建,并且该目录不能有w权限,可以为wang用户单独创建一个共享目录并且权限也需要改为766,让Other具有读写权限" vim li anon_other_write_enable=YES #允许li用户删除文件 local_root=/liroot #登录li目录改变至指定liroot目录里 "同样liroot目录也需要手工创建,操作跟wang账号的一样"
3,测试
一,wang账号测试 登入测试:成功 [root@ansible-7 ~]# ftp 192.168.136.7 Connected to 192.168.136.7 (192.168.136.7). 220 (vsFTPd 3.0.2) Name (192.168.136.7:root): wang 331 Please specify the password. Password: 上传文件测试:成功 ftp> !ls #查看本机文件 anaconda-ks.cfg Downloads Music Templates Desktop f1 Pictures Videos Documents Public ftp> put f1 #上传文件 local: f1 remote: f1 227 Entering Passive Mode (192,168,136,7,226,193). 150 Ok to send data. 226 Transfer complete. 1073741824 bytes sent in 3.56 secs (301946.46 Kbytes/sec) ftp> ls #查看目录列表 227 Entering Passive Mode (192,168,136,7,40,213). 150 Here comes the directory listing. -rw------- 1 1001 1001 1073741824 Feb 27 03:12 f1 创建目录测试:成功 ftp> mkdir wangdir #创建目录 257 "/upload/wangfile" created ftp> ls #查看目录列表 227 Entering Passive Mode (192,168,136,7,208,167). 150 Here comes the directory listing. -rw------- 1 1001 1001 1073741824 Feb 27 03:12 f1 drwx------ 2 1001 1001 6 Feb 27 03:12 wangdir 226 Directory send OK. "下载文件测试:失败测试" "为什么呢,因为FTP默认,被下载的文件必须所有人都有读权限,如果想什么文件都能下载的话," "需要修改主配置文件加上这一项: anon_world_readable_only=NO即可 (默认YES)" ftp> get f1 local: f1 remote: f1 227 Entering Passive Mode (192,168,136,7,74,156). 550 Failed to open file. 删除文件测试:成功 ftp> delete f1 250 Delete operation successful. ftp> ls 227 Entering Passive Mode (192,168,136,7,130,109). 150 Here comes the directory listing. drwx------ 2 1001 1001 6 Feb 27 03:12 wangfile 226 Directory send OK. 二,li账号测试 登陆测试:成功 [root@ansible-7 ~]# ftp 192.168.136.7 Connected to 192.168.136.7 (192.168.136.7). 220 (vsFTPd 3.0.2) Name (192.168.136.7:root): li 331 Please specify the password. Password: 上传文件测试:失败 ftp> put f1 local: f1 remote: f1 227 Entering Passive Mode (192,168,136,7,232,207). 550 Permission denied. 下载文件测试:成功。默认FTP就支持匿名下载所以限制不了 ftp> get f1 local: f1 remote: f1 227 Entering Passive Mode (192,168,136,7,219,59). 150 Opening BINARY mode data connection for f1 (1073741824 bytes). 226 Transfer complete. 1073741824 bytes received in 2.55 secs (421099.01 Kbytes/sec) 删除文件测试:成功 ftp> delete f1 250 Delete operation successful. ftp> ls 227 Entering Passive Mode (192,168,136,7,195,31). 150 Here comes the directory listing. drwx------ 2 1001 1001 6 Feb 27 03:34 a 创建目录测试:失败 ftp> mkdir lidir 550 Permission denied.
相关文章推荐
- win7创建FTP—用户隔离模式兼创建虚拟目录
- ftp安装和虚拟用户创建(终于搞清楚了)
- linux ftp创建虚拟用户及更改权限
- FTP服务器的安装、配置、虚拟用户的创建
- ubuntu 下用vsftpd搭建ftp服务器,并创建虚拟用户
- linux下创建FTP虚拟用户的配置过程--非系统账户登陆FTP
- 创建基于mysql的ftp虚拟用户
- FTP服务器的安装,配置,虚拟用户的创建
- Linux FTP虚拟用户创建
- FTP服务器的搭建及创建虚拟用户进行认证访问
- ftp服务----基于虚拟用户的创建
- 虚拟ftp用户的创建步骤
- ftp安装和虚拟用户创建
- LinuxFTP服务搭建及创建虚拟用户
- FTP服务器的安装、配置、虚拟用户的创建
- vsftpd + Berkeley DB 创建基于虚拟用户的FTP
- Vsftpd完全攻略(六)建立多个虚拟用户支持ftp不同访问权限
- vsFTPd建立多个虚拟用户支持ftp不同访问
- linux下创建ftp用户
- 构建FTP服务器,基于SSL,基于虚拟用户