指定 FTP 用户主目录与访问目录

这篇博客详细介绍了如何指定FTP用户的主目录以及访问权限。通过编辑vsftpd.conf配置文件,设置user_config_dir来读取用户配置目录,使用usermod命令更改用户主目录,并通过调整目录权限确保用户能正常上传文件。此外,还讲解了启用chroot_list及设置chroot_list_file以限制用户仅能访问其指定的主目录。


指定 FTP 用户主目录
# cd /etc/vsftpd/
# vi vsftpd.conf
// 修改
//这是添加读取用户配置目录
user_config_dir=/etc/vsftpd/userconf
# mkdir userconf   // 如果没有目录自己创建
# touch fr003    //  这里是创建 fr003 用户的配置文件 
# vi fr003   
// 添加配置指定用户目录
local_root=/home/Dev_new/fr003
# service vsftpd restart
// 注意 /home/Dev_new/fr003 目录的权限
# usermod -d /home/Dev_new/fr003  fr003    
//更改用户fr003的主目录为 /home/Dev_new/fr003


修改用户指定主目录
# usermod -d /home/Dev_new/test  fr003
# cd /etc/vsftpd/userconf
# vi fr003
// 修改主目录
local_root=/home/Dev_new/test

OK 到这里测试一下
连接到成功
但是出现不能上传 ,出现错误
553 Could not create file.
 [2017/1/14 12:32:02] Access denied.  
查看了一下目录权限,目录是root用户的其它用户没有写入的权限,修改一下
# chown fr003:fr003 /home/Dev_new/test
上传成功

指定 FTP 用户访问列表位置
# cd /etc/vsftpd/
# vi vsftpd.conf
chroot_list_enable=YES
//启动chroot列表
chroot_list_file=/etc/vsftpd/vsftpd.chroot_list
//指定列表位置
# vi /etc/vsftpd/vsftpd.chroot_list
fr003
//添加用户,一个用户一行
// 这样 fr003 就只访问它指定的主目录




### FTP用户主目录的定义 FTP用户主目录是指当FTP用户登录到FTP服务器时,默认所处的目录。对于不同类型的用户主目录有所不同。匿名用户主目录通常是`/var/ftp`,而其他普通用户主目录一般是该用户在系统中的工作目录用户登录FTP服务器后,会直接进入该主目录进行文件的上传、下载等操作。 ### FTP用户主目录的设置 #### 方法一:使用`usermod`命令 使用`usermod`命令可以更改用户主目录。例如,要将用户`username`的主目录修改为`/new/home_dir`,可以使用以下命令: ```bash usermod -d /new/home_dir -U username ``` 此方法适用于直接修改系统中用户主目录,修改后该用户登录FTP时的默认目录也会相应改变[^1]。 #### 方法二:在vsftpd配置文件中指定 对于使用vsftpd作为FTP服务器的情况,可以通过配置文件指定用户主目录。具体步骤如下: 1. 进入`/etc/vsftpd/`目录,并编辑`vsftpd.conf`文件,添加读取用户配置目录: ```bash cd /etc/vsftpd/ vi vsftpd.conf # 添加以下内容 user_config_dir=/etc/vsftpd/userconf ``` 2. 创建用户配置目录用户配置文件: ```bash mkdir userconf touch fr003 # 这里以fr003用户为例 vi fr003 # 在文件中添加配置指定用户目录 local_root=/home/Dev_new/fr003 ``` 3. 重启vsftpd服务: ```bash service vsftpd restart ``` 4. 更改用户`fr003`的主目录为`/home/Dev_new/fr003`: ```bash usermod -d /home/Dev_new/fr003 fr003 ``` 若后续需要修改用户指定主目录,同样可以通过编辑用户配置文件和使用`usermod`命令进行修改。例如,将`fr003`用户主目录修改为`/home/Dev_new/test`: ```bash usermod -d /home/Dev_new/test fr003 cd /etc/vsftpd/userconf vi fr003 # 修改主目录 local_root=/home/Dev_new/test ``` 需要注意的是,在修改目录后,要确保目录的权限设置正确,否则可能会出现无法上传文件的问题。如出现`553 Could not create file.`错误,可通过`chown`命令修改目录的所有者和所属组,例如: ```bash chown fr003:fr003 /home/Dev_new/test ``` 这样上传文件就可以成功了[^3]。 ### FTP用户主目录的作用 - **提供访问起点**:为用户登录FTP服务器后提供一个初始的访问位置,用户可以从该目录开始浏览、上传和下载文件。 - **权限管理**:可以通过设置用户主目录,结合系统的文件权限管理,控制用户对不同目录和文件的访问权限,增强系统的安全性。例如,将用户锁定在自己的主目录中,使其无法访问其他用户目录或系统的敏感目录。可以通过在`vsftpd.conf`文件中添加以下配置实现: ```plaintext chroot_local_user=YES # 设置是否锁定本地用户在自己的主目录中,(登录后无法cd到父目录或同级目录中) chroot_list_enable=YES # 设置是否将用户锁定在自己的主目录中 chroot_list_file=/etc/vsftpd/chroot_list # 定义哪些用户将会锁定在自己的主目录中 ``` 然后在`/etc/vsftpd/chroot_list`文件中添加需要锁定的用户,一个用户一行[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值