2017-11-25 2 views
0

내가이 질문을 연구하고 모든 대답은 visudo를 추가하는 것이 좋습니다 "애띠이 있어야합니다 표준"실패!"SU <otheruser>는"

두 개의 Linux 상자 (RedHat)가 있습니다. ProcessBuilder/Process를 사용하여 명령을 실행하는 Java 클래스가 있습니다. 클래스는 시스템 계정으로 실행됩니다. 두 상자에, 나는

su other-user -c 'some-command' 

를 실행하고 프로세스 객체의 입력 스트림에서 다른 사용자의 암호를 제공합니다.

한 상자에서는 명령이 성공하고 다른 명령은 위의 오류가 발생합니다. 두 컴퓨터의 sudoers 파일에 requiretty ('Defaults requiretty'가 두 파일 모두에 설정되어 있음)에 대한 제외 항목이 없습니다. 내가 찾은 답변에서 제안한대로 배제를 추가했습니다. 나는 프로세스를 실행하는 시스템 사용자와 '다른 사용자'모두를 시도했다 ...

작동하지 않는다.

그 밖의 문제는 무엇입니까? requiretty exceptoin을 추가 한 후 시스템을 다시 시작해야합니까?

답변

2

sudoerssu이 아닌 sudo이고 sudo을 사용해야합니다. su 매뉴얼에 따르면

:

-c, --command COMMAND

-c 사용하여 쉘에 의해 호출되는 명령을 지정합니다.

실행 된 명령은 에 제어 터미널이 없음입니다. 이 옵션은 제어 TTY가 필요한 대화식 프로그램을 실행하는 데 사용할 수 없습니다.

+0

감사합니다 ... 예, sudo가 올바르게 작동합니다 ... – adaj21