한 가지만 할 수있는 사용자를 만들고 싶습니다 .ssh를 통해 하나의 특정 폴더에있는 스크립트 (및 스크립트에 대한 명령 줄 인수)를 지정하고 (이 질문의 목적으로 호출하십시오 /local/remote_only_scripts/foo
) 해당 스크립트를 실행하십시오 출력을 반환합니다.
사용자가 할 수 있기를 원하지 않는 것들의 예를 분명히하기 위해 :
- 계정에 로컬로 로그인하십시오. 로그인 응용 프로그램은
/bin/login
입니다./local/remote_only_scripts/foo
폴더 의 스크립트 가 아니므로 사용자가 호출해서는 안됩니다. - 계정에 원격으로 로그인하십시오. 다시 로그인하십시오 (ssh?라고하는 것입니다)는 관련 폴더의 스크립트가 아닙니다.
- 디렉토리의 내용을 나열하십시오. ls에
/bin/ls
있습니다. 적절한 디렉토리에있는 스크립트가 아닙니다. - 해당 디렉토리에서 파일을 편집하십시오. emacs, vi, gedit 대부분의 다른 편집자는 해당 디렉토리의 스크립트가 아닙니다.
- 해당 디렉토리의 파일 내용을보십시오.
- 해당 디렉토리에서 실행 권한이없는 파일을 실행하십시오.
이들은 사용자가 할 수없는 많은 다른 행동 이있는 예 입니다. 조치를 고려할 때 "이것이 스크립트로 수행 /local/remote_only_scripts/foo
됩니까?" 대답이 없으면 사용자가 할 수 없어야합니다. 대답이 예이면 사용자가 그렇게 할 수 있어야합니다.
추신 : "사용자 추가"를 통해 내가 의미하는 바를 명확히하겠습니다. ssh 하위 시스템에 사용자를 추가한다는 의미는 아닙니다. 오히려 컴퓨터 시스템에 사용자를 추가하는 것을 의미합니다. 예를 들어, 데비안 안정적인 시스템을 운영하고 있습니다. 주소는 www.hg.bar.com입니다. kuser, users-admin 또는 useradd 또는 유사한 방법을 통해 사용자를 hg_guest라고 부르고 싶습니다. hg_guest는 로컬로 로그인하거나 위의 목록에있는 작업을 수행 할 수 없습니다. hg_guest가 할 수있는 모든 것은 "원격으로"스크립트를 실행하는 것입니다. 나는 그가 ssh를 통해 그렇게 할 수 있어야한다고 말했지만 지금 그것에 대해 생각하면 아마도 ssh를 사용하도록 허용하면 로컬로 로그인 할 수 있으므로 다른 메커니즘이 필요할 수 있습니다.