我想在CentOs上配置服务器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
但是要知道,如果我在/etc/passwd
中更改用户bob的位置,那就可以了!
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
放入root' put'效果很好。
我的文件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 ~
答案 0 :(得分:0)
找到解决方案!安全服务CentOS限制访问某些目录。所以只是禁用。
nano /etc/selinux/config
SELINUX=disabled
#reboot system