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 디렉토리 외부의 파일이나 디렉토리에 액세스하거나 수정할 수 없게합니다.