문제가 있습니다. 누군가에게 액세스 권한을 부여해야 하지만 데이터베이스에 연결하는 유일한 방법은 SSH를 통해서입니다. 따라서 모든 것을 올바르게 이해했다면 그 사람을 위한 Linux 계정을 생성해야 합니다(Debian 10 시스템에서). create 사용자는 폴더에 대한 쓰기 권한이 없으므로 아무 것도 깨뜨릴 수 없는 것 같습니다.
하지만 문제는 그가 파일 시스템의 모든 파일을 읽을 수 있다는 것입니다. 최선의 방법이 무엇인지 잘 모르겠습니다. chmod가 모든 문제를 해결할 수 있다는 것을 알고 있지만 제거하는 것이 좋은 방법인지는 모르겠습니다. 다른 사람의 모든 권한을 부여하고 각 파일의 그룹을 내 기본 Linux 계정으로 변경합니다.
/bin 폴더 아래의 명령에 대한 모든 실행 권한을 제거하고 파일 그룹을 변경해야 할까요?
읽어 주셔서 감사합니다! 내가 분명히 밝혔기를 바랍니다.
답변1
요청하신 내용은...
당신이 찾고 있는 것은 입니다 chroot
. 그러면 /
파일 시스템의 루트가 원하는 위치로 설정됩니다.
사용자 chroot
인 경우 이 위치는 다음과 같습니다 . 그는 파일 시스템의 나머지 부분을 볼 수 없습니다. 따라서 이 폴더 아래에 그가 실행하는 데 필요한 모든 프로그램을 배치하려고 합니다./home/bob
bob
/
bob
이제 우리가 알고 있듯이, chroot
우리는 수많은 답변과 지침을 찾을 수 있습니다.
- SSH 연결을 chroot하는 방법은 무엇입니까?
- OpenSSH를 사용하는 Chroot 사용자: 사용자를 홈 디렉터리로 제한하는 더 쉬운 방법
- Chrooted SSH/SFTP 튜토리얼(Debian Lenny)
당신은 무엇을 원합니까?
데비안 머신에서 데이터베이스에 접근할 수 있고 그게 전부라면, 당신은 다음을 찾고 있습니다.SSH 터널. 여전히 사용자 계정이 필요하지만 완전히 잠길 수 있습니다. 중요한 SSH 설정은 다음과 같습니다.
AllowTcpForwarding yes
- 우리는 터널을 갖는 것이 허용되었습니다ForceCommand /bin/false
- SSH를 통해 로그인을 시도하면 쉘이 생성되지 않습니다.ChrootDirectory /opt/dummy_location/%u
- 어떻게든 쉘을 얻으면 파일 시스템 보기를 빈 위치로만 제한할 수 있습니다.
이러한 지식을 통해 우리는 수많은 기존 기술을 다시 찾을 수 있습니다.
위의 내용은 SSH 연결을 처리합니다. 사용자가 서버에 물리적으로 액세스할 수 있는 경우 사용자를 위한 셸을 설정해야 합니다.
usermod -s /bin/false userbob
위의 순서에 따라 검색하여 데이터베이스 클라이언트에 연결하는 방법을 찾을 수 있습니다. SSH의 모든 마법은 네트워크 계층에서 발생하므로 이는 모든 클라이언트에 적용됩니다! 터널이 시작되면 데이터베이스가 로컬 머신에서 실행 중인 것처럼 보입니다.
일부 고객은 삶을 더 쉽게 만들어 주는 SSH 터널링에 대해 알고 있습니다. 일반적인 클라이언트는 HeidiSQL입니다.HeidiSQL을 사용하여 SSH 터널을 통해 MySQL 데이터베이스에 연결하는 방법.
터널 루트를 이용하시면제발 제발 제발먼저 일반 계정으로 테스트하여 작동하는지 확인하세요.앞으로터널 사용자를 잠그기 시작합니다!
마지막으로 사용해야합니다SSH 키비밀번호 대신. 그러나 이것은 chroot의 복잡성과 결합되어 마지막 구현에 맡기는 것이 가장 좋습니다.
답변2
사용자가 자신의 디렉토리에서 작업할 수 있고 디렉토리를 변경할 필요가 없는 경우 /home
이것은 유용한 게시물(단순한 답변이 아님)이 될 수 있습니다.사용자를 제한하는 방법
edit 를 통해서도 이 작업을 수행할 수 있지만 /etc/sudoers
귀하의 경우에는 이것이 적절하지 않다고 생각합니다.