[Linux] 사용자 계정 및 그룹 관리 가이드

서쿠·2024년 1월 23일
1

리눅스

목록 보기
2/4
post-thumbnail
post-custom-banner

Linux 사용자 계정 및 그룹 관리 가이드

리눅스에서 사용자 계정을 관리하는 것은 시스템 보안과 접근 제어에 매우 중요합니다. 이 글에서는 계정 생성, 삭제, 권한 부여, 그룹 관리 등 계정과 관련된 다양한 명령어와 실습 가능한 스니펫을 함께 알아보겠습니다.


1. 사용자 계정 추가

새로운 사용자 계정을 추가하는 명령어입니다.

  • 이 명령어는 홈 디렉토리와 기본 설정 파일(.bashrc 등)을 자동으로 생성합니다.
# 사용자 계정 추가
sudo adduser [새 사용자 이름]

예시:

sudo adduser newuser

2. sudo 권한 부여

  • 새 사용자에게 sudo 권한을 부여하려면 visudo 명령어를 사용하여 sudoers 파일을 편집합니다.
# sudoers 파일 열기
sudo visudo
  • visudo 파일에서 아래와 같은 형식으로 새 사용자를 추가합니다:
[새 사용자 이름] ALL=(ALL:ALL) ALL

예시 추가 라인:

newuser ALL=(ALL:ALL) ALL

(참고) visudo 명령을 사용하지 않고 visudoers 파일을 직접 수정할 수는 있지만, 구문 오류 발생 시 sudo 명령 자체가 정상 작동하지 않을 위험이 큽니다. 만약 꼭 필요하다면, 아래와 같이 진행할 수 있습니다.

  • vi 명령을 사용하여 sudoers 파일 직접 편집하기 (비추천)

    1. sudoers 파일 열기 :

      • vi 편집기를 사용하여 직접 sudoers 파일을 엽니다.
      sudo vi /etc/sudoers
    2. 사용자 권한 추가 :

      • 위와 동일한 형식으로 사용자를 추가합니다.
      newuser ALL=(ALL:ALL) ALL
    3. 특정 명령에 대한 sudo 권한 부여 :

      • 특정 명령어에 대해 비밀번호 없이 실행하도록 설정할 수도 있습니다.
      newuser ALL=(ALL) NOPASSWD: /usr/sbin/reboot
    4. 파일 저장 및 종료 :

      • 편집을 완료한 후 :wq 명령으로 저장하고 종료합니다.

⚠️ 주의: vi로 직접 sudoers 파일을 편집하면 구문 오류가 발생할 위험이 크며, 이 경우 sudo 명령이 제대로 작동하지 않을 수 있습니다. 이를 복구하려면 구문 오류를 수정해야 하므로 복잡한 상황이 발생할 수 있습니다. 항상 visudo 명령을 사용하는 것이 좋습니다.


3. 사용자 계정 삭제

계정을 삭제할 때는 주의가 필요합니다.

  • 기본적으로 userdel 명령어는 사용자의 홈 디렉토리와 메일 스풀을 삭제하지 않습니다.
# 사용자 계정 삭제
sudo userdel [삭제할 사용자 이름]

예시:

sudo userdel olduser

홈 디렉토리와 메일 스풀을 함께 삭제하려면 -r 옵션을 사용합니다.

sudo userdel -r [삭제할 사용자 이름]

예시:

sudo userdel -r olduser

4. 사용자 계정 정보 조회

사용자의 UID, GID, 소속 그룹 정보를 확인할 수 있습니다.

id [사용자 이름]

예시:

id newuser

5. 사용자 비밀번호 설정 및 변경

새 계정에 비밀번호를 설정하거나 기존 계정의 비밀번호를 변경할 수 있습니다.

sudo passwd [사용자 이름]

예시:

sudo passwd newuser

6. 사용자 그룹 관리

사용자 그룹에 추가

특정 그룹에 사용자를 추가할 수 있습니다.

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

예시:

sudo usermod -aG sudo newuser

그룹 생성 및 삭제

새 그룹을 추가하거나 기존 그룹을 삭제할 수 있습니다.

# 그룹 추가
sudo groupadd [그룹 이름]

# 그룹 삭제
sudo groupdel [그룹 이름]

예시:

sudo groupadd developers
sudo groupdel developers

7. 사용자 홈 디렉토리 및 로그인 쉘 변경

사용자의 홈 디렉토리나 로그인 쉘을 변경할 수 있습니다.

# 홈 디렉토리 변경
sudo usermod -d [새 홈 디렉토리 경로] [사용자 이름]

# 로그인 쉘 변경
sudo usermod -s [새 쉘 경로] [사용자 이름]

예시:

sudo usermod -d /home/newdirectory newuser
sudo usermod -s /bin/zsh newuser

8. 특정 명령어만 sudo 없이 실행 허용하기

특정 명령어에 대해서만 sudo 없이 실행 권한을 부여할 수 있습니다. 이는 visudo 파일을 통해 설정합니다.

# 특정 명령어만 비밀번호 없이 실행 권한 부여
[사용자 이름] ALL=(ALL) NOPASSWD: /usr/bin/특정_명령어

예시 (재부팅 명령어에 sudo 없이 접근 가능하게 설정):

newuser ALL=(ALL) NOPASSWD: /usr/sbin/reboot

9. 사용자 계정 잠금 및 잠금 해제

일시적으로 사용자 계정을 잠그거나 잠금 해제할 수 있습니다.

# 계정 잠금
sudo usermod -L [사용자 이름]

# 계정 잠금 해제
sudo usermod -U [사용자 이름]

예시:

sudo usermod -L newuser
sudo usermod -U newuser

10. 사용자 계정 만료일 설정

계정 만료일을 설정하여 일정 기간 후 계정 접근을 차단할 수 있습니다.

sudo usermod -e YYYY-MM-DD [사용자 이름]

예시 (2024년 12월 31일 만료):

sudo usermod -e 2024-12-31 newuser

11. 로그인 기록 확인

last 명령어를 사용하여 사용자의 로그인 기록을 확인할 수 있습니다. 이는 보안 모니터링에 유용합니다.

last [사용자 이름]

예시:

last newuser

12. 기본 그룹 및 추가 그룹 설정

사용자를 새로 추가할 때 기본 그룹과 추가 그룹을 설정할 수 있습니다.

# 기본 그룹 지정
sudo useradd -g [기본 그룹 이름] [사용자 이름]

# 추가 그룹 지정
sudo usermod -aG [추가 그룹 이름] [사용자 이름]

예시:

sudo useradd -g developers newuser
sudo usermod -aG docker newuser

13. 사용자 환경 설정 파일 복사

새 사용자가 기존 사용자와 동일한 환경 설정을 적용받게 하려면 .bashrc 또는 .profile 파일을 새 사용자 디렉토리에 복사합니다.

sudo cp /etc/skel/.bashrc /home/[새 사용자 이름]/
sudo cp /etc/skel/.profile /home/[새 사용자 이름]/

예시:

sudo cp /etc/skel/.bashrc /home/newuser/
sudo cp /etc/skel/.profile /home/newuser/

이 가이드를 참고하여 리눅스 시스템에서 사용자 계정을 보다 효율적이고 안전하게 관리할 수 있습니다. 각 명령어를 테스트하고 이해하여 시스템을 최적화해 보세요!

profile
Always be passionate ✨
post-custom-banner

0개의 댓글