|
PureFTPD虚拟用户管理详解
自从 0.99.2 版本开始, pure-ftpd 就开始支持虚拟用户。虚拟用户方式十分类似 /etc/passwd ,将用户的相关信息,如口令、姓名、 uid 、目录等,存入文件。但是该文件只适用于 FTP 。
这意味着,可以为 FTP 设置虚拟用户,而不需要在系统中添加系统用户。同时,可以为这些用户单独设置配额、ratio 、带宽等限制。很多虚拟用户可以共享同一个系统用户的属性,因此建议为这些虚拟用户单独创建一个系统用户,从而方便管理。
1 .简介
首先,可以在系统中添加相应的用户和组,如 ftpuser 和 ftpgroup 。如:- groupadd ftpgroup
- useradd -g ftpgroup -d /dev/null -s /etc ftpuser
复制代码 可以使用 ”pure-pw” 来创建虚拟用户。虚拟用户的信息以每个用户一行的方式存放在相应的文件中,其格式如下所示:其中,除了帐号、口令、 uid 、 gid 和 home 目录之外,其它的可以是空值。
2 .创建一个用户
接下来,我们来创建一个新的用户。 pure-pw 的语法规范如下:- pure-pw useradd [-f ] -u [-g ]
- -D/-d [-c ]
- [-t ] [-T ]
- [-n ] [-N ]
- [-q ] [-Q ]
- [-r [/][,[/]]...]
- [-R [/][,[/]]...]
- [-i [/][,[/]]...]
- [-I [/][,[/]]...]
- [-y ]
- [-z -] [-m]
复制代码 假设我们要创建 joe 这样一个虚拟用户,则可以使用如下命令:- 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 不是创建一个用户,而是更改已经存在用户的某些属性。
重置某些属性的语法如下:- pure-pw usermod -n '' :禁用文件配额
- pure-pw usermod -N '' :禁用文件大小配额
- pure-pw usermod -q '' -Q '' :禁用 ratio
- pure-pw usermod -t '' :禁用下载带宽限制
- pure-pw usermod -T '' :禁用上传带宽限制
- pure-pw usermod <-i,-I,-r or -R> '' :禁用 IP 过滤
- pure-pw usermod -z '' :禁用时间段约束
- pure-pw usermod -y '' :禁用并发数限制
复制代码 4 .删除一个用户
删除一个用的命令语法是:- pure-pw userdel [-f ] [-m]
复制代码 这时,用户的信息会被从指定的 passwd 文件中删除,但是用户的 home 目录会被保留,需要手工删除。
5 .改变用户口令
更改一个用户口令的语法是:- pure-pw passwd [-f ] [-m]
复制代码 6 .显示用户信息
/etc/pureftpd.passwd 文件中记录的信息不方便用户的阅读,因此 pure-ftpd 提供了显示用户信息的命令。其语法是:7 .提交更改
可以通过上面提到的命令,或者以手工方式对 /etc/pureftpd.passwd 文件进行修改,从而创建、修改和删除一个虚拟用户信息。但是,只有提交这些更改时, pure-ftpd 访问才能生效。
提交更改,意味着系统会根据 /etc/pureftpd.passwd (或者指定的其它文件)来创建一个 pure-ftpd 可读的二进制格式的文件 /etc/pureftpd.pdb 。通常,通过下面的命令:可以通过 /etc/pureftpd.passwd 文件自动创建 /etc/pureftpd.pbd 文件。但是,如果需要指定特定的文件,可以通过下面的方式来实现:- pure-pw mkdb /etc/accounts/myaccounts.pdb -f /etc/accounts/myaccounts.txt
复制代码 这时,没有必要去重启 pure-ftpd 服务,对虚拟用户进行的更改可以更新。同时,也可以通过 -m 选项,在对/etc/pureftpd.passwd 文件进行修改的时候自动进行提交。
8 .打开对虚拟用户的支持
使得 pure-ftpd 支持虚拟用户,需要在编译的时候加入选项 –with-puredb 。这时,可以通过在启动服务是的 ’-l’ 参数来设置。如:- /usr/local/sbin/pure-ftpd -j -lpuredb:/etc/pureftpd.pdb &
复制代码 可以在后台,以自动创建虚拟用户 home 目录,用 puredb 的方式来支持虚拟用户。
9 .转换系统用户
可以通过如下命令,将系统用户转换为虚拟用户:如果以 root 用户运行该命令,系统用户的口令一并被转入虚拟用户配置文件。如:- 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】 我们会及时删除侵权内容,谢谢合作! |
|