我需要定期对安装了 vsftp 的 CentOS linux 服务器上的各种目录进行临时和有限的访问。
我创建了一个用户,useradd [user_name]并使用passwd [password].
我在其中创建了一个目录/var/ftp,然后将其绑定到我希望限制访问的目录。
我还需要特别做什么来确保当这个用户登录到 FTP 时,他们只能访问这个目录?
我有一个带有 Digital Ocean 的 CentOs 6.4 版,我想成功创建 SFTP 用户并将它们囚禁到用户自己的 chroot 主目录中,但我担心我会把它弄得一团糟。
我已经尝试了很多事情,太多了,无法在这里列出,因为大多数可能不正确或没有多大意义,但我觉得应该是正确的过程,我尝试过的是:-
创建一个组sftp:-
groupadd sftp
Run Code Online (Sandbox Code Playgroud)
创建一个用户并设置他们的主目录:-
useradd -d /var/www/vhosts/domain.com dummyuser
Run Code Online (Sandbox Code Playgroud)
为用户设置密码:-
passwd dummyuser
Run Code Online (Sandbox Code Playgroud)
将用户组更改为“sftp”:-
usermod -g sftp dummyuser
Run Code Online (Sandbox Code Playgroud)
将用户的外壳设置为/bin/false:-
usermod -s /bin/false dummyuser
Run Code Online (Sandbox Code Playgroud)
在sshd_config( /etc/ssh/) 中编辑子系统:-
#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp
Run Code Online (Sandbox Code Playgroud)
将以下内容添加到sshd_config文件底部:-
Match group sftp
X11Forwarding no
ChrootDirectory %h
AllowTcpForwarding no
ForceCommand internal-sftp
Run Code Online (Sandbox Code Playgroud)
我确保以下所有目录都是root:root:-
/var
/var/www
/var/www/vhosts
/var/www/vhosts/domain.com
Run Code Online (Sandbox Code Playgroud)
如果我然后尝试通过 SFTP 与用户dummyuser(在 WinSCP 中)登录到服务器,我会得到以下信息:-
Authentication log (see …Run Code Online (Sandbox Code Playgroud)