[server] sftp 사용자 만 만들려면 어떻게합니까?

adduser도구 를 통해 사용자를 시스템에 추가했습니다 . 그런 다음에 /etc/passwd, 나는 변경 시도 /bin/bash/sbin/nologin하거나 /dev/null,하지만 둘 다 일이의.

대화 형 셸을 가져 오는 옵션이없는 사용자에게 사용하고 싶습니다 sftp. 방법이 있습니까?

나는 그것이 이전에 여기에서 요청되었다는 것을 알고 있지만 아무도 만족스러운 답변을하지 않은 것 같습니다.



답변

쉘을 변경하기 위해 사용해야하는 명령은 chsh 입니다. nologin 쉘은 /sbin/nologin또는 /usr/sbin/nologin(당신이보고있는 것을 확인하십시오 /etc/shells)하지만 /bin/false더 나은 선택 일 것입니다.

chsh -s /bin/false user

원하는 것을 정확하게 수행하는 scponly 와 같은 것을 설정하는 것이 좋습니다.


답변

또한 OpenSSH 4.9 이상에서이를 수행 할 수 있어야하며, 보안을 강화하기 위해 사용자를 추가적으로 루트 할 수 있습니다.

당신의 /etc/ssh/sshd_config:

Match User user
ChrootDirectory /home/user
ForceCommand internal-sftp
AllowTcpForwarding no

그런 다음 다음을 실행하십시오.

chsh -s /bin/false user
chown root:root /home/user
mkdir /home/user/uploads
chown user /home/user/uploads

사용자는 / home / user / uploads에서만 쓸 수 있습니다.

https://debian-administration.org/article/590/OpenSSH_SFTP_chroot_with_ChrootDirectory


답변

가장 좋은 방법은 mysecureshell입니다

http://mysecureshell.sourceforge.net/en/index.html

이를 사용하여 사용자를 쉽게 루트 할 수 있으며 필요한 경우 대역폭을 제한 할 수도 있습니다.


답변

-s /bin/false쉘을 비활성화하기 위해 사용자를 추가 할 수 있지만 실제로 설정해야 할 것은 chrooted sftp 계정입니다. 이것은 사용자를 자신의 디렉토리에 “감옥”하고 chroot 디렉토리 외부의 파일이나 디렉토리에 액세스하거나 수정할 수 없게합니다.


답변