我正在尝试创建一个仅对一个目录(不是他的主目录)具有 SFTP 权限的用户。当他通过 SFTP 客户端连接时,我希望他进入此目录,并且我不希望他能够查看任何其他目录,除非它是子目录。我使用的是 Ubuntu 12.04。
我遵循以下步骤:
编辑 /etc/ssh/sshd_config 文件。
添加或修改子系统 sftp 行,使其如下所示:
Subsystem sftp internal-sftp
将以下文本块添加到文件底部:
Match Group filetransfer
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
重新启动 OpenSSH:
service ssh restart
为您想要限制 SFTP 访问的用户创建系统组:
addgroup --system filetransfer
sudo adduser username #added user
usermod -G filetransfer username #added him to the group
chown root:root /home/username #disabled access to his default home directory
chmod 755 /home/username
改变了我希望他能够修改的权限目录:
cd /srv/www/website_name/public_html/wp-content/themes/
chown username:filetransfer specific_folder
chown username:filetransfer specific_folder/*
将此文件夹设置为他的主目录:
sudo usermod -d /srv/www/website_name/public_html/wp-content/themes/specific_folder username
但现在我无法使用 SFTP 连接。在我更改他的主目录后,连接失败。我该怎么做才能解决这个问题?
答案1
我会 chroot 用户并确保他们无法获取 shell。尝试这