adduser
도구 를 통해 사용자를 시스템에 추가했습니다 . 그런 다음에 /etc/passwd
, 나는 변경 시도 /bin/bash
를 /sbin/nologin
하거나 /dev/null
,하지만 둘 다 일이의.
대화 형 셸을 가져 오는 옵션이없는 사용자에게 사용하고 싶습니다 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 와 같은 것을 설정하는 것이 좋습니다.
/bin/false
그리고 /bin/nologin
실제로 사용할 수 있는지 확인하십시오 /etc/shells
!
또한 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
이를 사용하여 사용자를 쉽게 루트 할 수 있으며 필요한 경우 대역폭을 제한 할 수도 있습니다.