제목 그대로 맨 처음 '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 파일에서 사용자의 권한을 수정하는 것이 좀 더 낫습니다. ( 그렇다고 해당 방법이 안좋은 것은..)

+ Random Posts