데이터베이스 보안을 유지하기 위해 권한이 부여된 루트가 아닌 사용자의 권한을 제한하여 전체 루트 권한을 부여하지 않고도 관리 작업을 수행할 수 있도록 할 수 있습니다.
이 페이지에서는 루트가 아닌 사용자가 모든 루트 사용자 권한에 대한 액세스 허용하지 않고 Linux 시스템에서 mongod
프로세스를 시작, 중지 및 다시 시작하도록 허용하는 방법을 설명합니다. 이 절차는 mongod
프로세스 실행되는 그룹 과 구별되는 루트가 아닌 Linux 그룹 에 속한 사용자에게 적용됩니다.
시작하기 전에
MongoDB Community 또는 MongoDB 엔터프라이즈설치합니다.
고려 사항
중요
다음 절차에서는 설정 에 대한 루트 액세스 필요합니다. 설정이 잘못되면 시스템이 응답하지 않을 수 있으므로 프로덕션 환경에서 구현하기 전에 항상 개발 환경에서 테스트하세요. 데이터의 최신 백업 있는지 확인합니다.
새 시스템을 설정하는 동안 이 절차를 수행하는 것이 좋습니다. 이것이 가능하지 않은 경우 유지 관리 기간 동안 절차를 수행합니다.
이 절차는 하나의 로컬 시스템 설정에만 영향을 줍니다. 복제본 세트 또는 샤딩된 클러스터 를 사용하는 경우 순차적으로 이 절차를 수행하세요. 모든 노드를 한 번에 업데이트 하지 마세요.
이 절차는 모든 Linux 배포에서 작동하지만, CentOS 6/7, RHEL 6/7, Ubuntu 18.04 및 Amazon Linux 2에서만 테스트되었습니다.
절차
아래에서 시스템 제공자 의 탭 선택합니다.
이 절차는 CentOS 7 및 RHEL 7에서 작동합니다.
sudoers
파일 업데이트합니다.
visudo를 사용하여 sudoers파일 에 다음 구성 줄을 추가합니다.
%mongod ALL =(ALL) NOPASSWD: /bin/systemctl start mongod.service, /bin/systemctl stop mongod.service, /bin/systemctl restart mongod.service %testuser ALL =(ALL) NOPASSWD: /bin/systemctl start mongod.service, /bin/systemctl stop mongod.service, /bin/systemctl restart mongod.service
참고
sudoers
파일 의 구문 오류는 루트 사용자 계정의 기능에 영향을 줄 수 있습니다.
루트가 아닌 사용자의 권한을 확인합니다.
이제 새 사용자는 mongod
서비스를 시작하고 중지할 수 있지만 /etc/mongod.conf
파일 읽을 수는 없습니다.
새 사용자에게 다음 명령을 실행 mongod
를 시작하고 [Permission Denied]
메시지를 받지 않았는지 확인하도록 합니다.
sudo /bin/systemctl start mongod.service
sudo /bin/systemctl stop mongod.service
를 사용하여 유사한 테스트를 실행 mongod
서비스를 오류 없이 중지할 수 있는지 확인할 수 있습니다.
이제 다음 명령을 실행 /etc/mongod.conf
파일 액세스 시도하도록 합니다.
sudo vi /etc/mongod.conf
이 명령은 [Permission Denied]
메시지를 반환해야 합니다.
이 절차는 CentOS 6, RHEL 6, Amazon Linux 2 및 Ubuntu 18.04에서 작동합니다.
sudoers
파일 업데이트합니다.
visudo 를 사용하여 sudoers파일에 다음 구성 줄을 추가합니다.
CentOS 6, RHEL 6 및 Amazon Linux 2의 경우:
%mongod ALL =(ALL) NOPASSWD: /sbin/service mongod start, /sbin/service mongod stop, /sbin/service mongod restart %testuser ALL =(ALL) NOPASSWD: /sbin/service mongod start, /sbin/service mongod stop, /sbin/service mongod restart
For Ubuntu 18.04:
%mongod ALL =(ALL) NOPASSWD: /usr/sbin/service mongod start, /usr/sbin/service mongod stop, /usr/sbin/service mongod restart %testuser ALL =(ALL) NOPASSWD: /usr/sbin/service mongod start, /usr/sbin/service mongod stop, /usr/sbin/service mongod restart
참고
sudoers
파일 의 구문 오류는 루트 사용자 계정의 기능에 영향을 줄 수 있습니다.
루트가 아닌 사용자의 권한을 확인합니다.
이제 새 사용자는 mongod
서비스를 시작하고 중지할 수 있지만 /etc/mongod.conf
파일 읽을 수는 없습니다.
새 사용자가 다음 명령을 실행 mongod
을(를) 시작하도록 합니다.
sudo service mongod start
셸 에서 다음과 같은 확인을 받는지 확인합니다.
Starting mongod: [ OK ]
sudo service mongod stop
를 사용하여 유사한 테스트를 실행 mongod
서비스를 오류 없이 중지할 수 있는지 확인할 수 있습니다.
이제 다음 명령을 실행 /etc/mongod.conf
파일 액세스 시도하도록 합니다.
sudo vi /etc/mongod.conf
이 명령은 [Permission Denied]
메시지를 반환해야 합니다.