建立虚拟用户ftpuser1及ftpuser2,密码和用户相同,用户的宿主目录为/home/vsftpd,实现ftpuser1用户具有浏览目录、上传和下载文件、创建和删除目录的权限,但不能删除文件,ftpuser2用户可以下载,但不能上传和对文件进行改名
时间: 2023-05-28 12:03:20 浏览: 396
1. 添加虚拟用户ftpuser1和ftpuser2
首先,需要在系统中添加两个虚拟用户ftpuser1和ftpuser2,并将它们的宿主目录设置为/home/vsftpd。可以使用以下命令创建用户:
sudo useradd -d /home/vsftpd/ftpuser1 -s /bin/false ftpuser1
sudo useradd -d /home/vsftpd/ftpuser2 -s /bin/false ftpuser2
2. 设置用户密码
为了使用户可以使用FTP协议进行登录,需要为它们设置密码。可以使用以下命令为用户设置密码:
sudo passwd ftpuser1
sudo passwd ftpuser2
3. 安装并配置vsftpd
在Ubuntu系统中安装vsftpd服务:
sudo apt-get update
sudo apt-get install vsftpd
安装完成后,需要对vsftpd进行一些配置。编辑/etc/vsftpd.conf文件,找到以下配置行:
anonymous_enable=YES
将其改为:
anonymous_enable=NO
然后,在文件末尾添加以下内容:
# 设置虚拟用户
virtual_use_local_privs=YES
guest_enable=YES
guest_username=ftp
user_sub_token=$USER
local_root=/home/vsftpd/$USER
chroot_local_user=YES
hide_ids=YES
上述配置中,guest_enable和guest_username设置了虚拟用户的登录方式和用户名。user_sub_token和local_root则定义了虚拟用户的宿主目录。chroot_local_user=YES则表示虚拟用户无法访问系统根目录以外的文件。hide_ids=YES则隐藏了虚拟用户的UID和GID信息。
4. 重启vsftpd服务
完成上述配置后,需要重启vsftpd服务以使配置生效:
sudo service vsftpd restart
5. 设置用户权限
针对题目中的要求,需要对ftpuser1和ftpuser2的权限进行设置。
对于ftpuser1,需要赋予浏览目录、上传和下载文件、创建和删除目录的权限,但不能删除文件。可以使用以下命令为ftpuser1设置权限:
sudo usermod -a -G ftp ftpuser1
sudo chmod 775 /home/vsftpd/ftpuser1
sudo chmod g+s /home/vsftpd/ftpuser1
sudo setfacl -m u:ftpuser1:rwx /home/vsftpd/ftpuser1
sudo setfacl -m d:u:ftpuser1:rwx /home/vsftpd/ftpuser1
sudo setfacl -m u:ftpuser1:--- /home/vsftpd/ftpuser1/*
上述命令中,usermod命令将ftpuser1添加到ftp用户组中,使其可以访问FTP服务。chmod命令设置了ftpuser1的目录权限为775,其中g+s表示设置GUID,使新建的文件或目录的组ID与父目录相同,从而让ftp用户组拥有新建的文件或目录的权限。setfacl命令设置了ftpuser1的权限,其中-m选项表示修改权限,u表示用户,d表示默认权限,rwx表示读、写、执行权限,---表示没有删除权限。
对于ftpuser2,需要赋予下载文件的权限,但不能上传和对文件进行改名。可以使用以下命令为ftpuser2设置权限:
sudo usermod -a -G ftp ftpuser2
sudo chmod 755 /home/vsftpd/ftpuser2
sudo setfacl -m u:ftpuser2:r-x /home/vsftpd/ftpuser2
sudo setfacl -m d:u:ftpuser2:r-x /home/vsftpd/ftpuser2
上述命令中,usermod命令将ftpuser2添加到ftp用户组中,使其可以访问FTP服务。chmod命令设置了ftpuser2的目录权限为755。setfacl命令设置了ftpuser2的权限,其中-m选项表示修改权限,u表示用户,d表示默认权限,r-x表示读、执行权限,但没有写权限和删除权限。
至此,虚拟用户ftpuser1和ftpuser2的权限设置完成。可以通过FTP客户端进行测试,检查用户的权限是否符合要求。
阅读全文