如何创建一个唯一的用户,让 ftp 服务器可以将其用作完全隔离的非特权用户 - vsftpd?

如何创建一个唯一的用户,让 ftp 服务器可以将其用作完全隔离的非特权用户 - vsftpd?

Ubuntu 16.04 Bash 4.4.20

我想知道创建一个唯一用户的步骤,ftp 服务器可以将其用作完全隔离的非特权用户。

笔记:
在 vsftpd.conf 文件中,有以下内容:

# It is recommended that you define on your system a unique user which the
# ftp server can use as a totally isolated and unprivileged user.
#nopriv_user=ftpsecure

答案1

不久前,我试图在我的树莓派上实现这一点。

我不记得我到底是怎么做到的,也找不到我的信息的“来源”,但大致应该朝这个方向发展:

创建一个用户,但不给他自己的主目录(ftp_user 是他的名字,你可以给他一个不同的主目录):

sudo adduser ftp_user --no-create-home

(在这里您应该能够为该用户提供密码)

如果你希望 ftp_user 能够访问特定文件夹,你需要

mkdir /path/to/specific/folder                    # create a folder
sudo usermod -d /path/to/specific/folder ftp_user # assign to ftp_user

然后你需要授予该用户该文件夹的所有权

sudo chown ftp_user:ftp_user -R /path/to/specific/folder

一般来说,该特殊文件夹的权限应该是这样的:

sudo chmod 774 -R /path/to/specific/folder    # You:rwx Group:rwx eveyone else: r--

或者

sudo chmod 775 -R /path/to/specific/folder    # You:rwx Group:rwx eveyone else: r-x

如果文件夹位于 /var/www/.. 则可能需要将用户添加到组 www-data 或类似的组(如果我没记错的话,也有一个 www-data 组)

什么是 www-data 用户?

当然,也可以分别 chown 该文件:

sudo usermod -G www-data ftp_user
sudo chown ftp_user:www-data -R /path/to/specific/folder

您的主目录也是一样,如果您想与该 ftp_user 共享您的主文件夹,您应该能够在您的组中添加 ftp_user,但您不应该改变您的主文件夹,而应该禁止组和其他所有人执行写操作。

对文件夹的所有权和权限要非常谨慎。

相关内容