翼度科技»论坛 云主机 LINUX 查看内容

PureFTPD虚拟用户管理详解

6

主题

6

帖子

18

积分

新手上路

Rank: 1

积分
18
PureFTPD虚拟用户管理详解


 自从 0.99.2 版本开始, pure-ftpd 就开始支持虚拟用户。虚拟用户方式十分类似 /etc/passwd ,将用户的相关信息,如口令、姓名、 uid 、目录等,存入文件。但是该文件只适用于 FTP 。
这意味着,可以为 FTP 设置虚拟用户,而不需要在系统中添加系统用户。同时,可以为这些用户单独设置配额、ratio 、带宽等限制。很多虚拟用户可以共享同一个系统用户的属性,因此建议为这些虚拟用户单独创建一个系统用户,从而方便管理。
1 .简介

首先,可以在系统中添加相应的用户和组,如 ftpuser 和 ftpgroup 。如:
  1. groupadd ftpgroup
  2. useradd -g ftpgroup -d /dev/null -s /etc ftpuser
复制代码
可以使用 ”pure-pw” 来创建虚拟用户。虚拟用户的信息以每个用户一行的方式存放在相应的文件中,其格式如下所示:
  1. :::::::::::::::::
复制代码
其中,除了帐号、口令、 uid 、 gid 和 home 目录之外,其它的可以是空值。
2 .创建一个用户

接下来,我们来创建一个新的用户。 pure-pw 的语法规范如下:
  1. pure-pw useradd  [-f ] -u  [-g ]
  2. -D/-d  [-c ]
  3. [-t ] [-T ]
  4. [-n ] [-N ]
  5. [-q ] [-Q ]
  6. [-r [/][,[/]]...]
  7. [-R [/][,[/]]...]
  8. [-i [/][,[/]]...]
  9. [-I [/][,[/]]...]
  10. [-y ]
  11. [-z -] [-m]
复制代码
假设我们要创建 joe 这样一个虚拟用户,则可以使用如下命令:
  1. pure-pw useradd joe -u ftpuser -d /home/ftpusers/joe
复制代码
其中, -u 将虚拟用户 joe 同系统用户 ftpuser 关联在一起。 -d 参数使 joe 只能访问其 home 目录。而如果想让他访问整个文件系统,可以用 -D 选项。
这时,如果 pure-ftpd 启动时加入 -j(–createhome) 选项,则不需要创建 /home/ftpuser/joe 目录。系统会在该用户第一次登陆时自动创建。
-z 选项运用用户在一天当中指定的时间段连接服务器。如 -z 0900-1800 ,则该用户只能在上午 9 点到晚上 6 点之间连接服务器。
-r 选项或 -R 选项,可以限制用户从指定 IP 和掩码连入服务器
-y ,用户同一时间的并发连接数。 ’’ 或者 0 意味着不限制
-f ,默认虚拟用户的信息会被存放在 /etc/pureftpd.passwd 文件中,通过该选项可以改变该文件的位置。
用户的口令会根据系统对加密方式的支持情况,选择一个最安全的方式进行加密。
3 .更改一个用户

同 pure-pw adduser 唯一不同的是,使用 pure-pw usermod 不是创建一个用户,而是更改已经存在用户的某些属性。
重置某些属性的语法如下:
  1. pure-pw usermod  -n '' :禁用文件配额
  2. pure-pw usermod  -N '' :禁用文件大小配额
  3. pure-pw usermod  -q '' -Q '' :禁用 ratio
  4. pure-pw usermod  -t '' :禁用下载带宽限制
  5. pure-pw usermod  -T '' :禁用上传带宽限制
  6. pure-pw usermod  <-i,-I,-r or -R> '' :禁用 IP 过滤
  7. pure-pw usermod  -z '' :禁用时间段约束
  8. pure-pw usermod  -y '' :禁用并发数限制
复制代码
4 .删除一个用户

删除一个用的命令语法是:
  1. pure-pw userdel  [-f ] [-m]
复制代码
这时,用户的信息会被从指定的 passwd 文件中删除,但是用户的 home 目录会被保留,需要手工删除。
5 .改变用户口令

更改一个用户口令的语法是:
  1. pure-pw passwd  [-f ] [-m]
复制代码
6 .显示用户信息

/etc/pureftpd.passwd 文件中记录的信息不方便用户的阅读,因此 pure-ftpd 提供了显示用户信息的命令。其语法是:
  1. pure-pw show  [-f ]
复制代码
7 .提交更改

可以通过上面提到的命令,或者以手工方式对 /etc/pureftpd.passwd 文件进行修改,从而创建、修改和删除一个虚拟用户信息。但是,只有提交这些更改时, pure-ftpd 访问才能生效。
提交更改,意味着系统会根据 /etc/pureftpd.passwd (或者指定的其它文件)来创建一个 pure-ftpd 可读的二进制格式的文件 /etc/pureftpd.pdb 。通常,通过下面的命令:
  1. pure-pw mkdb
复制代码
可以通过 /etc/pureftpd.passwd 文件自动创建 /etc/pureftpd.pbd 文件。但是,如果需要指定特定的文件,可以通过下面的方式来实现:
  1. pure-pw mkdb /etc/accounts/myaccounts.pdb -f /etc/accounts/myaccounts.txt
复制代码
这时,没有必要去重启 pure-ftpd 服务,对虚拟用户进行的更改可以更新。同时,也可以通过 -m 选项,在对/etc/pureftpd.passwd 文件进行修改的时候自动进行提交。
8 .打开对虚拟用户的支持

使得 pure-ftpd 支持虚拟用户,需要在编译的时候加入选项 –with-puredb 。这时,可以通过在启动服务是的 ’-l’ 参数来设置。如:
  1. /usr/local/sbin/pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &
复制代码
可以在后台,以自动创建虚拟用户 home 目录,用 puredb 的方式来支持虚拟用户。
9 .转换系统用户

可以通过如下命令,将系统用户转换为虚拟用户:
  1. pure-pwconvert
复制代码
如果以 root 用户运行该命令,系统用户的口令一并被转入虚拟用户配置文件。如:
  1. pure-pwconvert >> /etc/pureftpd.passwd
复制代码
10 .环境变量

默认的情况下,如果指定了环境变量 PURE_PASSWDFILE ,则虚拟用户的 passwd 文件位置由该变量的值指定。否则,默认是 /etc/pureftpd.passwd 。用样, PURE_DBFILE 环境变量用来指定 pdb 文件的位置。默认是/etc/pureftpd.pdb 。

来源:https://www.cnblogs.com/xlpc/p/17747943.html
免责声明:由于采集信息均来自互联网,如果侵犯了您的权益,请联系我们【E-Mail:cb@itdo.tech】 我们会及时删除侵权内容,谢谢合作!

举报 回复 使用道具