하나의 명령 만 실행하는 UNIX 계정 만들기


13

사용자가 하나의 명령 만 실행할 수 있도록 Solaris에서 사용자 계정을 작성하는 방법이 있습니까? 로그인 쉘이나 다른 것은 없습니다. 나는 아마도 함께 할 수 /usr/bin/false있는 /etc/passwd단지로 사용자를 얻을 수 ssh <hostname> <command>있지만, 그것을 할 수있는 더 좋은 방법은 무엇입니까?

답변:


15

사용자가 ssh를 통해서만 연결할 수있는 경우 강제 명령을 사용할 수 있습니다. 기본적으로 사용자가 특정 키 및 특정 사용자 이름으로 ssh를 통해 연결할 때마다 .ssh / authorized_keys에서 결정한 명령 (또는 스크립트 또는 명령)을 강제로 실행해야합니다. 사용자가 발행 한 명령은 무시됩니다.

예를 들면 다음과 같습니다.

# in .ssh/authorized_keys
command="cd /foo/bar && /path/to/scripts/my_script.sh arg1 arg2",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa public_key

네 둘 다 맞았 어 내가 한 것은 프롬프트에 메뉴를 제공하는 스크립트를 만들고 인증 된 사용자의 키 앞에 서버의 .ssh / authorized_keys에서 강제 검사 명령을 사용했습니다. 이제 서버로 ssh 할 수 있으며 프롬프트에서 몇 가지 명령을 실행할 수있는 멋진 메뉴가 제공됩니다. 다른 것을 실행할 수 없습니다. 행복한 날들!
Will Dowling

2
편집; 강제 명령을 보호하려면 다음과 같은 옵션이 필요합니다. "포트 없음 전달, X11 전달 없음, 에이전트 전달 없음, pty 없음".
Tobu

11

해당 사용자의 쉘을 허용하려는 명령을 실행하는 스크립트로 설정할 수 있습니다. 사용자가 로그인 할 때마다 명령이 실행 된 후 사용자가 로그 아웃됩니다. 그리고 "full shell"이 없기 때문에 펑키 한 것을 시도하는 사용자를 다룰 필요가 없습니다.


0

RBAC 로이 작업을 수행하고 사용자에게 특권 쉘 (pfsh, pfcsh 또는 pfksh)을 제공하고 사용자가 실행할 수있는 명령에 대한 프로파일을 만들 수 있는지 궁금합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.