vsftpd 创建不同权限的用户

vsftpd 创建不同权限的用户


vsftpd 是一款运行于 Linux 环境的 ftp 服务器。本文将介绍配置其具备不同权限用户(管理员、只可上传、只可下载)的方法。

  • admin:可以上传、下载、重命名、删除
  • uploader:只可以上传
  • downloader:只可以下载

下文以 Ubuntu 18.04 为例。


Step 1. 安装所需的包

通过 apt 指令安装 vsftpddb-util

apt install vsftpd
apt install db-util

Step 2. 建立 vsftpd 宿主用户及文件夹

建立用户文件夹:

mkdir /home/vsftpuser

在用户文件夹下,建立 777 权限文件夹用于数据传输:

cd /home/vsftpuser
mkdir data
chmod 777 /home/vsftpuser/data

新建不可以登录的用户 vsftpuser

useradd -s /sbin/nologin -d /home/vsftpuser -M vsftpuser

修改用户密码:

passwd vsftpuser

Step 3. 建立 vsftpd 虚拟用户列表

建立文件 vim /home/vsftpd/u_list.txt(奇数行用户名,偶数行密码):

admin
adminpassword
uploader
uploaderpassword
downloader
downloaderpassword

使用 db-utils 加密用户列表文件并修改权限:

db_load -T -t hash -f /home/vsftpd/u_list.txt /home/vsftpd/u_list.db
chmod 600 /home/vsftpd/u_list.db

Step 4. 修改 pam.d/vsftpd

修改文件 vim /etc/pam.d/vsftpd

# Standard behaviour for ftpd(8).
# auth   required        pam_listfile.so item=user sense=deny file=/etc/ftpusers onerr=succeed

# Note: vsftpd handles anonymous logins on its own. Do not enable pam_ftp.so.

# Standard pam includes
# @include common-account
# @include common-session
# @include common-auth
# auth   required        pam_shells.so
auth       required     /lib/x86_64-linux-gnu/security/pam_userdb.so   db=/home/vsftpd/u_list
account    required     /lib/x86_64-linux-gnu/security/pam_userdb.so   db=/home/vsftpd/u_list

Step 5. 建立不同用户的权限配置文件

vim /home/vsftpd/conf/admin

anon_world_readable_only=NO
write_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_upload_enable=YES
local_root=/home/vsftpuser

vim /home/vsftpd/conf/downloader

anon_world_readable_only=NO
local_root=/home/vsftpuser

vim /home/vsftpd/conf/uploader

write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_world_readable_only=NO
download_enable=NO
local_root=/home/vsftpuser

Step 6. 修改 vsftpd 配置文件

vim /etc/vsftpd.conf

listen=YES
listen_ipv6=NO

anonymous_enable=NO
local_enable=YES
write_enable=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO

connect_from_port_20=YES

xferlog_enable=YES
xferlog_file=/var/log/vsftpd.log
xferlog_std_format=YES

chroot_local_user=YES

pam_service_name=vsftpd

# 虚拟用户配置
guest_enable=YES
guest_username=vsftpuser
user_config_dir=/home/vsftpd/conf

ascii_upload_enable=YES
ascii_download_enable=YES

utf8_filesystem=YES

# 启用下面六行可以让 vsftpd 工作在被动模式
# 如需要让 ftp 工作在主动模式需要注释下面六行
listen_port=21
pasv_enable=YES
pasv_min_port=8700
pasv_max_port=8900
pasv_address=101.101.101.101
pasv_addr_resolve=YES

如果使用云服务器,则需要配置开启 20/21 端口


Step 7. 重启服务以使用 vsftpd

/etc/init.d/vsftpd restart

参考链接

  • vsftpd添加用户并分配不同权限
  • FTP服务器搭建和配置

你可能感兴趣的:(配置和安装,Linux)