2013-11-22 5 views
3

사용자가 ssh를 사용하고 내 CLI에만 액세스 할 수있게하려고합니다. 이것은 현재 cli를 다른 사용자로 실행하는 .profile에서 명령을 실행하여 수행됩니다 (sudoers에서 수행되며 CLI 만이 사용자로만 실행할 수 있습니다). 내가 가지고있는 한가지 문제는 사용자가 여전히 shh와 명령을 실행할 수 있다는 것인데, bash는 내가 제한하고자하는 것입니다. 사용자가 sftp로 전송할 수있게하려는 아카이브도 있습니다. 나는 다른 사용자와 chroot를 만들어서 그 하나의 파일에만 접근 할 수 있다고 생각하고있다. 나는 동일한 사용자와 이것을하려고했지만 CLI를 사용하고 원격 ssh 명령을 제한하는 것을 허용하면서 그들을 chrooting 악몽처럼 보인다. 죄송합니다. 혼란 스럽다면,이 모든 것을 말로 표현하는 데 어려움을 겪고 있습니다. 이런 종류의 물건에 대해 많은 경험을하지 못했습니다.쉘 액세스를 허용하면서 원격 ssh 명령 제한

요약하면 기본적으로 내가 원하는 :

-ALLOW SSH를에 대한 사용자,하지만 일에서 내 CLI

-Prevent 사용자에 액세스 할 수 ssh를

-ALLOW 전송과 어떤 다른 진단 자료실

누구나 모든 것을 수행하는 가장 좋은 방법에 대한 아이디어가 있습니까? 도움이 될만한 다른 정보가 있으면 알려주십시오. 감사!

+0

사용자가 필요로하는 작업에 대해 자세히 설명해 줄 수 있습니까? 파일을 업로드하고 어떤 명령을 실행합니까? 액세스를 cronjob으로 바꿀 수 있습니까? 왜 SFTP를 사용하고 있습니까? bash를 제한하면 사용자가 명령을 어떻게 실행합니까? – Dejan

+0

사용자가 ssh를 통해 내 사용자 지정 CLI에 액세스 할 수 있어야합니다 (또는 ssh가 아닐 수도 있습니다). 대체 방법이 무엇인지 알 수 없습니다. 업로드는 없으며 다른 명령은 없지만 특정 파일을 컴퓨터에서 전송할 수 있어야합니다. 나는 sftp 만 chroot로 작업했기 때문에 그것을 사용하려고 계획했기 때문에 다시 대안을 찾을 수 있다고 생각했습니다. CLI를 시작하지 않고도 명령을 실행할 필요는 없습니다. – user2577911

답변

0

사용자가 ssh를 통해 로그인하면 s/he는 chroot jail에 잠겨 있습니다. 나는 당신이 무엇을했는지 확실하지 않다, 그래서 다음은별로 도움이되지 않을 수 있습니다

시도 :

usermod -s /path/to/CLI username 

/경로가 감옥에 표시해야하고, CLI는 정적으로 링크되어야한다. opendir(), dirent 등을 사용하는 대신 ls와 같은 명령을 사용하여 system() 호출을 사용하면 라이브러리와 별도의 visible/lib 디렉토리가 있어야합니다. 그리고 로컬로 볼 수있는/usr/bin 디렉토리에있는 ls 실행 파일 또는 다른 명령의 별도 사본. 이 경우 CLI는 동적으로 링크 될 수 있습니다.

ldd executablefilename 

명령을 사용하면 필요한 모든 라이브러리를 볼 수 있습니다.

웹에서 chroot 예/자습서를 살펴보십시오. Google for linux chroot jail

관련 문제