【Ubuntu使用技巧】vsftpd 虚拟用户配置(Ubuntu 10.04环境下通过)

本文涉及的产品
运维安全中心(堡垒机),企业双擎版 50资产 7天
运维安全中心(堡垒机),免费版 6个月
简介:

1.首先安装vsftpd和一些工具:

sudo apt-get install vsftpd libpam-pwdfile apache2-utils

PAM是负责认证连接的,apache2-utils主要是使用其中的htpasswd命令,来管理用户认证。

2.配置PAM来负责用户认证:

sudo vim /etc/pam.d/vsftpd

将其中的所有行都注释掉,我们要使用PAM-pwdfile来进行认证连接,其中的ftpd.passwd这个文件名字和路径一会儿我们就创建:

auth required pam_pwdfile.so pwdfile /etc/ftpd.passwd 
account required pam_permit.so

3.创建用户名密码文件

sudo htpasswd -c /etc/ftpd.passwd gnuhpc

其中gnuhpc是用户名,若以后想添加多个用户则使用

sudo htpasswd /etc/ftpd.passwd gnuhpc2

4.创建FTP主目录

我们创建/home/vftp这个目录,把它的权限设置为755

sudo mkdir –m 755 /home/vftp

然后将其owner改为ftp:

sudo chown ftp:ftp /home/vftp

5.配置vsftpd

sudo vim /etc/vsftpd.conf

修改以下配置选项,保留其余选项是默认就可以

anonymous_enable=NO 
local_enable=YES 
write_enable=YES 
local_umask=022 
chroot_local_user=YES 
virtual_use_local_privs=YES 
guest_enable=YES 
user_sub_token=$USER 
local_root=/home/vftp/$USER 
hide_ids=YES

解释如下:

anonymous_enable=NO  不允许匿名 
local_enable=YES 非匿名的登录方式必须打开的选项 
write_enable=YES 设置是否可写 
local_umask=022 设置umask,022选项表示755,具体参看Linux权限表示。 
chroot_local_user=YES 限制用户的目录访问权限,即当用户登录FTP服务器后,不能访问自己目录以外的其他目录或文件 
virtual_use_local_privs=YES 虚拟用户与本地用户使用同样的权限,默认是与匿名用户权限相同 
guest_enable=YES 将所有非匿名登录都划归为guest登录,将这个虚拟用户映射到guest_username指定的本地用户 
user_sub_token=$USER 自动进入虚拟用户名对应的主目录下的子目录,比如用户gnuhpc登录就会到local_root/gnuhpc这个目录下 
local_root=/home/vftp/$USER 指定了用户登录以后直接到达的目录 
hide_ids=YES 隐藏ID

6.添加用户目录

以gnuhpc这个用户为例,我们创建/home/vftp/gnuhpc这个目录,把它的权限设置为755

sudo mkdir –m 755 /home/vftp/gnuhpc

然后将其owner改为ftp:

sudo chown ftp:ftp /home/vftp/gnuhpc

7.重启服务:

sudo service vsftpd restart

这样我们就已经设置好了一个可上传下载的虚拟用户,以后添加用户的时候只用执行第3,6步和第7步就能添加新的虚拟用户了。

附1:若你想每一个用户都有自己的主目录和配置权限那么在vsftpd.conf中设置

user_config_dir=/etc/vsftpd/user

附2:若你想限制本地用户登录ftp请创建一个用户列表文件,举例我们创建/etc/vsftpd/user_list,内容为

gnuhpc

gnuhpc2

并且在vsftpd.conf中设置:

userlist_deny=NO 
userlist_file=/etc/vsftpd/user_list 
chroot_list_enable=YES 
chroot_list_file=/etc/vsftpd/user_list

那么只有这个列表上的用户可以登录。




本文转自gnuhpc博客园博客,原文链接:http://www.cnblogs.com/gnuhpc/archive/2012/12/11/2813509.html,如需转载请自行联系原作者

相关文章
|
2月前
|
JSON Ubuntu 开发者
ubuntu 22安装lua环境&&编译lua cjson模块
通过上述步骤,可以在 Ubuntu 22.04 系统上成功安装 Lua 环境,并使用 LuaRocks 或手动编译的方式安装 lua-cjson 模块。本文详细介绍了每一步的命令和操作,确保每一步都能顺利完成,适合需要在 Ubuntu 系统上配置 Lua 开发环境的开发者参考和使用。
162 13
|
3月前
|
Ubuntu Shell 开发工具
ubuntu/debian shell 脚本自动配置 gitea git 仓库
这是一个自动配置 Gitea Git 仓库的 Shell 脚本,支持 Ubuntu 20+ 和 Debian 12+ 系统。脚本会创建必要的目录、下载并安装 Gitea,创建 Gitea 用户和服务,确保 Gitea 在系统启动时自动运行。用户可以选择从官方或小绿叶技术博客下载安装包。
108 2
|
4月前
|
网络协议 Ubuntu 网络安全
|
4月前
|
消息中间件 监控 Ubuntu
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
133 3
大数据-54 Kafka 安装配置 环境变量配置 启动服务 Ubuntu配置 ZooKeeper
|
4月前
|
资源调度
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
60 2
Ubuntu22.04静态ip配置+yarn build后显示内存超限,变异失败
|
4月前
|
Ubuntu Linux 编译器
Linux/Ubuntu下使用VS Code配置C/C++项目环境调用OpenCV
通过以上步骤,您已经成功在Ubuntu系统下的VS Code中配置了C/C++项目环境,并能够调用OpenCV库进行开发。请确保每一步都按照您的系统实际情况进行适当调整。
955 3
|
4月前
|
Ubuntu
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
本文介绍了如何在Ubuntu系统下使用Anaconda和Jupyter Notebook指定并切换不同的虚拟环境。
133 0
Ubuntu学习笔记(七):ubuntu下jupyter指定虚拟环境
|
4月前
|
Ubuntu 网络协议 Linux
liunx各大发行版(centos,rocky,ubuntu,国产麒麟kylinos)网卡配置和包管理方面的区别
liunx各大发行版(centos,rocky,ubuntu,国产麒麟kylinos)网卡配置和包管理方面的区别
174 0
|
16天前
|
弹性计算 Ubuntu Java
OS-Copilot-ubuntu镜像版本的具体测试使用(安装方式有单独注明)
作为一名个人开发者,我主要负责云资源的运维和管理。在使用OS Copilot的过程中,我遇到了一些配置问题,特别是在ECS实例中设置AccessKey时,但最终成功解决了。通过使用OS Copilot的-t/-f/管道功能,我大大提升了效率,减少了命令编写的工作量,特别是在搭建Java运行环境时效果显著。此外,| 功能帮助我快速理解文档,整体体验非常流畅,推荐给其他开发者使用。
30 6