다음을 사용하여 기본 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
이 문제를 해결하는 데 도움이 정말 필요합니다. 이전에 약 1년 전에 이와 같은 설정을 했지만 모든 명령/권한을 잊어버렸기 때문에 이 질문을 하게 되었습니다.
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
.
고마워요, 알렉스