我正在运行 Ubuntu 14.04 LTS 64 位。我想创建一个 sftp 用户来访问现有文件夹并允许他们下载/上传/编辑。我该怎么做?
答案1
使用 vsftpd 包创建 ftp 服务器甚至 sftp 非常简单,但如果您真的希望授权外部人员进行 ftp 登录,则需要注意一些重要情况。因此,最好设置非 chroot sftp 设置,这样任何 sftp 用户都无法查看您的系统文件。这可以通过多种方法完成,我可以解释一种简单的黑客方法,以简单的步骤实现您的要求。
成为特权用户。
sudo su
安装软件包
sudo apt-get install vsftpd openssh-server
备份配置文件并创建新的配置文件。
mv /etc/vsftpd.conf{,.backup}
nano /etc/vsftpd.conf
保存并退出
Ctrl + x
y
重新启动 vsftp 服务器
service vsftpd restart
仅为 ftp 创建用户
useradd -g sftpgroup -d /files -s /sbin/nologin sagar
设置用户 Sagar 的密码
sudo passwd sagar
将 nologin 添加到 shell 配置中以使用它。
echo "/usr/sbin/nologin" >> /etc/shells
为 ftp 创建一个组,以便该组下的所有用户都可以使用 sftp
sudo groupadd sftpgroup
现在编辑 ssh 守护进程配置文件以使用 SFTP /etc/ssh/sshd_config
sudo nano /etc/ssh/sshd_config
找到“Subsystem sftp /usr/lib/openssh/sftp-server”行并注释掉以下内容
#Subsystem sftp /usr/lib/openssh/sftp-server
将以下内容粘贴到文件末尾
Subsystem sftp internal-sftp
Match group sftpgroup
ChrootDirectory /ftpdir/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
按 Ctrl+xy 保存
为 ftp 文件创建目录,如 mkdir -p /ftpdir//files。
mkdir -p /ftpdir/sagar/files
赋予所有权
sudo chown -R sagar:sftpgroup /ftpdir/sagar/files
重新启动系统
sudo reboot
现在使用 filezilla 客户端通过 SFTP 或终端进行连接。就是这样。