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 组)
当然,也可以分别 chown 该文件:
sudo usermod -G www-data ftp_user
sudo chown ftp_user:www-data -R /path/to/specific/folder
您的主目录也是一样,如果您想与该 ftp_user 共享您的主文件夹,您应该能够在您的组中添加 ftp_user,但您不应该改变您的主文件夹,而应该禁止组和其他所有人执行写操作。
对文件夹的所有权和权限要非常谨慎。