vsftp 设置本地用户只能上传和下载文件,不能删除和重命名文件
时间: 2024-05-03 10:21:10 浏览: 17
要设置本地用户只能上传和下载文件,但不能删除和重命名文件,您需要进行以下步骤:
1. 打开vsftpd配置文件:
```
sudo vi /etc/vsftpd.conf
```
2. 添加以下配置:
```
write_enable=YES
delete_failed_uploads=YES
anon_upload_enable=NO
anon_mkdir_write_enable=NO
anon_other_write_enable=NO
```
3. 保存并关闭文件。
4. 重启vsftpd服务:
```
sudo systemctl restart vsftpd
```
这样,您的本地用户就只能上传和下载文件了,不能删除和重命名文件。
相关问题
设置vsftp本地的虚拟用户,只能上传和下载文件,不能够修改和删除文件的权限
1. 安装vsftpd
在终端中输入以下命令安装vsftpd:
```
sudo apt-get update
sudo apt-get install vsftpd
```
2. 配置vsftpd
在终端中输入以下命令打开vsftpd的配置文件:
```
sudo nano /etc/vsftpd.conf
```
在文件中添加以下配置:
```
listen=YES
anonymous_enable=NO
local_enable=YES
write_enable=YES
local_umask=022
dirmessage_enable=YES
use_localtime=YES
xferlog_enable=YES
connect_from_port_20=YES
chroot_local_user=YES
secure_chroot_dir=/var/run/vsftpd/empty
pam_service_name=vsftpd
rsa_cert_file=/etc/ssl/private/vsftpd.pem
guest_enable=YES
guest_username=ftp
virtual_use_local_privs=YES
user_sub_token=$USER
local_root=/home/$USER/ftp
```
解释一下这些配置:
- `listen=YES`:允许vsftpd监听网络连接。
- `anonymous_enable=NO`:禁用匿名访问。
- `local_enable=YES`:允许本地用户访问。
- `write_enable=YES`:允许上传和下载文件。
- `local_umask=022`:设置默认的权限掩码。
- `dirmessage_enable=YES`:允许在目录中显示消息。
- `use_localtime=YES`:使用本地时间。
- `xferlog_enable=YES`:启用传输日志。
- `connect_from_port_20=YES`:使用端口20进行数据传输。
- `chroot_local_user=YES`:将用户锁定在其主目录中。
- `secure_chroot_dir=/var/run/vsftpd/empty`:将虚拟用户锁定在安全的目录中。
- `pam_service_name=vsftpd`:使用PAM进行身份验证。
- `rsa_cert_file=/etc/ssl/private/vsftpd.pem`:指定SSL证书文件。
- `guest_enable=YES`:启用虚拟用户。
- `guest_username=ftp`:指定虚拟用户的用户名。
- `virtual_use_local_privs=YES`:使用本地权限。
- `user_sub_token=$USER`:将$USER替换为虚拟用户的用户名。
- `local_root=/home/$USER/ftp`:指定虚拟用户的主目录。
3. 创建虚拟用户
在终端中输入以下命令创建一个虚拟用户:
```
sudo useradd -d /home/vsftpd/ftp -s /bin/false vsftpd
```
设置该用户的密码:
```
sudo passwd vsftpd
```
4. 创建虚拟用户的主目录
在终端中输入以下命令创建虚拟用户的主目录:
```
sudo mkdir /home/vsftpd/ftp
sudo chown nobody:nogroup /home/vsftpd/ftp
sudo chmod a-w /home/vsftpd/ftp
```
5. 创建虚拟用户的目录
在终端中输入以下命令创建虚拟用户的目录:
```
sudo mkdir /home/vsftpd/ftp/files
sudo chown vsftpd:nogroup /home/vsftpd/ftp/files
sudo chmod u+rwx,g+rx,o-rwx /home/vsftpd/ftp/files
```
6. 重启vsftpd服务
在终端中输入以下命令重启vsftpd服务:
```
sudo service vsftpd restart
```
现在,虚拟用户已经可以连接到vsftpd服务器,并且只能上传和下载文件,不能够修改和删除文件的权限。
vsftp 想让用户访问/home/work 并且创建文件权限为work,work用户不能ssh登陆,
好的,您可以按照以下步骤配置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。