迁移自简书,格式可能未经校对。
缘由:网上google出来的东西要么排版太丑要么啥都没有
安装
apt install vsftpd
限制目录
ftp
在 /etc/vsftpd.conf
里有个 local_root=/home/sftp_root
。测试发现, 只对不加密的ftp有效。
sftp
要限制sftp的权限,都要通过限制ssh访问的方式。大概方法是:
-
建立一个用来限制目录的组 sftp-users
-
建立一个专门用来登陆sftp的用户 sftpu1,并加入到上面的组里
-
在sshd里限制这个组的访问空间
-
建用户组
groupadd sftp-users
-
建用户并加到组里
useradd -g sftp-users -s /bin/false sftp
-
限制该组的活动空间
在 /etc/ssh/sshd_config
里追加以下内容
Match Group sftpuser
ChrootDirectory /home/sftp_root
ForceCommand internal-sftp
AllowTcpForwarding no
X11Forwarding no
改完之后记得让ssh重读配置
sudo service sshd reload
但是,这样基本上要求你的ssh用户和sftp用户没法是同一个人了