ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux] sudo 실행 시 비밀번호 미리 입력하여 실행하기
    서버 2016. 12. 19. 17:47

    제목 그대로 맨 처음 'sudo [명령어]...' 실행 시 비밀번호를 입력하라는 prompt 창을 확인할 수 있습니다.

    $ sudo vi test
    Password:


    불가피하게 sudo로 명령어를 실행하고 추가적인 prompt창 없이 바로 실행하도록 하고싶을 때 아래와 같이 사용합니다.

    echo '비밀번호' | sudo -S 명령어
     
     
    # 예시
    $ echo '1234' | sudo -S vi test.txt


    여기서 sudo의 -S 옵션은 sudo가 표준 입력으로부터 암호를 읽도록 합니다. 

    만약 이미 sudo [명령어]를 사용해 비밀번호를 이미 입력한 다음, 위와같이 실행하면 sudo의 액세스 토큰이 활성화가 되어 있어 에러가 발생할 수도 있습니다. 이러한 액세스 토큰을 리셋하기 위해선 아래와 같은 명령어를 입력합니다.

    echo '비밀번호' | sudo -kS 명령어
     
     
    # 예시
    $ echo '1234' | sudo -kS vi test.txt


    이와같이, 명령어 한 줄로 관리자 권한을 얻어 실행할 수 있지만 보안 관점에서는 상당히 취약합니다. history에 관리자의 비밀번호가 그대로 남기 때문입니다. 따라서 해당 방법을 사용하기 보단, /etc/sudoers 파일에서 사용자의 권한을 수정하는 것이 좀 더 낫습니다. ( 그렇다고 해당 방법이 안좋은 것은..)

    댓글