在 Ubuntu 中创建一个用户并授予他访问特定网站的权限(Digitalocean+Serverpilot)

在 Ubuntu 中创建一个用户并授予他访问特定网站的权限(Digitalocean+Serverpilot)

我是编程方面的新手,我想在这个论坛寻求帮助,因为我已经在几个地方搜索过了,但都没有找到。

我在 Digitalocean 上有一个安装了 serverpilot 的 Ubuntu 服务器。我在那里创建的唯一用户是“serverpilot”,但一位程序员要求访问我在此服务器上安装的一个站点。他将在那里编写一个模板并对数据库进行一些修改,由于我不想让“serverpilot”用户登录,我请他花一些时间创建一个特定的 FTP 用户,仅供他访问此站点(其文件夹和子文件夹)。我一直在研究如何做到这一点,我测试了一些教程,但我仍然陷入困境。

我设法安装了 vsftpd,然后开始卷曲。

我希望这个新的 ftp 用户只能访问目录“/srv/users/serverpilot/apps/cronegame2/public”中的特定站点,这样他就可以访问其文件夹、子文件夹、数据库并能够修改它们,仅此而已。并且他只能通过端口 21 登录,因此他无法访问 ROOT。

请帮助我实现这一目标。

答案1

要使 FTP 用户具有对特定网站目录的有限访问权限,您可以按照以下步骤操作:

为 FTP 访问创建新用户:

sudo adduser ftpuser

为新用户设置密码。

为 FTP 访问创建一个新组:

sudo groupadd ftpaccess

将 FTP 用户添加到新组:

sudo usermod -aG ftpaccess ftpuser

将网站目录的所有权更改为新组:

sudo chown -R serverpilot:ftpaccess /srv/users/serverpilot/apps/cronegame2/public

更改网站目录的权限,允许新组读取、写入和执行:

sudo chmod -R g+rwx /srv/users/serverpilot/apps/cronegame2/public

配置 vsftpd 仅允许访问特定目录并限制对根目录的访问:

编辑该/etc/vsftpd.conf文件并在末尾添加以下几行:

# Allow access only to the specific directory
chroot_local_user=YES
local_root=/srv/users/serverpilot/apps/cronegame2/public

# Restrict access to the root directory
userlist_enable=YES
userlist_deny=NO
userlist_file=/etc/vsftpd.allowed_users

最后创建 /etc/vsftpd.allowed_users 文件并将 FTP 用户添加到其中:

sudo sh -c "echo 'ftpuser' >> /etc/vsftpd.allowed_users

相关内容