首页 > 其他分享 >企业vsftp搭建,通过虚拟用户配置实现权限个性化设置需求

企业vsftp搭建,通过虚拟用户配置实现权限个性化设置需求

时间:2023-05-05 17:32:36浏览次数:37  
标签:vuser enable etc apk vsftpd vsftp 权限 data 个性化

1,安装必要的软件包

yum install -y vsftpd libdb-utils


2,设置虚拟账号信息(使用文件存储)

2.1 创建明文账户信息

# vim /etc/vsftpd/vuser_list


linghu

123456

peng

123456


2.2 创建数据库账户信息

db_load -T -t hash -f /etc/vsftpd/vuser_list /etc/vsftpd/vuser_list.db


3,设置基于虚拟用户验证的pam文件

# vim /etc/pam.d/vsftpd.vuser

auth required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_list

account required /lib64/security/pam_userdb.so db=/etc/vsftpd/vuser_list


4,创建虚拟账号的主目录

# 创建ftp用户目录

mkdir -p /data/apk



# 修改ftp用户家目录

usermod -d /data/apk ftp



# 更改用户目录权限

chmod 755 /data/apk



#更改用户目录宿主账户

chown -R ftp.root /data/apk



# 创建公共资源目录

mkdir /data/apk/public

chmod -R 777 /data/apk/public


5,修改vsftpd的主配置文件

anonymous_enable=NO # 禁止匿名用户访问FTP服务器。

local_enable=YES # 允许本地用户访问FTP服务器。

write_enable=YES # 允许用户上传文件到FTP服务器。

local_umask=022 # 本地用户上传的文件默认权限为644。

dirmessage_enable=YES # 允许FTP服务器向用户发送目录信息。

connect_from_port_20=YES # 使用20号端口进行数据连接。

listen=YES # 启用独立模式,FTP服务器以独立进程的方式运行。

guest_enable=YES # 允许虚拟用户访问FTP服务器。

guest_username=ftp # 指定虚拟用户的登录名。

xferlog_enable=YES

xferlog_std_format=YES

xferlog_file=/var/log/vsftpd.log # 启动日志文件

user_config_dir=/etc/vsftpd/vuser_conf # 指定虚拟用户的配置文件存放目录。

chroot_local_user=YES # 将会应用 chroot 到本地用户的家目录,防止用户访问系统的其它目录。

allow_writeable_chroot=YES

pam_service_name=vsftpd.vuser # 指定PAM服务名称。

userlist_enable=YES # 启用用户列表,即限制用户访问FTP服务器。

tcp_wrappers=YES # 启用TCP包过滤机制。

pasv_min_port=30000 # 指定被动模式的最小端口号。

pasv_max_port=65000 # 指定被动模式的最大端口号。

pasv_address=10.0.0.57 # 指定FTP服务器的被动模式IP地址。

local_root=/data/apk # 指定FTP服务器的根目录。


6,设置每个虚拟账号的配置文件

# 准备虚拟账户配置目录

mkdir -p /etc/vsftpd/vuser_conf



# 创建虚拟账户的个性化配置文件,每个账户的配置文件名与账户名一致,以peng为例

local_root=/data/apk # 设置登录后进入的目录

ftpd_banner=welcome to ly # 欢迎语

virtual_use_local_privs=YES

chmod_enable=YES

anon_max_rate=0 # 不限制传输速率

write_enable=no # 禁用上传

download_enable=YES # 开放下载

force_dot_files=YES


7,开放防火墙对应的权限,或者将防火墙全部关闭,修改selinux设置

firewall-cmd --add-service=ftp --permanent

firewall-cmd --reload

setsebool ftpd_full_access on -P


8,启动vsftpd服务,并加入服务自启动

systemctl start vsftpd && systemctl enable vsftpd


9,创建虚拟用户脚本

#!/bin/bash

#创建

oper=$1

ftpuser=$2

ftppasswd=$3

[ "$oper"a == "a" ] && echo "oper为空!!!" && exit 1

[ "$ftpuser"a == "a" ] && echo "ftpuser 为空!!!" && exit 1

[ "$ftppasswd"a == "a" ] && echo "passwd为空!!!" && exit 1

[ ! -d /data/apk/$oper ] && mkdir -p /data/apk/$oper/public

# 挂载公共资源目录

mount --bind /data/apk/public /data/apk/$oper/public

# 虚拟用户个性化权限配置

cat > /etc/vsftpd/vuser_conf/$ftpuser << EOF

local_root=/data/apk/${oper}

ftpd_banner=welcome to ly

virtual_use_local_privs=YES

chmod_enable=YES

anon_max_rate=0

write_enable=YES

download_enable=YES

anon_world_readable_only=NO

anon_upload_enable=YES

anon_mkdir_write_enable=YES

force_dot_files=YES

EOF


echo $ftpuser >> /etc/vsftpd/vuser_list

echo $ftppasswd >>/etc/vsftpd/vuser_list

db_load -T -t hash -f /etc/vsftpd/vuser_list /etc/vsftpd/vuser_list.db



标签:vuser,enable,etc,apk,vsftpd,vsftp,权限,data,个性化
From: https://blog.51cto.com/u_15703497/6246850

相关文章

  • Oracle 给用户赋予dblink权限,创建dblink
    1.判断用户是否具备创建databaselink的权限  一:查看当前登录用户(如果查询有返回行,则表示具备创建权限,否则,需要创建权限)1select*fromuser_sys_privswhereprivilegelikeupper('%LINK%');二:查询某个用户test(如果查询有返回行,则表示具备创建权......
  • linux 账户和权限
    目录一、用户账户管理二、组账号管理三、用户账户文件和组账户文件四、查询账户命令五、设置目录与文件权限六、设置命令与文件归属七、默认文件属性umask八、修改主机名         一、用户账户管理useradd:添加用户默认创建用户含有u......
  • Linux 批量修改目录权限,用户组和所有者;kill指定端口
     例:修改data目录以及该目录下所有文件的权限可读可写。chmod-R777data/ 例:修改data目录以及该目录下所有文件的用户组为:"shaun".chownshaundata/-R 例:修改data目录以及该目录下所有文件的所有者为:"shaun".chgrpshaundata/-R  #这里端口号均以8......
  • .Net MAUI Blazor存储访问权限仅照片和视频,没有所有文件管理权限
    参考:https://blog.csdn.net/ansondroider/article/details/1266555131、首先把MinimumTargetAndroidFramework的最低版本号指定为30或30以上2、然后找到Platforms/Android/AndroidManifest.xml把文件管理的权限加上<uses-permissionandroid:name="android.permission.READ_EXT......
  • k8s 使用 RBAC 鉴权 建立不同用户使用k8s。只有指定命名空间的权限
    k8s使用RBAC鉴权https://kubernetes.io/zh-cn/docs/reference/access-authn-authz/rbac/#创建sa账号kubectlcreatesasa-test-20230408#使用sa账号创建pod资源[root@master01sa]#catpod.yamlapiVersion:v1kind:Podmetadata:name:sa-test-pod-20230408......
  • 天气预报查询 API 提供个性化的天气服务的设计思路
    引言假设你是一个开发人员或公司,正在考虑开发一款天气应用程序,但你意识到市场上已经有很多竞争者在使用天气预报查询API来提供类似的服务,本文将一起探寻一些创新的方法来提高应用程序的竞争力。扩大竞争力的一些建议如果市面上已经有很多使用天气预报查询API的应用,您可以通......
  • 权限表设计
    常规权限管理数据结构设计,三张常规表:用户、角色、菜单,通过用户和角色的关系,角色和菜单(权限)的关系,实现用户和菜单(按钮)的访问控制权 ......
  • Debian用户获取ROOT权限
    首先登陆超级管理员账户,在Terminal命令行内输入su,“Enter”键后,输入超级管理员密码,即进入root账户输入命令apt-getinstallsudo,"Enter"键后,系统即开始安装sudo输入命令adduserjomsudo,“Enter”键将我的用户名jom添加到sudo组内,大家根据实际将自己的用......
  • AWS CLI 权限配置
    01配置秘钥环境变量秘钥Linux|MacexportAWS_ACCESS_KEY_ID=AKIAIOSFODNN7EXAMPLEexportAWS_SECRET_ACCESS_KEY=wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEYexportAWS_DEFAULT_REGION=us-west-2WindowsCMDsetxAWS_ACCESS_KEY_IDAKIAIOSFODNN7EXAMPLEsetxAWS_SECRET_ACCE......
  • vsftpd服务配置资料
    vsftpd配置详解vsftpd配置选项vsftpd.conf5vsftpd操作手册-完整版......