我已经在 Ubuntu 16.04 上配置了 Vsftpd。一切正常,但我还需要一件事。
假设我有:
- 文件夹 /var/www/folder1/uploads
- 虚拟用户:admin1、admin2、admin3、customer
- 我使用 vsftpd_user_conf 文件夹来存储用户 local_root
我希望 adminX 用户对“folder1”和“uploads”具有读写权限,但我希望用户“customer”对“folder1”仅具有读取权限,对“uploads”具有读写权限。现在的情况是“folder1”是只读的,每个有权访问 /var/www/folder1 的用户都可以在“uploads”中写入。这可能吗?
$ ls -la /var/www/folder1
drwxrwxr-x 3 root root 4096 May 9 17:14 .
drwxr-xr-x 3 root root 4096 May 9 17:13 ..
drwxr-xr-x 2 vsftpd nogroup 4096 May 9 17:15 upload
$ vsftpd.conf:
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
local_root=/var/www
chroot_local_user=YES
allow_writeable_chroot=YES
hide_ids=YES
#virtual user settings
user_config_dir=/etc/vsftpd_user_conf
guest_enable=YES
virtual_use_local_privs=YES
pam_service_name=vsftpd
nopriv_user=vsftpd
guest_username=vsftpd
答案1
您能提供ls -la /var/www/folder1
和您的cat vsftpd.conf
吗?
也许,你可以使用这个:
user_config_dir
此强大选项允许根据每个用户覆盖手册页中指定的任何配置选项。用法很简单,最好用一个例子来说明:
如果您将 user_config_dir 设置为/etc/vsftpd_user_conf
,然后以用户身份登录chris
,则将在会话期间vsftpd
应用文件中的设置。此文件的格式在本手册页中有详细说明(请参阅以下链接)。/etc/vsftpd_user_conf/chris
请注意并非所有设置都对每个用户有效。例如,许多设置仅在用户会话开始之前有效。不会影响每个用户任何行为的设置示例包括:
- 监听地址
- banner_file
- 每个 IP 地址的最大数量
- 最大客户端数
- 转接日志文件
- ETC...
默认情况下,这些均未设置。