Ubuntu中vsftpd实现不同用户不同权限
来源:互联网 发布:扬州知行广告公司 编辑:程序博客网 时间:2024/06/14 17:40
原文地址:http://blog.csdn.net/gavin_dinggengjia/article/details/7538118
在vsftpd中要实现不同用户不同权限,可以利用虚拟用户来实现。
vsftpd的本地用户本身是系统的用户,除了可以登录FTP服务器外,还可以登录系统使用其他系统资源,而vsftpd的虚拟用户则是FTP服务的专用用户,虚拟用户只能访问FTP服务器资源。对于只需要通过FTP对系统有读写权限,而不需要其他系统资源的用户或情况来说,采用虚拟用户方式是很适合的。
vsftpd的虚拟用户采用单独的用户名/口令保存方式,与系统账号(passwd/shadow)分离,这大大增强了系统的安全性。vsftpd可以采用数据库文件来保存用户/口令,如hash;也可以将用户/口令保存在数据库服务器中,如MySQL等。vsftpd验证虚拟用户,则采用PAM方式。由于虚拟用户的用户名/口令被单独保存,因此在验证时,vsftpd需要用一个系统用户的身份来读取数据库文件或数据库服务器以完成验证,这就是guest用户,这正如同匿名用户也需要有一个系统用户ftp一样。当然,guest用户也可以被认为是用于映射虚拟用户。
环境:
Ubuntu 10.04
vsftpd 2.2.2
1、安装vsftpd
$sudo apt-get install vsftpd
$sudo apt-get install db4.6-utils
2、建立本地虚拟用户
#useradd -d /home/ftp virtual
指定目录为/home/ftp
3、建立虚拟用户数据库
#mkdir /etc/vsftpd
#vim /etc/vsftpd/login.txt
login.txt文件内容:
gavin
123
jimson
123
admin
admin
注:奇数行为用户名,偶数行为密码。
#db4.6_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
#chmod 600 /etc/vsftpd/vsftpd_login.db
生成数据库文件之后建议删除logins.txt。
4、建立基于vsftpd_login的PAM授权文件
#vim /etc/pam.d/vsftpd.vu
vsftpd.vu文件内容:
auth required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
account required /lib/security/pam_userdb.so db=/etc/vsftpd/vsftpd_login
5、设置用户权限
建立用来存放用户权限设置文件的目录
#mkdir /etc/vfstpd/virtual
并在该文件夹下依次建立与logins.txt对应的帐号名称相同的文件
#vim gavin
内容可以参考下面:
#[gavin]只允许下载
anon_world_readable_only=NO
local_root=/home/ftp
#[jimson]允许建立,修改,但是不允许删除
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
local_root=/home/ftp
#[admin]全部权限
anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_upload_enable=YES
anon_other_write_enable=YES
local_root=/home/ftp
6、设置vsftpd.conf
#vim /etc/vsftpd.conf
修改内容如下:
listen=YES
connect_from_port_20=YES
ftpd_banner=Welcome to virtual FTP service.
anonymous_enable=NO
local_enable=YES
write_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
chroot_local_user=YES
guest_enable=YES
guest_username=virtual
pam_service_name=vsftpd.vu
user_config_dir=/etc/vsftpd/virtual
xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
7、重新启动vsftpd
#service vsftpd restart
【可能出现的问题】
1、无法登陆
解决方法:
(1)检查ftp根目录目录是否存在;
(2)检查上面设置的各个路径是否正确;
(3)查看ftp根目录的owner属性是否是virtual
#ls -al /home
如果不是
#chown -R virtual /home/ftp
【日常维护】
(1)更新帐号
#db4.6_load -T -t hash -f /etc/vsftpd/logins.txt /etc/vsftpd/vsftpd_login.db
(2)更新/etc/vsftpd/virtual/下不同用户对应的权限
(3)重启vsftpd
#service vsftpd restart
- ubuntu中vsftpd虚拟用户实现不同用户不同权限
- Ubuntu中vsftpd实现不同用户不同权限
- Ubuntu中vsftpd实现不同用户不同权限
- vsftpd 虚拟用户 多用户不同权限管理
- 如何用vsftpd实现用户不同权限:只能下载,可上传,管理权限等
- 如何用vsftpd实现用户不同权限:只能下载,可上传,管理权限等 [仅供参考未亲测]
- 实现不同虚拟用户具有不同家目录和权限
- vsftp如何配置虚拟用户实现不同用户拥有不同权限和不同目录
- Vsftpd完全攻略(六)建立多个虚拟用户支持ftp不同访问权限【1】
- vsftpd不同用户访问不同目录的解决办法
- 实现vsftpd对不同网段分别限速
- 如何实现不同权限的用户登录后看到不同的菜单(菜单分两级)
- V8系统中不同权限的用户有不同的图标功能
- 实现不同用户登录显示不同页面
- vsFTPd建立多个虚拟用户支持ftp不同访问
- Linux下vsftpd用户共享不同地址文件夹
- wingvs不同用户设置不同的访问权限方法
- samba 配置不同用户 不同访问权限 ubuntu14.04
- 网络爬虫浅析
- Tesseract-OCR 从编译到集成
- HDU 6153 A Secret(扩展kmp模板题)
- JEESZ RestFul服务介绍
- sqlite3数据库存取和取出图片
- Ubuntu中vsftpd实现不同用户不同权限
- [LintCode 451] 两两交换链表中的节点(Python)
- Vue.js响应式原理
- 【C#学习】数组
- JavaWeb学习之JSP基本语法
- leetcode 345. Reverse Vowels(元音字母) of a String
- 一个 Yii + vue 项目(0)
- eclipse在使用junit的空指针问题
- JS将对象转换Json格式的字符串