创build一个SFTP用户只能访问一个目录。

我需要创build一个用户只能SFTP到特定的目录,并采取一些信息的副本。 这就对了。 我一直在线查看,并提供有关chroot的信息,并修改了sshd_config。

到目前为止,我可以

  • 添加用户“useradd sftpexport”
  • 创build它没有主目录“-M”
  • 设置其login位置“-d / u02 / export / cdrs”(信息存储在哪里)
  • 不允许使用ssh“-s / bin / false”

useradd sftpexport -M -d / u02 / export / cdrs -s / bin / false

任何人都可以提出什么意思编辑,以便用户只能login和复制文件?

我更喜欢创建一个用户组sftp并将该组中的用户限制到他们的主目录。

首先,编辑你的/etc/ssh/sshd_config文件,并在底部添加这个文件。

 Match Group sftp ChrootDirectory %h ForceCommand internal-sftp AllowTcpForwarding no 

这告诉OpenSSH,sftp组中的所有用户将被chrooted到他们的主目录( %h代表ChrootDirectory命令)

添加一个新的sftp组,添加你的用户到组中,限制他从ssh访问并定义他的主目录。

 groupadd sftp usermod username -g sftp usermod username -s /bin/false usermod username -d /home/username 

重新启动ssh:

 sudo service ssh restart 

如果仍然遇到问题,请检查主目录上的目录权限是否正确。 根据您的设置适当调整755值。

 sudo chmod 755 /home/username 

编辑:基于你的问题的细节,它看起来像你只是缺少sshd_config部分。 在你的情况下,用sftpexport代替sftp 。 还要确保文件权限可以在/u02/export/cdrs目录下访问。

一个更好的设置(甚至比我将要提出的更好的设置)是将/u02/export/cdrs目录符号链接到用户主目录。

你可能需要添加一个受限的shell,这个用户可以把一些文件放在那里。 你可以使用rssh工具。

 usermod -s /usr/bin/rssh sftpexport 

在config /etc/rssh.conf启用允许的协议。