Centos

Chrooted SFTP 使用者 - 即使所有者也拒絕寫入權限

  • July 2, 2014

在**CentOS 版本 6.5(最終版)**上,我創建了一個受限使用者 test1

useradd -s /bin/false test1

並配置 ssd_config 如下

Subsystem sftp internal-sftp

Match User test1
   ChrootDirectory %h
   ForceCommand internal-sftp
   AllowTcpForwarding no

為使用者 test1 定義的主目錄

usermod -d /usr/local/tomcat/webapps/ROOT

然後

chown root:root /usr/local/tomcat/webapps/ROOT
chown test1:test1 -R /usr/local/tomcat/webapps/ROOT/*
chmod 755 -R /usr/local/tomcat/webapps/ROOT/*

重新啟動 sshd 並嘗試登錄 sftp

# sftp test1@localhost
Connecting to localhost...
test1@localhost's password:

sftp> ls -la
drwxr-xr-x    9 0        0            4096 Feb 16 08:20 .
drwxr-xr-x    9 0        0            4096 Feb 16 08:20 ..
drwxr-sr-x    2 500      501          4096 Feb  6 10:37 META-INF
drwxr-sr-x    6 500      501          4096 Feb 12 14:07 WEB-INF
drwxr-sr-x    2 500      501          4096 Feb 16 08:13 css
drwxr-xr-x    2 500      501          4096 Feb 16 08:27 home
drwxr-sr-x    3 500      501          4096 Feb 12 14:13 images
drwxr-sr-x    2 500      501          4096 Feb 16 00:37 js

sftp> mkdir css/test
Couldn't create directory: Permission denied

我幾乎嘗試了所有方法,但仍然無法弄清楚為什麼目錄的所有者沒有寫權限?

我認為您需要啟用一些 selinux bool,有關服務的 selinux bools 的更多資訊,您可以從 shell man sftpd_selinux 鍵入

[root@worktux ~]# getsebool -a | grep sftp
sftpd_anon_write --> off
sftpd_enable_homedirs --> off
sftpd_full_access --> off
sftpd_write_ssh_home --> off

必須啟用的確切是:

setsebool -P ssh_chroot_rw_homedirs on

在我得到它之前,我為此掙扎了 2 天!!

引用自:https://serverfault.com/questions/575947