使隐藏文件夹不可见 sftp

使隐藏文件夹不可见 sftp

我的客户需要 sftp 服务器来共享文件,所以我在 amazon ec2 ubuntu 机器上创建了 sftp 服务器并添加了不同的用户。

现在他们的需求是,当用户通过 winscp 或其他客户端登录 sftp 服务器时,他们应该只能看到主目录中自己的文件夹,其他文件夹对他们不可见。此外,在他们的主目录中,他们不应该看到以点 (.) 开头的任何文件或文件夹。

这可能吗?例如参见下面的屏幕截图链接,我只想让我的客户查看/访问 Transcript 文件夹,不做其他任何事情。

https://i.stack.imgur.com/kEHfW.png

答案1

谢谢大家,最终这个链接帮助我完成了我的任务。http://rmtheis.wordpress.com/2011/07/03/setting-up-an-sftp-site-on-amazon-web-services-ec2-creating-an-account-to-share-with-a-third-party-and-restricting-that-account-to-allow-only-sftp/

这包括三部分:

  • 在 EC2 上设置 sftp 站点
  • 创建新用户帐户
  • 配置新用户帐户以执行只读 ftp,没有 ssh 权限

它用于将文件传输到受信任的用户或从受信任的用户接收文件。我将其用作偶尔向客户端发送非常大文件的解决方案,使用专用于该任务的 EC2 实例。传输完成后,我会关闭或删除该实例。

使用 Amazon Web Services EC2 设置服务器,选择 Ubuntu Amazon 系统映像 (AMI)。(您可以使用以下方式查找 AMI http://cloud.ubuntu.com/ami/。您可能希望选择一个符合免费套餐条件的套餐,例如 ami-1aad5273)

ssh 进入服务器:

ssh -i keyfile.pem [email protected]

安装 vsftpd:

sudo apt-get install vsftpd

创建新用户:

sudo adduser newusername

使用 AWS 管理控制台为第三方用户生成新的密钥对。

使用 puttygen 导入新密钥(keyname.pem)并复制其公钥。

在服务器上,为新用户创建.ssh 目录:

sudo mkdir /home/newusername/.ssh

将公钥粘贴到/home/newusername/.ssh/authorized_keys

设置权限:

sudo chmod 700 /home/newusername/.ssh

sudo chmod 600 /home/newusername/.ssh/authorized_keys

sudo chown -R newusername:newusername /home/newusername/.ssh

从本地机器测试新用户的 sftp 登录:

sftp -o IdentityFile=newkeypair1.pem
[email protected]

为只能使用 sftp 的用户创建新组:

sudo groupadd sftponly

sudo adduser newusername sftponly

编辑/etc/ssh/sshd_config并将子系统行更改为:

Subsystem sftp internal-sftp

并将这些行添加到末尾/etc/ssh/sshd_config

Match group sftponly
ChrootDirectory /home/%u
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp

设置权限,但不破坏 EC2 基于密钥的身份验证所需的文件:

sudo chown root:root /home/newusername

sudo chown -R newusername:newusername /home/newusername/.ssh

sudo /etc/init.d/ssh restart

现在新用户可以通过 sftp 连接,但不能通过 ssh 连接。将要共享的文件放在 中/home/newusername,并与用户共享密钥。

相关内容