매우 제한된 권한으로 SFTP (SSH) 사용자를 만드는 방법


8

Ubuntu Server 14.04에서 서버를 실행합니다. sftp를 통해 연결하고 1 개의 파일을 다운로드 한 후 연결을 종료 할 수있는 사용자를 만들고 싶습니다. 사용자는 다른 어떤 것도 할 수 없어야합니다. 시스템 파일 또는 설정 찾아보기 또는 명령 줄 항목 없음. 로그인하고 파일을 다운로드하십시오 (gg). 파일이 업데이트되면 로그인하여 다운로드하십시오 gg. 파일은 매번 같은 디렉토리에 있으며 매번 같은 이름을 갖지만 업데이트됩니다.

편집 : 솔루션을 구현하려고하는데 몇 가지 문제가 있습니다. 구성의 ssh 구성 파일에 "sshdusers groups 허용"이라는 줄이 있습니다. sftp_users를 추가했습니다. 그러나 앞으로 또 다른 문제가 있습니다. sudo chown root.root / ubuntu /는 root가 "ubuntu"가 다운로드해야하는 파일을 ssh하고 디렉토리에 쓸 수 없기 때문에 나에게 적합하지 않습니다 (우리는 user1이라고 부를 것입니다). 디렉토리와 우분투는 읽기 전용입니다. sudo chown user1.user1 / ubuntu /를 변경하고 사용자 우분투와 sftp를 시도하면 연결이 실패합니다. 루트로두면 연결할 수는 있지만 연결할 수는 없습니다. currentdirectory 나는 filezilla에서만 /와 empy를 보았지만 sftp_users에 user1을 추가했지만 여전히 성공하지 못했습니다.

많은 감사

답변:


11

시작하자

사용자 만들기 ubuntu

sudo useradd ubuntu

비밀번호 만들기

sudo passwd ubuntu
Enter new UNIX password: 
Retype new UNIX password: 
passwd: password updated successfully

SFTP 전용 그룹 생성

xxx@xxx:~$ sudo groupadd sftp_users 

SFTP 전용 그룹의 사용자 "ubuntu"에 추가

xxx@xxx:~$ sudo usermod -G sftp_users ubuntu 

sftp액세스를 위한 디렉토리 만들기

sudo mkdir /ubuntu

읽기 / 쓰기 권한 때문에 소유자 변경

sudo chown root.root /ubuntu/

권한 추가

sudo chmod 755 /ubuntu/

편집하다 /etc/ssh/sshd_config

sudo nano /etc/ssh/sshd_config

다음과 같이 주석을 달고 행을 추가하십시오.

#Subsystem sftp /usr/lib/openssh/sftp-server
Subsystem sftp internal-sftp

마지막에 추가

Match Group sftp_users
  X11Forwarding no
  AllowTcpForwarding no
  ChrootDirectory /ubuntu
  ForceCommand internal-sftp

ssh서비스 재시작

sudo service ssh restart

이 cenfiguration을 사용하면 폴더로 ssh하고 파일 ubuntu을 얻을 수 있습니다. 할 수 put없거나delete

시험.

편집 1

오른쪽 폴더에서 sftp로 편집하려면 /etc/passwd. 사용자 ubuntu가 다음과 같이 라인을 변경하십시오.

sudo nano /etc/passwd

 ubuntu:x:1001:1001::/ubuntu:

이것은 사용자 우분투 홈 폴더를 sftp 서버 폴더로 변경합니다.

root계정을 활성화하는 것은 좋지 않습니다.

를 사용하여 서버에 ssh 할 수 있습니다 user1.

당신이 사용자를 추가하는 경우 user1sudoer group당신은 폴더에 쓸 수 있습니다 /ubuntu/적절한 권한을 설정

sudo adduser user1 sudo

폴더를 만들고 폴더 우분투에 씁니다. 조치 후 user에 대한 권한을 설정해야합니다 ubuntu. 가장 쉬운 방법은 권한을 755로 설정하는 것입니다.

sudo chmod 755 -R /ubuntu/

-R-옵션은 사용자에게 모든 파일과 디렉토리의 읽기 권한을 부여합니다 ubuntu


많은 감사합니다. 주석이 정말 빡빡하기 때문에 더 많은 편집 내용을 참조하십시오.
BlueStarry

1
내 대답에 편집 1이 있습니다.
2707974

작동하지 않는다고 유감입니다. filezilla sftp를 사용하면 user1 또는 ubuntu가있는 폴더에 쓸 수 없습니다. sftp를 통해 우분투로 로그인하면 마지막 수정에도 불구하고 / 폴더가 제공됩니다. 여러 번 시도했지만 문제를 파악할 수 없습니다.
BlueStarry

또한 소유자가 루트이고 sudoers가 755로 폴더에 쓸 수 없기 때문에 755가이 목적에 적합하지 않다고 생각합니다.
BlueStarry

심지어 다시 2015 년, 나는 우분투가 사용되었다 확신 adduser하고 addgroup,보다는 useradd, groupadd등은 sudo chown root.root /ubuntu/단지 잘못된 것입니다. 을 사용하여 디렉토리를 만들었 sudo으므로 소유권이 이미 root있습니다. 를 사용해야합니다 ubuntu.sftp_users. 마지막으로의 소유로 처음 생성 한 경우 ubuntu" 루트 사용자 사용 가능 ..."의 모든 것이 불필요합니다.
Auspex
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.