linux ftp 用户及目录权限设置,【linux】FTP添加用户,设置权限和目录

本文介绍了如何在Linux环境下安装配置FTP服务,特别是通过vsftpd创建新用户test2,并设置其只能访问自己的主目录,不允许访问其他上级或同级目录。涉及的配置包括vsftpd.conf的修改、用户和目录权限的设定,以及防火墙的调整。此外,还提供了如何关闭SELinux以解决可能的权限问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、目的,新建一个用户 test2,登录ftp,它只有自己的主目录权限,其他同级和上级目录没有权限

二、ftp安装、配置

yum -y install vsftpd //通过yum来安装vsftpd

chkconfig vsftpd on //设置为开机启动

vi /etc/vsftpd/vsftpd.conf #设置配置文件

配置:

anonymous_enable=YES    #设置是否允许匿名用户登录

local_enable=YES        #设置是否允许本地用户登录

local_root=/home        #设置本地用户的根目录

write_enable=YES        #是否允许用户有写权限

local_umask=022        #设置本地用户创建文件时的umask值

anon_upload_enable=YES    #设置是否允许匿名用户上传文件

anon_other_write_enable=YES    #设置匿名用户是否有修改的权限

anon_world_readable_only=YES    #当为YES时,文件的其他人必须有读的权限才允许匿名用户下载,单单所有人为ftp且有读权限是无法下载的,必须其他人也有读权限,才允许下载

download_enbale=YES    #是否允许下载

chown_upload=YES        #设置匿名用户上传文件后修改文件的所有者

chown_username=ftpuser    #与上面选项连用,表示修改后的所有者为ftpuser

ascii_upload_enable

### 如何配置FTP以授予多个用户对某个路径的访问权限 为了实现多用户FTP服务并为其分配特定路径的访问权限,可以按照以下方法完成: #### 1. 创建独立的FTP用户账户 通过`adduser`命令创建新的FTP用户,并设置其家目录为目标路径。例如: ```bash sudo adduser --home /var/ftp/user1 ftp_user1 sudo adduser --home /var/ftp/user2 ftp_user2 ``` 这一步会为每个用户指定不同的根目录[^1]。 #### 2. 设置用户密码 使用`passwd`命令分别为这些用户设定密码: ```bash sudo passwd ftp_user1 sudo passwd ftp_user2 ``` #### 3. 配置VSFTPD支持虚拟用户 如果希望更灵活地管理大量用户而不直接修改系统用户列表,则可以通过PAM(Pluggable Authentication Module)机制来启用虚拟用户功能。具体步骤如下: - 编辑 `/etc/vsftpd.conf` 文件,确保启用了以下选项: ```plaintext guest_enable=YES virtual_use_local_privs=YES pam_service_name=vsftpd_virtual user_sub_token=$USER local_root=/var/ftp/$USER chroot_local_user=YES allow_writeable_chroot=YES write_enable=YES ``` 上述配置项解释: - `guest_enable`: 开启匿名映射模式。 - `virtual_use_local_privs`: 让虚拟用户拥有与本地用户相同的权限。 - `pam_service_name`: 使用自定义 PAM 登录模块名称。 - `local_root`: 定义每个用户的根目录结构模板。 - `chroot_local_user`: 将用户锁定在其主目录下。 - `allow_writeable_chroot`: 解决某些情况下无法写入文件的问题。 - `write_enable`: 允许上传操作[^3]。 #### 4. 准备PAM认证数据库 建立一个简单的用户密码对照表用于存储虚拟用户信息。假设我们有三个用户及其对应密码分别是:`test1:testpass`, `test2:testpass`. 生成加密后的哈希值存放到文件中: ```bash echo -e "test1\npassword_for_test1" | db_load -T -t hash /etc/vsftpd/virtual_users.db echo -e "test2\npassword_for_test2" | db_load -T -t hash /etc/vsftpd/virtual_users.db chmod 600 /etc/vsftpd/virtual_users.db ``` 接着编辑PAM配置文件 `/etc/pam.d/vsftpd_virtual` ,添加下面两行内容以便正确调用刚才制作的数据源进行验证: ```plaintext auth required pam_userdb.so db=/etc/vsftpd/virtual_users crypt=hash account required pam_userdb.so db=/etc/vsftpd/virtual_users crypt=hash ``` 最后记得重启 VSFTPD 使更改生效: ```bash systemctl restart vsftpd.service ``` 对于Windows环境下的IIS FTP服务器来说,也可以借助Active Directory或者单独设立本机账号的方式来达成相似效果[^2]。 当涉及到跨平台场景比如利用Docker容器运行FTP实例时,同样能够遵循类似的逻辑去调整内部的服务参数以及挂载外部共享卷作为目标工作区[^4]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值