그 상황. 특수 쉘에 관련된 제한된 사용자의 환경을 디버깅하고 있습니다. 이렇게 하려면 다음과 같이 su를 사용하여 전체 컨텍스트에서 해당 사용자로 명령을 실행해야 합니다.
su - $user -c "echo hello world" --shell /bin/custom_shell
분명히 명령과 /bin/custom_shell이 실행할 명령의 매개변수를 변경할 수 있지만 custom_shell이 실행할 매개변수를 어떻게 추가합니까? "--debug" 매개변수를 추가하는 것과 동일한 예:
root->su - $user
$user->/bin/custom_shell --debug --command "echo hello world"
참고: 로그인하는 동안 프로필 변수와 작업 디렉터리 변경이 많이 발생하므로 sudo는 이 작업에 작동하지 않습니다. 따라서 su를 사용하는 이유입니다. 또한 이것은 스크립트를 작성하고 실행할 수 있어야 하는 이상한 간헐적 문제입니다. 그렇지 않으면 su - $user 명령을 직접 실행하면 작동할 수 있습니다. 그러나 저는 그런 여유가 없습니다.