Linux下面不再需要ftpd,记一下sftp的配置

今天需要给客户开发人员配置一个ftp到服务器,用于更新开发用的php文件。结果一问,现在都用sftp了,讨论vsftpd还是pureftp好的日子早就一去不返了。

下面就说说具体步骤,参考:

http://askubuntu.com/questions/134425/how-can-i-chroot-sftp-only-ssh-users-into-their-homes

http://askubuntu.com/questions/49271/how-to-setup-a-sftp-server-with-users-chrooted-in-their-home-directories

安装scponly

yum install scponly -y

然后

useradd bob -s /usr/bin/scponly

对于/etc/passwd来说,内容大概这样,

overlord:x:501:500::/home/bob:/usr/bin/scponly

然后修改密码:

passwd bob

然后修改/etc/ssh/sshd_config,在最后添加(必须在最后)

Match User bob

ChrootDirectory /home/bob/

X11Forwarding no

AllowTcpForwarding no

ForceCommand internal-sftp

然后具体设置目录权限,这里还是挺关键的,这个权限设置不对就不好用。具体就是如下:

sudo chown root /home/bob
sudo chmod go-w /home/bob
sudo mkdir /home/bob/writeable
sudo chown bob:www-data /home/bob/writeable
sudo chmod ug+rwX /home/bob/writeable

我是用nginx跑php-fpm的环境,组是www-data,所以一定g+rw是要有的,这是最关键的,否则php无法读取文件。

权限设置参考:https://zh.wikipedia.org/wiki/Chmod

这样的效果就是拿/home/bob作为根目录的ftp环境了。

相关推荐