6.사용자 및 그룹 관리, 사용자 그룹 생성 및 접근 제한

Ubuntu는 다중 사용자 환경을 지원하는 매우 유연한 운영체제입니다. 이를 통해 여러 사용자가 시스템을 안전하고 효율적으로 사용할 수 있도록 관리할 수 있습니다. 이 글에서는 사용자 및 그룹 생성, 관리, 접근 제어에 대해 자세히 설명하겠습니다. 이러한 내용을 통해 Ubuntu 서버에서의 보안과 접근 제어를 개선할 수 있을 것입니다.

1. 사용자 및 그룹 개념 이해하기

OS에서 사용자와 그룹은 중요한 역할을 합니다. 사용자는 시스템에 로그인하여 작업을 수행하는 개인 또는 프로세스를 말하고, 그룹은 여러 사용자를 조합하여 권한을 부여하고 관리하는 단위입니다. 사용자와 그룹을 통해 시스템의 리소스에 대한 접근 권한을 쉽게 제어할 수 있습니다.

2. 사용자 생성하기

사용자를 추가하기 위해 adduser 명령어를 사용할 수 있습니다. 이 명령어는 새로운 사용자를 생성하고, 필요한 홈 디렉토리와 초기 설정을 자동으로 수행합니다.

sudo adduser 새로운사용자이름

예제: 사용자의 추가

예를 들어, “john”이라는 사용자를 추가하려면 다음과 같이 입력합니다.

sudo adduser john

이 명령을 입력하면 비밀번호 설정, 사용자 정보 입력(이름, 전화번호 등) 과정이 진행됩니다.

3. 그룹 생성하기

그룹은 사용자 계정을 관리하는데 매우 유용합니다. 새로운 그룹을 생성하려면 addgroup 명령어를 사용합니다.

sudo addgroup 새로운그룹이름

예제: 그룹의 추가

“developers”라는 그룹을 추가하고 싶다면 다음과 같이 입력합니다.

sudo addgroup developers

4. 사용자 그룹에 추가하기

기존 사용자 계정을 새로운 그룹에 추가하려면 usermod 명령어를 사용합니다.

sudo usermod -aG 그룹이름 사용자이름

예제: 사용자 그룹 추가

“john” 사용자를 “developers” 그룹에 추가하려면 다음과 같은 명령어를 입력합니다.

sudo usermod -aG developers john

5. 사용자 권한과 소유권 관리

리눅스 시스템에서 모든 파일과 디렉토리는 소유자와 그룹이라는 개념을 가집니다. 각 사용자마다 파일을 수정하거나 읽을 수 있는 권한이 다릅니다. chmod (파일 권한 변경), chown (소유자 변경), chgrp (그룹 변경) 명령어를 사용할 수 있습니다.

예제: 파일 권한 변경하기

특정 파일의 읽기, 쓰기, 실행 권한을 변경하려면 다음과 같이 입력합니다.

sudo chmod 770 파일명

여기서 770는 소유자에게는 모든 권한을 부여하고, 그룹에는 읽기와 쓰기 권한을 부여하며, 다른 사용자에게는 권한을 부여하지 않겠다는 의미입니다.

6. 접근 제한 설정하기

Ubuntu에서 사용자 및 그룹의 접근을 제한하는 방법 중 하나는 권한을 적절히 설정하는 것입니다. 사용자가 어떤 파일이나 디렉토리에 접근할 수 있는지 결정하는 것이 중요합니다.

sudo chmod 750 디렉토리명

이 명령어는 소유자는 모든 권한을 가지만, 그룹 사용자는 읽기 및 실행 권한만 갖고 다른 사용자는 접근을 전혀 못 하게 됩니다.

예제: 특정 디렉토리에 대한 접근 제한

“project”라는 디렉토리에 대해 접근을 제한하고 싶다면 아래와 같이 명령어를 실행합니다.

sudo chmod 750 /path/to/project

7. sudo 사용자 관리

sudo 명령어는 시스템의 관리자 권한을 일시적으로 부여합니다. 특정 사용자에게 sudo 권한을 부여하려면 그 사용자를 sudores 그룹에 추가합니다.

sudo usermod -aG sudo 사용자이름

예제: sudo 권한 부여

“john” 사용자에게 sudo 권한을 부여하려면 아래와 같이 입력합니다.

sudo usermod -aG sudo john

8. 그룹 내 접근 권한 조정

그룹 단위로 접근 권한을 조정하는 것은 대규모 시스템 관리에서 특히 중요합니다. 이를 통해 특정 그룹 사용자만 파일이나 디렉토리에 접근할 수 있도록 설정할 수 있습니다.

필요에 따라 그룹별로 파일을 소유하게 하고, 해당 그룹에 사용자들을 추가하여 관리하는 것이 유용합니다. 또한 setgid 비트를 설정하면, 그 디렉토리에서 생성된 파일은 자동으로 해당 디렉토리의 그룹 소속으로 생성됩니다.

예제: setgid 비트 설정

“projects”라는 디렉토리에 setgid 비트를 설정하려면 다음과 같은 명령어를 사용합니다.

sudo chmod g+s /path/to/projects

9. 사용자 및 그룹 삭제하기

불필요한 사용자나 그룹은 삭제하여 시스템을 정리할 수 있습니다. deluserdelgroup 명령어를 사용합니다.

sudo deluser 사용자이름
sudo delgroup 그룹이름

예제: 사용자 및 그룹 삭제

“john” 사용자를 삭제하려면 다음과 같이 입력합니다.

sudo deluser john

“developers” 그룹을 삭제하려면 아래와 같이 입력합니다.

sudo delgroup developers

10. 최종 요약 및 모범 사례

Ubuntu 서버의 사용자와 그룹 관리는 시스템 보안 및 데이터 무결성에 매우 중요합니다. 각 사용자의 권한을 정기적으로 검토하여 불필요한 접근을 차단하고, 원치 않는 사용자나 그룹이 제거되도록 관리하는 것이 필요합니다.

  • 최소 권한 원칙을 준수하여 모든 사용자에게 필요 이상의 접근을 부여하지 않도록 합니다.
  • 정기적으로 사용자와 그룹을 검토하여 불필요한 계정을 삭제합니다.
  • 로그 파일을 검토하여 비정상적인 행동을 모니터링합니다.

이 문서를 통해 Ubuntu 서버에서 사용자 및 그룹을 효과적으로 관리하는 방법을 이해했기를 바랍니다. 이러한 기술을 습득하면 서버의 보안성을 한층 높일 수 있습니다.