我有一个基本的 SFTP 服务器设置,使用OpenSSH
。为了设置 SFTP 服务器,我按照以下步骤操作:
步骤1:我安装了 OpenSSH 软件包。
sudo apt-get install openssh-server -y
第2步:为 SFTP 用户创建单独的组。
sudo groupadd sftpaccess
步骤3:我/etc/ssh/sshd_config
通过查找Subsystem sftp /usr/lib/openssh/sftp-server
并注释掉该文件来编辑该文件。之后我转到文件的最底部并添加了以下内容:
Subsystem sftp internal-sftp
Match group ftpaccess
ChrootDirectory %h
X11Forwarding no
AllowTcpForwarding no
ForceCommand internal-sftp
步骤4:重新启动 sshd 服务。
sudo /etc/init.d/ssh restart
第5步:添加具有 sftpaccess 组的用户并创建密码
useradd -s /bin/bash -m -U -G sftpaccess sftp-alex
passwd sftp-alex
第6步:创建和修改用户目录。
sudo mkdir -p /mnt/users/sftp-alex/www
sudo chown root:root /mnt/users/sftp-alex
sudo chown root:sftpaccess /mnt/users/sftp-alex/www
我的目标(困扰我的事情):
我想在此处创建一个目录 (
/mnt/www
) 来存放用户共享之类的内容,然后将其绑定到,/mnt/users/sftp-alex/www
以便它看起来像这样:- 让用户分享:
mkdir /mnt/www
- 绑定共享给用户
mount --bind /mnt/www /mnt/users/sftp-alex/www
- 让用户分享:
此过程中的下一步是创建共享系统/权限系统。我对如何做到这一点的想法在执行中非常简单。我想创建两个组,一个称为
sftp_read_write
另一个叫sftp_read
现在,如果您还不知道我要说的是什么,那么让我解释一下。我将使用setfacl
向文件和文件夹添加 acl。我的想法是这样的setfacl -Rm g:sftp_read_write:rwX,g:sftp_read:rX /mnt/www
。现在这一切都很棒,但它不起作用我可以读和写无论我在sftp_read_write
或者sftp_read
或者sftpaccess
我真的需要帮助来解决这个问题,我之前已经有了这样的设置,大约一年前,但我忘记了所有的命令/权限,这就是我问这个问题的原因。
getfacl 的输出
# file: www
# owner: root
# group: sftpaccess
user::---
group::---
group:sftp_read:r-x
group:sftp_read_write:rwx
mask::rwx
other::---
尝试编辑文件
# file: Test.txt
# owner: sftp-alex
# group: sftp-alex
user::rw-
group::rw-
other::r--
笔记:无论我在什么位置,我都可以编辑这个文件sftp_read
或者sftp_read_write
不应该是这样,如果我在,我应该只能读和写sftp_read_write
。
谢谢,亚历克斯