安装其中一个 FTP 时,Ubuntu 类型的桌面与服务器是否重要?

安装其中一个 FTP 时,Ubuntu 类型的桌面与服务器是否重要?

首先我

ps -aux | grep ftp

并且没有找到任何类型的正在运行的 ftp。我有兴趣在我的笔记本电脑上运行的 Ubuntu 15.04 上启用 FTP 服务。我知道ftpsftpvsftpd软件包,但我不知道应该在我的笔记本电脑上安装哪个。最终,我希望从另一台笔记本电脑通过 f​​tp 进入我的笔记本电脑以获取和放置文件。我应该在我的笔记本电脑上安装哪个 ftp 软件包?

答案1

克里兹纳

安全 FTP (SFTP) 是您的最佳选择。以下是您需要执行的操作(仅从链接的网站总结):

  1. 安装 openssh-server 包:

    sudo apt-get install openssh-server
    
  2. 为 FTP 用户创建新组 ftpaccess:

    sudo groupadd ftpaccess
    
  3. 现在在此 /etc/ssh/sshd_config 文件中进行更改。

» 找到并注释掉下面这一行

Subsystem sftp /usr/lib/openssh/sftp-server

并在文件末尾添加以下行。

Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
  1. 重新启动 sshd 服务:

    sudo service ssh restart
    
  2. 创建 sftp 访问用户时必须遵循以下步骤:

    a. 创建具有 ftpaccess 组和 /usr/bin/nologin shell 的用户 john:

    sudo useradd -m john -g ftpaccess -s /usr/sbin/nologin
    
    sudo passwd john
    

    b. 更改主目录的所有权:

    sudo chown root /home/john
    

    c. 在主目录中创建一个用于写入的文件夹并更改该文件夹的所有权:

    sudo mkdir /home/john/www
    
    sudo chown john:ftpaccess /home/john/www
    
  3. 现在尝试使用 SFTP(端口:22)连接服务器并确保用户可以将文件上传到 www 目录并且不能访问主目录之外的其他文件夹。

1

如果您想同时使用 FTP 和 SFTP,请在创建用户时执行上述步骤(步骤 5)。对于现有用户,将其移动到 ftpaccess 组并创建文件夹结构和所有权更改,如下所示:

sudo usermod john -g ftpaccess -s /usr/sbin/nologin

sudo chown root /home/john

sudo mkdir /home/john/www

sudo chown john:ftpaccess /home/john/www

答案2

您可能想要添加多个用户,并且这个过程(对我来说)可能很繁琐,因此我创建了一个脚本来帮我完成此操作。nano ~/add_ftp_user.sh并粘贴以下内容:

#!/bin/sh

#Loosely based on https://45squared.com/setting-sftp-ubuntu-16-04

if [ "$EUID" -ne 0 ]
    then echo "Please run as root"
    exit
fi

CONFIG_FILE="/etc/ssh/sshd_config"

echo Enter the username to create:
read USERNAME

echo Creating user ${USERNAME}...
adduser ${USERNAME}
usermod -aG www-data ${USERNAME}

echo Setting folder permissions...
mkdir -p /var/www/html/${USERNAME}
chown -R ${USERNAME}:www-data /var/www/html/${USERNAME}/

echo Editing config file ${CONFIG_FILE}...
echo ' ' | tee -a ${CONFIG_FILE}
echo '# Created by add_ftp_user.sh script on +%Y-%m-%d' | tee -a ${CONFIG_FILE}
echo Match User ${USERNAME} | tee -a ${CONFIG_FILE}
echo 'ChrootDirectory /var/www/html/'${USERNAME} | tee -a ${CONFIG_FILE}
echo 'X11Forwarding no' | tee -a ${CONFIG_FILE}
echo 'AllowTcpForwarding no' | tee -a ${CONFIG_FILE}
echo 'AllowAgentForwarding no' | tee -a ${CONFIG_FILE}
echo 'ForceCommand internal-sftp' | tee -a ${CONFIG_FILE}
echo 'PasswordAuthentication yes' | tee -a ${CONFIG_FILE}

echo Restarting sshd service...
service sshd restart

echo Done

yourserver.com这将创建一个新用户,他们可以通过 SFTP(映射到您的服务器上)登录/var/www/html/{username},并且可以看到文件https://www.yourserver.com/{username}

如果您不想让其他人看到这些文件,请修改该行,使其内容为:chown -R ${USERNAME}:${USERNAME} /var/www/html/${USERNAME}/

相关内容