보통 Linux 서버를 운영하면, 관리자 계정과 일반 사용자 계정으로 나뉘어져 운영을 하게 된다.
관리자 계정은, 보통 root 계정(관리자 권한)
사용자 계정은, 운영자가 아닌 일반 사용자 or 개발자에게 개별적으로 할당하는 계정(사용자 권한)을 말한다.
그런데 리눅스 서버에 서비스를 운영하다보면, 일반 사용자 계정을 사용 하는 사람도 때에 따라서 관리자의 권한이 필요할 때가 있다.(예를 들면 서비스 시작/중지/재시작 등.)
이때, 일반 사용자는 su 명령어를 통해서 root 권한으로 로그인하여 관리자 계정으로 재로그인 할수도 있지만,
Sudo 라는 명령어를 통해서 임시적으로 root 권한을 가질 수 있다.
Sudo 명령어를 사용하려면, 관리자가 일반계정에 sudo 사용 권한을 주어야 하는데,
권한을 주기위해서는 sudoers 파일에 설정이 필요하다.
Path : /etc/sudoers
Sudoers 파일은 readonly로만 열리기 때문에 수정,저장할 수가 없다.
파일에서도 주석으로 작성되어 있다.
## This file must be edited with the 'visudo' command.
반드시 수정을 해야한다면, Visudo 명령어를 통해서 수정해라.
[일반계정에게 sudo 권한 부여하기]
권한 부여 방법
/etc/sudoers 파일에 아래와 같은 방법으로 설정하면. Root 권한을 획득할 수 있다.
일반 계정 : <일반계정> ALL=(ALL) ALL
일반 그룹 : <%일반그룹> ALL=(ALL) ALL
만약 sudo 명령어 사용시 비밀번호 입력이 필요없도록 하려면,
일반 계정 : <일반계정> ALL=(ALL) NOPASSWD:ALL
일반 그룹 : <%일반그룹> ALL=(ALL) NOPASSWD:ALL
위와 같이 설정해주면 된다.
[Tip!]
"includedir /etc/sudoers.d" 의 "#"은 주석의 의미가 아니다.
#주석을 해제하지 않아도 된다.
[/etc/sudoers.d 폴더 안에 파일]
파일을 만들때,
/etc/sudoers 파일과 마찬가지로 /etc/sudoers.d 폴더안에 파일을 만들때는 visudo 를 이용한다.
이러한 파일을 만들거나 편집하는 구문은 아래와 같다.
sudo visudo -f filename
[sudoers 보안]
일반사용자에게 관리자의 권한을 제공한다는건 당연이 보안에 취약한 부분이 있다.
예를 들어, sudo 모든 권한을 제공한 일반계정이 탈취된다면,
사실상 관리자의 권한이 모두 탈취되었다고 볼 수 있기 때문이다.
이를 보완하기 위해,
Sudo 권한을 제공하되, 일부 명령어를 제한하여 제공할 수 있다.
위와 같이 제공한다면, testuser 라는 일반계정은 비밀번호 입력 없이 sudo명령을 통해서.
/usr/sbin/httpd 와 /etc/rc.d/init.d/mysqld 명령을 사용할 수 있다.
(ex. sudo /usr/sbin/httpd restart)
보안성과 사용의 편리함을 모두 갖춘 sudo 명령어 사용법.
'IT Knowledge > 기타' 카테고리의 다른 글
RedisClusterNode, Redis Node IP 변경 검증 이슈 (0) | 2021.12.27 |
---|---|
Linux Systemd 서비스 escape 문자(CentOS) (0) | 2021.12.22 |
CentOS 7에 Gradle 설치(Install) (0) | 2021.08.25 |
리눅스 vi 줄번호 표시 (0) | 2021.08.19 |
Nginx 디렉토리 지정 설치 (0) | 2021.08.19 |
댓글