vsftp 想让用户访问/home/work 并且创建文件权限为work,work用户不能ssh登陆,
时间: 2023-08-17 14:04:13 浏览: 141
vsftp使用mysql实现虚拟用户访问
好的,您可以按照以下步骤配置vsftpd,使FTP用户可以访问/home/work目录,并且在该目录下创建的文件的权限为"work",同时禁止work用户通过SSH登录系统:
1. 创建work用户,用于访问/home/work目录,并将其加入work用户组:
```
sudo useradd -m -d /home/work -s /bin/false -G work work
```
这个命令将创建一个名为"work"的用户,将其主目录设置为/home/work,将其shell设置为/bin/false(这将禁止用户登录系统),并将其加入work用户组。
2. 创建/home/work目录,并将其权限设置为777:
```
sudo mkdir /home/work
sudo chmod 777 /home/work
```
3. 编辑/etc/vsftpd.conf配置文件,添加以下参数:
```
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=002
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
allow_writeable_chroot=YES
user_sub_token=$USER
local_root=/home/$USER/work
```
其中,local_umask参数将设置文件和目录的默认权限为775,chroot_local_user参数将限制用户在其家目录以外的访问,local_root参数将设置FTP用户的根目录为/home/$USER/work,其中"$USER"将被替换为FTP用户名。
4. 重启vsftpd服务:
```
sudo systemctl restart vsftpd
```
现在,FTP用户可以使用work用户名和密码登录FTP服务器,并且其根目录将是/home/work目录。FTP用户可以在该目录下创建文件和目录,并且这些文件和目录的权限将为"work"。另外,work用户将无法通过SSH登录系统,因为其shell已被设置为/bin/false。
阅读全文