创建 SFTP 用户仅访问特定文件夹?

创建 SFTP 用户仅访问特定文件夹?

我正在运行 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 或终端进行连接。就是这样。

相关内容