我想限制用户(用户 sftp-user、组 webgroup)对 CentOS 8 中 /var/www/html 目录的 sftp 访问。他们应该具有读写权限,以便可以更改网站文件。
我能够成功地将用户监禁到他们的主目录,但是当我将其更改为 /etc/ssh/sshd_configChrootDirectory %h
时,我无法完全让它工作。ChrootDirectory /var/www/html
用户在尝试 sftp 时收到此错误:
fatal: bad ownership or modes for chroot directory "/var/www/html"
我所做的是尝试为setfacl
组 webgroup 授予 /var/www/html 的 rw- 权限(虽然不是递归的,但该文件夹内的所有内容都是所有者sftp-user:group
)。
我怎样才能让它发挥作用?我看到一些解决方案建议使用mount
,我不确定这是否是更好的解决方案。
此外,该html
文件夹的所有者为,其中的所有内容均由我所提到的root:root
拥有。sftp-user:webgroup
这是正确的所有权吗?
为了完整起见,以下是输出getfactl /var/www/html
:
# file: html/
# owner: root
# group: root
user::rwx
group::r-x
group:webgroup:rw-
mask::rwx
other::r-x
谢谢。
答案1
我明白了这一点。看来我混淆了不同的因素。尝试与sftp
和合作ACL
同时导致我误诊了问题。全部归功于乌尔里希·施瓦茨为了从根本上解决问题。
为了使其工作,我必须确保路径中的每个目录都由监狱显然要求的/var/www/html
拥有。root
chroot
另一个问题是,当我试图解决这个问题时,权限html
被更改为。775
我将它们更改为755
并且我能够毫无问题地sftp
进入。ChrootDirectory
在ACL
前面, 中的文件/var/www/html
属于apache:apache
,而用户属于sftp-user
组webgroup
。我只是授予用户rwX
权限:
setfacl -Rm u:sftp-user:rwX html
-m
是修改,-R
是递归。