我想在 CentO 上配置服务器 SFTP。我在 Ubuntu 服务器上测试过,效果很好!
似乎用户和服务器的位置非常重要。
/sftp
我在其中创建了一个文件夹/
和一个用户 bob :
mkdir /sftp
chmod 777 /sftp
adduser --home /sftp bob
当我将 bob 连接到 sftp 服务器并使用ls
时,我收到消息“权限被拒绝”:
sftp -P 2222 bob@x.x.x.x
sftp>ls
remote readdir("/") : Permission denied
但是要知道,如果我更改用户 bob 的位置/etc/passwd
,它就可以工作了!
chmod 777 /etc
nano /etc/passwd
bob:x:5000:99::/sftp:/bin/bash ---> bob:x:5000:99::/etc:/bin/bash
service proftpd restart
# On client
sftp -P 2222 bob@x.x.x.x
sftp>ls
files ...
所以我不能在外面创建我的服务器/etc
,为什么?我已经在不同版本的proftpd 上进行了测试。
因为我注意到在我的 Ubuntu 服务器上可以正常工作,如果我将其放置/sftp
在命令/etc
权的问题上put
,但如果我放置/sftp
在根目录中,则“放置”效果很好。
我的文件 proftpd.conf 是基本配置:
## basic config ...
SFTPEngine on
Port 2222
SFTPLog /var/log/proftpd/sftp.log
TransferLog /var/log/proftpd/sftp-xferlog
# Host Keys
SFTPHostKey /etc/ssh/ssh_host_rsa_key
SFTPHostKey /etc/ssh/ssh_host_dsa_key
# Auth methods
SFTPAuthMethods password
AuthUserFile /etc/proftpd/sftp.passwd
# SFTP specific configuration
DefaultRoot ~