ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Linux] 리눅스 sudo 패스워드 입력 없이 사용하기
    서버 2016. 12. 19. 20:11

    우분투 계정을 만든 다음, 아래와 같이 관리자 권한이 필요한 부분에서 sudo를 사용하면 아래와 같이 비밀번호를 입력하라는 프롬프트 창을 본 적이 있을 것입니다.

    $ sudo mkdir test
    password:


    아래부터는 우분투에서 이러한 sudo 패스워드 없이 명령어를 사용하는 방법을 설명하겠습니다.

    /etc/sudoers

    /etc/sudoers 파일에 다음 형식으로 내용을 추가하면 됩니다.

    사용자명 ALL=NOPASSWD: ALL

    여기서 NOPASSWD: 를 빼면 sudo 실행 시, 사용자명의 패스워드를 입력해야만 합니다. 


    전체 명령어가 아닌 사용자에 따라 명령어를 지정할 수도 있습니다.

    사용자명 ALL=NOPASSWD: 명령어1, 명령어2

    예제

    전체 명령어 허용

    test라는 계정으로 로그인 후 관리자 계정 접속

    [test@localhost ~] $ sudo su
    password:
    [root@localhost ~] # 

    test계정에 sudo 권한 추가

    [root@localhost ~] # echo 'test ALL=NOPASSWD: ALL' >> /etc/sudoers
    [root@localhost ~] # cat /etc/sudoers | tail -2
    # includedir /etc/sudoers.d
    testuser1 ALL=NOPASSWD: ALL

    패스워드 입력없이 sudo reboot 가능

    [root@localhost ~]# su - test
    [testuser1@localhost ~]$ reboot
    reboot: Need to be root
    [test@localhost ~]$ sudo reboot
    The system is going down for reboot NOW!

    지정한 명령어만 허용

    visudo를 열어 useradd와 userdel 명령어를 추가 또는 표준출력으로 /etc/sudoers에 직접입력

    [root@localhost ~] # visudo
     
    ... (생략)
    #includedir /etc/sudoers.d
    test ALL=NOPASSWD: /usr/sbin/useradd, /usr/sbin/userdel  # 추가
     
    또는
     
    [root@localhost ~] # echo 'test ALL=NOPASSWD:/usr/sbin/useradd, /usr/sbin/userdel' >> /etc/sudoers 

    test 계정으로 sudo reboot 테스트

    [root@localhost ~]# su - test
    [test@localhost ~]$ sudo reboot
    [sudo] password for test: 
    Sorry, user test is not allowed to execute '/sbin/reboot' as root on localhost.localdomain.

    위처럼 sudo reboot에 대해서 패스워드를 묻지만 본인의 로그인 패스워드를 정확하게 입력해도 권한이 없어 실행을 할 수 없습니다.


    하지만 추가한 명령어인 useradd와 userdel을 사용할 경우 비밀번호를 묻지 않고 바로 사용가능합니다.

    [test@localhost ~]$ sudo useradd test1
    [test@localhost ~]$ cat /etc/passwd | grep test1
    test1:x:501:501::/home/test1:/bin/bash


    댓글