怎么将 虚拟用户 ftp1 和 ftp2 映射为 ftp,ftp1 登 录 ftp 后的目录为/var/ftp/vdir/ftp1,可以上传下载,禁止上传后缀名为.sh 的 文件;ftp2 登录 ftp 后的目录为/var/ftp/vdir/ftp2,仅有下载权限。具体步骤
时间: 2023-06-03 15:07:48 浏览: 158
首先,需要在 /etc/passwd 文件中添加两个虚拟用户 ftp1 和 ftp2。可以使用以下命令进行添加:
sudo useradd -d /var/ftp/vdir/ftp1 -s /bin/false -g ftpusers ftp1
sudo useradd -d /var/ftp/vdir/ftp2 -s /bin/false -g ftpusers ftp2
其中,-d 参数指定了虚拟用户的家目录,-s 参数指定了登录 shell,-g 参数指定了默认的用户组。
然后需要配置 vsftpd 服务,首先在 /etc/vsftpd.conf 文件中添加以下配置:
virtual_use_local_privs=YES
guest_enable=YES
guest_username=ftp
这些配置指定了使用本地特权,启用虚拟用户,指定虚拟用户使用的用户名。注意,这里的用户名必须与 /etc/passwd 文件中指定的虚拟用户的用户名相同。
接下来,需要针对不同的虚拟用户添加配置。对于 ftp1,可以在 /etc/vsftpd.conf 文件中添加以下配置:
user_config_dir=/etc/vsftpd/user_conf
virtual_alias_maps=hash:/etc/vsftpd/virtual
然后,在 /etc/vsftpd/user_conf 目录下新建一个文件,文件名为 ftp1,内容如下:
local_root=/var/ftp/vdir/ftp1
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=022
anon_max_rate=0
hide_file={*.sh}
这些配置指定了虚拟用户的本地路径、允许上传和新建目录、禁止上传 .sh 文件、设置文件权限等等。
对于 ftp2,可以在 /etc/vsftpd.conf 文件中添加以下配置:
user_config_dir=/etc/vsftpd/user_conf
virtual_alias_maps=hash:/etc/vsftpd/virtual
然后,在 /etc/vsftpd/user_conf 目录下新建一个文件,文件名为 ftp2,内容如下:
local_root=/var/ftp/vdir/ftp2
download_enable=YES
dirlist_enable=YES
dirlist_without_login=YES
anonymous_enable=YES
anon_umask=022
anon_max_rate=0
这些配置指定了虚拟用户的本地路径、允许下载和列出目录、禁止上传文件等等。
最后,在 /etc/vsftpd/virtual 文件中添加以下内容:
ftp1 ftp
ftp2 ftp
这些配置指定了将虚拟用户 ftp1 和 ftp2 映射为 ftp。
完成以上配置后,需要重启 vsftpd 服务才能生效。可以使用以下命令重启服务:
sudo service vsftpd restart
这样就完成了虚拟用户映射的配置。
阅读全文