1

我想在 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        ~
4

1 回答 1

0

找到解决方案!CentOS 的安全服务限制了对某些目录的访问。所以只能禁用。

nano  /etc/selinux/config
SELINUX=disabled
#reboot system
于 2014-05-06T11:43:42.747 回答