본문 바로가기
+ OS/Linux & Unix

[Linux] 일반 계정에서 SUDO 사용 및 SUDOERS 설정 하기

by :: Teacher :: 2020. 5. 17.
728x90
반응형

우선 설명의 기반은 CentOS 8 기준으로 진행하였다. 

CentOS와 같이 Linux에는 관리자 계정과 일반 계정이 나눠져 운영이 된다. 

그러나 일반 계정으로 사용하다 보면 일반 계정에서 Root 권한이 필요한 경우가 있다. 

이때 sudo 라는 명령어를 통해서 임시적으로 Root 권한을 가질 수 있다.

그러나 관리자가 해당 일반 계정에 sudo 사용 권한을 주지 않는 경우 사용할 수가 없다.  

또한, 아래와 같이 "xxx은(는) sudoers 설정 파일에 없습니다.  이 시도를 보고합니다."라는 오류 메세지도 출력 된다. 

$ sudo -i
[sudo] xxx의 암호:
xxx은(는) sudoers 설정 파일에 없습니다.  이 시도를 보고합니다.

그럼 사용을 위해서는 관리자가 sudoers 파일 설정이 필요 하다. 

1. 그럼 관리자 권한으로 sudoers을 수정해보도록 하자. 파일 위치는 /etc/sudoers 이다.

$ vi /etc/sudoers
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
##
## This file must be edited with the 'visudo' command.

.. 생략 ..

"/etc/sudoers" [readonly] 120L, 4328C

vi 명령어로 열면 해당 파일을 readonly로 만 열리기 때문에 수정 하여 저장을 할 수 없다.

또한, /etc/sudoers 파일을 내에도 "This file must be edited with the 'visudo' command." 와 같이 visudo 명령어를 통해서 수정하기를 권고 하고 있다.

$ visudo -f /etc/sudoers 
## Sudoers allows particular users to run various commands as
## the root user, without needing the root password.
##
## Examples are provided at the bottom of the file for collections
## of related commands, which can then be delegated out to particular
## users or groups.
##
## This file must be edited with the 'visudo' command.

.. 생략 ..
"/etc/sudoers.tmp" 121L, 4351C

visudo 명령어를 통해서 /etc/sudoers 파일을 오픈하게 되면 Temp 파일로 생기고 해당 파일 수정 완료시 특별히 문제 없이 저장된다. 

2. 일반 계정 sudo 권한 부여하기

/etc/sudoers 파일 오픈 후 아래와 같이 일반 계정 입력 후 허용할 권한을 주게 된다.

허용 권한 부분에 대해서는 추후 다시 한번 더 정리하도록 하겠다.  

$ visudo -f /etc/sudoers
... 생략 ...
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
xxx        ALL=(ALL)       ALL



# 파일 수정 후 권한 적용한 계정으로 확인

[xxx@localhost ~]$ sudo -i
[sudo] xxx 암호:
[root@localhost ~]#

권한 설정 완료 후 문제 없이 Root 권한을 획득할 수 있다.

다만, 패스워드 입력을 하는 불편함이 있을 수 있다.  

반응형

3. 일반 계정 sudo 권한 부여 및 패스워드 확인 없이 부여하기 

2번에 내용에서 적용했던 부분 이외 아래와 같이 NOPASSWD 설정을 한다면 아래와 같이 sudo로 권한 변경시 패스워드 입력하는 부분도 제거 할 수 있다.

$ visudo -f /etc/sudoers
... 생략 ...
## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL
xxx        ALL=(ALL)       ALL

## Same thing without a password
# %wheel        ALL=(ALL)       NOPASSWD: ALL
xxx        ALL=(ALL)       NOPASSWD: ALL



# 파일 수정 후 권한 적용한 계정으로 확인

[xxx@localhost ~]$ sudo -i
[root@localhost ~]#

일반 계정에서 관리자 권한을 획득하는 경우 많은 보안적 이슈등이 발생할 수 있다.

가능하다면, 전체 설정이 아닌 sudo로 사용할 수 있는 명령어들도 정리하여 관리 및 설정을 하도록 하자. 

728x90
반응형

댓글


loading