본문 바로가기
IT/리눅스 이론

리눅스 일반계정으로 root권한 실행 방법(sudoers 파일 수정하기)

by 꾸꾸웍스 2022. 8. 24.
반응형

 

리눅스 /etc/sudoers 파일 이란?

 

리눅스 /etc/sudoers 파일이란

리눅스 /etc/sudoers 파일은 특정 사용자 또는 어떤 사용자가 명령을 실행할 수 있는지 제어하고 특정 명령에 대한 암호가 필요한지 여부와 같은 여러 가지 사항에 대해 제어할 수 있는 파일이며 이 중 sudo에 관한 설정을 할 수 있는 파일입니다. sudo로 명령을 사용하면 루트가 아닌 사용자가 슈퍼유저 권한이 필요한 리눅스 명령을 실행할 수 있으며 이에 대한 방법을 지시하는 파일입니다.

 

testuser@server $ chage -l testuser
Password expires                                    : never
Password inactive                                   : never
Account expires                                     : never
Minimum number of days between password change      : 0
Maximum number of days between password change      : 99999
Number of days of warning before password expires   : 7

testuser@server $ chage -l root
chage: Permission denied.

testuser@server $ sudo chage -l root

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

	#1) Respect the privacy of others.
   	#2) Think before you type.
  	#3) With great power comes great responsibility.
    
[sudo] password for testuser:

 

sudo 명령어 사용 예시

$ sudo [사용할 명령어]

위 내용은 testuser라는 사용자 계정이 chage -l 명령어로 testuser 계정에 대한 비밀번호 정책에 대한 내용을 볼 수 있지만 testuser 계정으로 root 또는 다른 사용자 계정을 보는 것은 권한 거절로 Permission denied가 출력되게 되지만 sudoers 파일에 testuser계정에 대해 sudo권한을 등록을 해 놓으면 슈퍼유저 권한으로 실행되기 때문에 이러한 다른 권한에 대한 명령들을 수행할 수 있습니다. 하지만 sudo권한이 설정되지 않으면 위 결과의 마지막처럼 패스워드를 입력하는 문구가 출력됩니다.

 

 

반응형

 

 

sudoers write 권한 부여

 

/etc/sudoers 파일 권한 수정

$ ls -l /etc/sudoers

testuser@server $ ls -l /etc/sudoers
-r--r----- 1 root root 3933 Feb 4 2022 /etc/sudoers

 

testuser 계정으로 /etc/sudoers  파일의 권한을 보았을 때 sudoers 권한은 440으로 오직 root 사용자와 root사용자 그룹만 읽기 권한(readonly)이 있기 때문에 sudoers파일을 수정을 한다면 root 권한으로 write권한을 부여해야 됩니다.

 

 

sudoers 쓰기 권한 부여

# chmod 640 /etc/sudoers

testuser@server $ su -
Password:
Last login: Fri Aug 19 15:29:42 KST 2022 on pts/1

root@server # chmod 640 /etc/sudoers

root@server # ls -l /etc/sudoers
-rw-r----- 1 root root 3933 Feb 4 2022 /etc/sudoers

 

sudoers 파일은 root 소유자이기 때문에 파일을 수정하기 위하여 root로 로그인을 한 후 chmod 명령어로 440의 권한에 write권한을 부여하여 640으로 변경합니다.

 

 

✔ sudoers 파일 조회 및 수정

# cat -n /etc/sudoers | grep -A 2 "Allow root"

root@server # cat -n /etc/sudoers | grep -A 2 "Allow root"
	99 ## Allow root to run any commands anywhere
    	100 root	ALL=(ALL)	ALL

 

sudoers 파일을 수정한 적이 없다면 위 결과 같이 출력이 됩니다. 이때 원하는 일반계정에 sudo권한을 추가하고 싶다면 아래와 같이 sudoers파일을 vi 또는 vim 편집기로 수정 후 저장합니다.

 

 

# vim /etc/sudoers

testuser	ALL=NOPASSWD:	ALL

 

vi 또는 vim의 편집 명령어를 이용하여 위 문구를 /etc/sudoers 파일 101줄에 추가를 한 후 파일을 저장합니다.

 

 

# cat -n /etc/sudoers | grep -A 2 "Allow root"

root@server # vim /etc/sudoers

root@server # cat -n /etc/sudoers | grep -A 2 "Allow root"
	99 ## Allow root to run any commands anywhere
    	100 root	ALL=(ALL)	ALL
        101 testuser	ALL=NOPASSWD:	ALL
        
root@server # chmod 440 /etc/sudoers

root@server # ls -l /etc/sudoers
-r--r----- 1 root root 3933 Feb 4 2022 /etc/sudoers

 

/etc/sudoers 파일을 수정했다면 잘 수정했는지 다시 한번 확인을 한 후 640으로 변경했던 권한을 440으로 다시 권한을 변경을 해줍니다.

 

 

 

일반계정으로 sudo명령어 실행

 

$ sudo chage -l root

testuser@server $ sudo chage -l root
Password expires                                    : never
Password inactive                                   : never
Account expires                                     : never
Minimum number of days between password change      : 0
Maximum number of days between password change      : 99999
Number of days of warning before password expires   : 7

 

/etc/sudoers 파일이 잘 수정이 되었다면 위 결과뿐만 아니라 다른 명령에서도 sudo명령어가 잘 적용됩니다.

 

 

반응형
그리드형

댓글