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

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

사용자가 단일 명령만 실행할 수 있도록 허용하는 사용자 계정을 Solaris에서 만드는 방법이 있습니까? 로그인 쉘이나 아무것도 없습니다. /usr/bin/falsein 을 사용하여 이 작업을 수행 /etc/passwd한 다음 사용자를 in 으로 허용할 수 있지만 ssh <hostname> <command>더 좋은 방법이 있습니까?

답변1

당신은 사용할 수 있습니다필수 주문사용자가 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

답변2

허용하려는 명령만 실행하는 스크립트를 실행하도록 해당 사용자의 셸을 설정할 수 있습니다. 즉, 사용자가 로그인할 때마다 명령이 실행된 다음 사용자가 로그아웃됩니다. 그리고 "완전한 쉘"이 없기 때문에 최신 유행을 시도하는 사용자를 상대할 필요가 없습니다. ;)

답변3

RBAC를 사용하여 이 작업을 수행하고 사용자에게 권한 있는 셸(pfsh, pfcsh 또는 pfksh)을 제공하고 사용자가 실행할 수 있는 명령에 대한 구성 파일을 생성할 수 있는지 궁금합니다.

관련 정보