文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

如何使用Pureftpd进行FTP权限和磁盘配额管理

2023-06-16 21:32

关注

这篇文章主要讲解了“如何使用Pureftpd进行FTP权限和磁盘配额管理”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“如何使用Pureftpd进行FTP权限和磁盘配额管理”吧!

Pureftpd是一款快速,高质量,功能齐全的ftp服务器,最重要的是可以支持设置客户端默认编码,那如何使用Pureftpd进行FTP权限和磁盘配额管理,看下文。

我们选用Pure-ftpd作为工具.

安装

Pure-ftpd是一个成熟的ftp工具,apt-get已经有打好的包了.我们直接通过apt-get就能很方便的安装.

apt-get install pure-ftpd-mysql

配置

在数据库里边建一个库,这里用之前的hosting数据库.用以下语句创建一张表:

CREATE TABLE users(

User varchar(16) NOT NULL default '',

status enum('0','1') NOT NULL default '0',

Password varchar(64) NOT NULL default '',

Uid varchar(11) NOT NULL default '-1',

Gid varchar(11) NOT NULL default '-1',

Dir varchar(128) NOT NULL default '',

ULBandwidth smallint(5) NOT NULL default '0',

DLBandwidth smallint(5) NOT NULL default '0',

comment tinytext NOT NULL,

ipaccess varchar(15) NOT NULL default '*',

QuotaSize smallint(5) NOT NULL default '0',

QuotaFiles int(11) NOT NULL default 0,

PRIMARY KEY (User),

UNIQUE KEY User (User)

) TYPE=MyISAM;

这张表将用来存放ftp用户的相关信息.

然后我们需要修改pure-ftpd-mysql的配置文件,告诉pure-ftpd数据库的相关信息.

这里假设大家已经配置好了mysql,并有一个可用的账号.

vim /etc/pure-ftpd/db/mysql.conf

放入以下配置

#账号信息 按自己情况修改

MYSQLServer 127.0.0.1

MYSQLPort 3306

MYSQLSocket /var/run/mysqld/mysqld.sock

MYSQLUser easy

MYSQLPassword ******

MYSQLDatabase hosting

#加密方式

MYSQLCrypt md5

#取得数据的SQL语句

#用户授权

MYSQLGetPW SELECT Password FROM users WHERE User="\L"

MYSQLGetUID SELECT Uid FROM users WHERE User="\L"

MYSQLGetGID SELECT Gid FROM users WHERE User="\L"

MYSQLGetDir SELECT Dir FROM users WHERE User="\L"

#文件大小和个数限制

MySQLGetQTAFS SELECT QuotaFiles FROM users WHERE User="\L"

MySQLGetQTASZ SELECT QuotaSize FROM users WHERE User="\L"

#上行和下行带宽限制

MySQLGetBandwidthUL SELECT ULBandwidth FROM users WHERE User="\L"

MySQLGetBandwidthDL SELECT DLBandwidth FROM users WHERE User="\L"

这样pure-ftpd就知道如何从mysql里边取数据了.

为了得到上边出现的GID和UID,我们需要为ftp创建一个虚拟账号.FTP的全部用户共用这一个虚拟账号的UID和GID,而不需要为每个FTP用户创建系统用户.

groupadd -g 2001 ftpgroup

useradd -u 2001 -s /bin/false -d /bin/null -c "pureftpd user" -g ftpgroup ftpuser

我们创建了GID为2001的ftpgroup组和UID为2001的ftpuser用户.现在可以往数据表中添加数据了.QuotaSize的单位是M,目录指向我们在mod-myvhost同样的路径.

然后我们将用户锁定在他自己的目录下,不允许他通过ftp访问到别人的目录:

echo yes > /etc/pure-ftpd/conf/ChrootEveryone

当指定目录不存在时,自动创建目录

echo yes > /etc/pure-ftpd/conf/CreateHomeDir

设置完成.重启pure-ftpd.

/etc/init.d/pure-ftpd-mysql restart

全部配置都完成了.我们上传文件试试.

登陆成功,上传文件提示没权限.这是因为/data0/myapphost的属性设定造成的.将整个目录改为ftpuser的就可以了

chown -R ftpuser:ftpgroup /data0/myapphost

修改属性后,已经可以上传文件了.试试配额限制:

错误:> [2010-1-27 22:47:12] 无法写入数据 socket。Socket 错误 = #10054。

[2010-1-27 22:47:12] 550-Quota exceeded: abc.zip won't be saved

550-6 files used (120%) - authorized: 5 files

550 6974 Kbytes used (681%) - authorized: 1024 Kb

错误:> [2010-1-27 22:47:12] 请求的操作未执行(如,文件或目录未找到,不能访问)。

错误:> [2010-1-27 22:47:43] 无法写入数据 socket。Socket 错误 = #10054。

[2010-1-27 22:47:43] 550-Quota exceeded: abc.zip won't be saved

550-4 files used (80%) - authorized: 5 files

550 3954 Kbytes used (386%) - authorized: 1024 Kb

错误:> [2010-1-27 22:47:43] 请求的操作未执行(如,文件或目录未找到,不能访问)。

从错误信息可以看出,配额已经生效了.当配置修改后,已经登录的ftp用户需要重新登陆后才会生效.

感谢各位的阅读,以上就是“如何使用Pureftpd进行FTP权限和磁盘配额管理”的内容了,经过本文的学习后,相信大家对如何使用Pureftpd进行FTP权限和磁盘配额管理这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是编程网,小编将为大家推送更多相关知识点的文章,欢迎关注!

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯