sudo 및 su를 사용하여 자동으로 로그인

sudo 및 su를 사용하여 자동으로 로그인

보안 위험이 있다는 것을 알고 있지만 집에 거의 사용하지 않는 오래된 *nix 시스템에서 이 실험/연습을 수행하고 있습니다. 따라서 이 연습을 수행해도 내 컴퓨터에 보안 위험이 발생하지 않습니다. 그렇긴 하지만, 안전에 관해 어떤 언급도 하지 마세요.

또한 비밀번호 프롬프트를 비활성화하도록 변경할 수 있다는 것도 알고 있지만 sudoers거기에는 관심이 없습니다.

다음 명령을 찾았습니다.

echo "password" | sudo -S su

그런데 효과가 이상해요. 도메인 이름을 입력하면 루트가 되지 않습니다. 내가 뭔가를 놓치고 있는 걸까요? 아니면 더 좋은 방법이 있나요?


내가 한 일들:

  1. \n추가됨: 비밀번호 끝 부분에 잘못된 비밀번호 확인이 있습니다.
  2. 생략 su: sudo올바른 사용법을 인쇄하여 기재하세요.

답변1

이상하지만 이것은 나에게 효과적입니다.

% echo -e "password\n" | sudo -S su
<myusername>'s password:HOSTNAME: Undefined variable.
% sudo -S su

따라서 첫 번째 실행에서는 비밀번호가 전달되고 sudo( -e플래그가 에코되어 \n실제로 줄 바꿈임) 두 번째 실행에서는 비밀번호를 묻지 않고 인증이 수행됩니다.

(두 번째 줄의 반환은 부적절한 시스템 설정으로 인한 것일 수 있습니다...)

sudo -S <command>편집: 해당 xterm 세션에서는 원하는 만큼 여러 번 호출 할 수 있습니다 . 이는 sudo 비밀번호를 한 번만 입력하면 되는 시간 제한 내에 있기 때문일 수 있습니다.

답변2

나는 다음을 사용했다

echo password | sudo -S su - user_to_switch_to

그런 다음 실행

sudo -S su - user_to_switch_to

비밀번호를 직접 입력하지 않고 원하는 사용자로 전환하세요.

(password 및 user_to_switch_to를 귀하의 비밀번호 및 사용자로 바꾸십시오.)

답변3

I/O 리디렉션을 수행하는 동안 su(및 친구들)의 대화형 쉘을 실행하려고 한다는 느낌이 듭니다. 나는 이것이 작동하지 않을 것이라고 생각합니다. echo passwd|즉, 비밀번호 뒤에 eof (파일 끝)가 표시됩니다. 내 생각에는 Expect나 전화 접속 스크립트 유틸리티 같은 것이 필요할 것 같습니다. Expect에는 스크립트 끝에서 호출할 수 있는 통과 모드가 있습니다. 명령이 xterm(완전히 대화식이지만 표준 입력이 필요하지 않음)처럼 대화식이 아닌 경우에는 필요하지 않습니다. 또한 표준 오류에서 읽은 일부 비밀번호에 주목하세요. 이는 아무리 말해도 흥미로운 일이 아닙니다. (이렇게 하면 i/o 리디렉션이 비밀번호 프롬프트를 방해할 가능성이 줄어듭니다.)

관련 정보