리눅스 사용자 추가 완벽 가이드

LightNode
작성자 LightNode ·

소개

리눅스는 서버 환경, 개발 및 다양한 IT 인프라에서 널리 사용되는 다재다능하고 강력한 운영체제입니다. 리눅스 관리의 핵심 중 하나는 사용자 관리로, 사용자 계정을 생성, 수정, 삭제하는 작업을 포함합니다. 적절한 사용자 관리는 시스템 보안, 자원 할당의 체계화, 효율적인 시스템 운영을 보장합니다.

이 글에서는 리눅스에서 사용자를 추가하는 다양한 측면을 다루며, 자세한 단계, 명령어, 모범 사례를 제공합니다. 이 가이드를 마치면 리눅스 환경에서 사용자 계정을 효과적으로 관리하는 방법을 확실히 이해하게 될 것입니다.

리눅스 사용자 관리 이해하기

사용자 관리는 리눅스 시스템 관리의 기본적인 부분입니다. 각 사용자 계정은 특정 권한과 접근 권한을 가진 개인 또는 서비스를 나타냅니다. 이러한 계정을 적절히 관리하는 것은 시스템 보안과 조직 유지에 매우 중요합니다.

사용자 계정과 역할

리눅스에서 사용자 계정은 시스템 접근을 제어하는 데 사용됩니다. 주요 사용자 계정 유형은 두 가지입니다:

  1. 루트 사용자: 루트 사용자는 시스템에서 가장 높은 권한을 가지며 모든 작업을 수행할 수 있습니다. 관리 작업에 사용되며 모든 파일과 명령어에 무제한 접근 권한을 가집니다.
  2. 일반 사용자: 일반 사용자 계정은 제한된 권한을 가지며 일상적인 작업에 주로 사용됩니다. 명시적으로 권한이 부여되지 않는 한 관리 기능을 수행할 수 없습니다.

루트 사용자와 일반 사용자의 차이점

  • 루트 사용자: 슈퍼유저라고도 불리는 루트 계정은 시스템을 완전히 제어할 수 있습니다. 시스템 파일 수정, 시스템 설정 변경, 다른 사용자 계정 관리가 가능합니다. 강력한 권한 때문에 의도치 않은 시스템 손상을 방지하기 위해 신중히 사용해야 합니다.
  • 일반 사용자: 일상 사용을 위해 설계된 계정으로 제한된 권한을 가집니다. 파일 생성, 프로그램 실행, 자신의 디렉터리 접근은 가능하지만 시스템 전체 설정이나 다른 사용자 파일 변경은 불가능합니다.

적절한 사용자 관리의 중요성

적절한 사용자 관리는 다음과 같은 이유로 중요합니다:

  • 보안: 사용자 접근과 권한을 제어하여 민감한 데이터와 중요한 시스템 구성요소에 대한 무단 접근을 방지합니다.
  • 조직화: 사용자 계정은 파일과 프로세스를 체계적으로 관리하여 자원 관리와 문제 해결을 용이하게 합니다.
  • 책임성: 각 사용자 계정은 추적 및 모니터링이 가능하여 시스템에서 수행된 작업에 대한 책임을 명확히 합니다.

사용자 추가 준비하기

리눅스 시스템에 새 사용자를 추가하기 전에 필요한 권한이 있는지 확인하고 현재 사용자 구성을 이해하는 것이 중요합니다. 이 섹션에서는 사용자 추가를 위한 준비 단계를 안내합니다.

루트 사용자로 로그인하거나 Sudo 사용하기

리눅스에서 사용자를 추가하려면 루트 권한이 필요합니다. 루트 사용자로 직접 로그인하거나 일반 사용자 계정에서 sudo 명령어를 사용해 관리 작업을 실행할 수 있습니다.

  • 루트 사용자로 로그인하기: 루트 계정에 직접 접근할 수 있다면 다음 명령어로 루트 사용자로 전환할 수 있습니다:

    su -
    

    프롬프트가 뜨면 루트 비밀번호를 입력하세요.

  • Sudo 사용하기: 사용자 계정에 sudo 권한이 있다면 명령어 앞에 sudo를 붙여 루트 권한으로 실행할 수 있습니다. 예:

    sudo command
    

    명령어 실행 확인을 위해 사용자 비밀번호를 입력해야 합니다.

시스템의 현재 사용자 확인하기

새 사용자를 추가하기 전에 시스템에 존재하는 사용자를 확인하여 충돌을 방지하고 현재 사용자 구성을 이해하는 것이 좋습니다. /etc/passwd 파일을 확인하면 사용자 목록을 볼 수 있습니다:

cat /etc/passwd

이 명령어는 시스템의 모든 사용자 계정과 관련 정보를 표시합니다.

/etc/passwd 파일의 각 줄은 사용자 계정을 나타내며 다음 형식을 따릅니다:

username:x:UID:GID:comment:home_directory:shell
  • username: 사용자 이름
  • x: 비밀번호 자리 표시자 (실제 비밀번호는 /etc/shadow에 저장됨)
  • UID: 사용자 ID 번호
  • GID: 그룹 ID 번호
  • comment: 사용자에 대한 추가 정보(예: 전체 이름)
  • home_directory: 사용자의 홈 디렉터리 경로
  • shell: 기본 셸

새 사용자 추가하기

리눅스에서 새 사용자를 추가하는 것은 useradd 명령어로 간단히 할 수 있습니다. 이 섹션에서는 새 사용자 계정을 생성하는 기본 구문과 옵션을 다룹니다.

useradd 명령어 소개

useradd 명령어는 새 사용자 계정을 생성하는 데 사용됩니다. 홈 디렉터리, 셸, 사용자 정보 등 다양한 옵션을 지정할 수 있습니다.

useradd 기본 구문과 옵션

useradd 명령어의 기본 구문은 다음과 같습니다:

useradd [options] username

주로 사용하는 옵션은 다음과 같습니다:

  • -m: 홈 디렉터리가 없으면 생성합니다.
  • -d: 사용자의 홈 디렉터리 경로를 지정합니다.
  • -s: 사용자의 기본 셸을 지정합니다.
  • -c: 사용자에 대한 코멘트(예: 전체 이름)를 추가합니다.
  • -G: 추가 그룹을 지정합니다.

새 사용자 추가 예제

newuser라는 새 사용자를 홈 디렉터리와 지정된 셸과 함께 추가해 보겠습니다:

sudo useradd -m -d /home/newuser -s /bin/bash -c "New User" newuser

이 예제에서:

  • -m: /home/newuser 홈 디렉터리를 생성합니다.
  • -d /home/newuser: 홈 디렉터리 경로를 지정합니다.
  • -s /bin/bash: 기본 셸을 Bash로 설정합니다.
  • -c "New User": 전체 이름 "New User"를 코멘트로 추가합니다.
  • newuser: 새 계정의 사용자 이름입니다.

이 명령어 실행 후 새 사용자 계정이 생성되지만 비밀번호는 아직 설정되지 않았습니다. 다음 섹션에서 새 사용자의 비밀번호 설정 방법을 다룹니다.

새 사용자 비밀번호 설정하기

각 사용자에게 강력한 비밀번호를 설정하는 것은 시스템 보안을 유지하는 데 매우 중요합니다. 이 섹션에서는 passwd 명령어를 사용해 새 사용자의 비밀번호를 설정하는 방법을 설명합니다.

passwd 명령어로 비밀번호 설정하기

사용자의 비밀번호를 설정하거나 변경하려면 passwd 명령어 뒤에 사용자 이름을 입력합니다. 새 비밀번호를 입력하고 확인하라는 메시지가 표시됩니다.

sudo passwd newuser

프롬프트에 따라 비밀번호를 입력하고 확인하세요. 비밀번호는 강력하고 시스템 보안 정책을 충족해야 합니다.

비밀번호가 설정되면 새 사용자 계정이 완전히 활성화됩니다. 다음 섹션에서는 사용자 세부 정보 추가 및 사용자 그룹 관리와 같은 추가 사용자 관리 작업을 살펴봅니다.

사용자 세부 정보 추가하기

사용자 계정에 추가 정보를 입력하면 시스템 관리와 사용자 식별에 도움이 됩니다. chfn(change finger information) 명령어는 전체 이름, 사무실 번호, 업무 전화번호, 집 전화번호 등 사용자 정보를 수정하는 데 사용됩니다.

chfn 명령어 사용법

chfn 명령어로 사용자의 개인 정보를 업데이트할 수 있습니다. 구문은 다음과 같습니다:

sudo chfn newuser

명령어 실행 시 다음 정보를 입력하라는 메시지가 표시됩니다:

  • 전체 이름
  • 방 번호
  • 업무 전화번호
  • 집 전화번호
  • 기타

옵션을 사용해 직접 지정할 수도 있습니다. 예를 들어:

sudo chfn -f "New User" -r "123" -w "123-456-7890" -h "098-765-4321" newuser

이 예제에서:

  • -f "New User": 전체 이름을 "New User"로 설정
  • -r "123": 방 번호를 "123"으로 설정
  • -w "123-456-7890": 업무 전화번호 설정
  • -h "098-765-4321": 집 전화번호 설정

사용자 그룹 관리

리눅스에서 그룹은 사용자 권한을 조직하고 관리하는 데 사용됩니다. 각 사용자는 최소 하나의 그룹에 속하며, 추가 그룹을 할당해 자원 접근을 더 효과적으로 관리할 수 있습니다.

기본 그룹과 보조 그룹 설명

  • 기본 그룹: 각 사용자는 하나의 기본 그룹을 가지며, 사용자 생성 시 지정됩니다. 사용자가 생성하는 파일은 이 그룹에 속합니다.
  • 보조 그룹: 사용자는 여러 보조 그룹에 속할 수 있으며, 추가 권한과 자원 접근 권한을 제공합니다.

usermod로 사용자 그룹에 추가하기

usermod 명령어는 사용자 계정을 수정하는 데 사용되며, -aG 옵션은 사용자를 지정한 그룹에 추가하면서 기존 그룹에서 제거하지 않습니다.

사용자를 그룹에 추가하는 구문은 다음과 같습니다:

sudo usermod -aG groupname newuser

예를 들어, newuser를 관리자 권한을 부여하는 sudo 그룹에 추가하려면:

sudo usermod -aG sudo newuser

여러 그룹에 추가하기

쉼표로 구분된 그룹 목록을 지정해 사용자를 여러 그룹에 추가할 수 있습니다:

sudo usermod -aG group1,group2,group3 newuser

이 명령어는 newusergroup1, group2, group3에 추가합니다.

사용자 그룹 확인하기

사용자가 속한 그룹을 확인하려면 groups 명령어 뒤에 사용자 이름을 입력합니다:

groups newuser

이 명령어는 newuser가 속한 그룹 목록을 표시합니다.

새 그룹 생성하기

사용자를 추가하기 전에 새 그룹을 생성해야 할 경우 groupadd 명령어를 사용합니다:

sudo groupadd groupname

예를 들어, developers라는 새 그룹을 생성하려면:

sudo groupadd developers

사용자 홈 디렉터리 및 셸 설정

새 사용자를 생성할 때 홈 디렉터리와 기본 셸을 적절히 설정하는 것이 중요합니다. 홈 디렉터리는 사용자의 개인 파일과 설정이 저장되는 공간이며, 셸은 사용자가 명령어를 입력하는 인터페이스입니다.

홈 디렉터리와 셸의 중요성

  • 홈 디렉터리: 각 사용자의 개인 공간으로, 파일, 설정, 환경 설정을 저장합니다. 일반적으로 /home/username 경로에 위치합니다.
  • : 사용자가 운영체제와 상호작용하는 명령줄 인터페이스입니다. 일반적인 셸로는 Bash, Zsh 등이 있습니다.

사용자 생성 시 홈 디렉터리와 셸 지정하기

useradd 명령어에서 -d 옵션으로 홈 디렉터리를, -s 옵션으로 셸을 지정할 수 있습니다.

예제: 사용자 지정 홈 디렉터리와 셸로 사용자 생성하기

sudo useradd -m -d /custom/home/directory -s /bin/zsh -c "User with Custom Directory and Shell" customuser

이 예제에서:

  • -m: 홈 디렉터리가 없으면 생성
  • -d /custom/home/directory: 사용자 홈 디렉터리 경로 지정
  • -s /bin/zsh: 기본 셸을 Zsh로 설정
  • -c "User with Custom Directory and Shell": 전체 이름 코멘트 추가
  • customuser: 새 사용자 이름

이 명령어는 특정 요구에 맞춘 사용자 지정 홈 디렉터리와 셸을 가진 새 사용자를 생성합니다.

고급 사용자 관리

기본 사용자 생성 외에도 리눅스는 사용자를 더 효율적으로 관리할 수 있는 고급 도구와 명령어를 제공합니다. 이 섹션에서는 adduser 스크립트 사용, 사용자 쿼터 관리, 사용자 계정 잠금/해제 등 고급 작업을 다룹니다.

대화형 사용자 생성용 adduser 스크립트 사용하기

adduser 명령어는 친숙한 스크립트로, 새 사용자를 대화형으로 생성할 수 있게 도와줍니다. 전체 이름, 방 번호, 비밀번호 등 정보를 입력하도록 안내하여 초보자에게 편리합니다.

사용법:

sudo adduser newuser

추가 정보를 대화형으로 입력하라는 메시지가 표시되어 사용자 생성이 간편해집니다.

사용자 쿼터 및 권한 관리

사용자 쿼터는 사용자가 사용할 수 있는 디스크 공간이나 파일 수를 제한하는 데 사용됩니다. 이는 한 사용자가 시스템 자원을 과도하게 사용하는 것을 방지하는 데 유용합니다.

디스크 쿼터 설정하기

디스크 쿼터를 설정하려면 다음 단계를 따르세요:

  1. 쿼터 패키지 설치: 쿼터 패키지가 설치되어 있지 않다면 설치합니다.

    sudo apt-get install quota
    
  2. 파일시스템에 쿼터 활성화: /etc/fstab 파일을 편집하여 원하는 파일시스템에 usrquotagrpquota 옵션을 추가합니다.

    /dev/sda1 / ext4 defaults,usrquota,grpquota 0 1
    
  3. 파일시스템 재마운트: 변경 사항을 적용하기 위해 파일시스템을 재마운트합니다.

    sudo mount -o remount /
    
  4. 쿼터 파일 생성: quotacheck 명령어로 쿼터 파일을 생성합니다.

    sudo quotacheck -cum /
    
  5. 사용자 쿼터 설정: edquota 명령어로 특정 사용자의 쿼터를 편집합니다.

    sudo edquota newuser
    
  6. 쿼터 활성화: quotaon 명령어로 쿼터를 활성화합니다.

    sudo quotaon /
    

사용자 계정 잠금 및 해제

사용자 계정을 삭제하지 않고 일시적으로 비활성화해야 할 때가 있습니다. 이때 계정을 잠글 수 있습니다.

  • 계정 잠금: passwd 명령어에 -l 옵션을 사용합니다.

    sudo passwd -l newuser
    
  • 계정 잠금 해제: passwd 명령어에 -u 옵션을 사용합니다.

    sudo passwd -u newuser
    

사용자 삭제하기

더 이상 필요 없는 사용자 계정은 자원을 확보하고 시스템 보안을 위해 삭제해야 합니다. 이 섹션에서는 사용자와 관련 파일을 안전하게 삭제하는 방법을 다룹니다.

사용자 및 홈 디렉터리 안전하게 삭제하기

사용자 계정을 삭제하려면 userdel 명령어를 사용합니다. -r 옵션을 추가하면 사용자의 홈 디렉터리와 메일 스풀도 함께 삭제됩니다.

사용자 삭제 예제

sudo userdel newuser

사용자 및 홈 디렉터리 삭제 예제

sudo userdel -r newuser

모범 사례 및 보안 고려사항

적절한 사용자 관리는 계정 생성과 삭제를 넘어 정기적인 감사, 보안 정책 적용, 사용자 활동 모니터링을 포함합니다. 이 섹션에서는 안전하고 체계적인 시스템 유지를 위한 모범 사례를 제공합니다.

정기적인 사용자 계정 감사

  • 사용자 계정 검토: /etc/passwd/etc/group 파일을 주기적으로 검토하여 모든 계정이 유효하고 필요한지 확인합니다.
  • 비활성 계정 확인: 오랜 기간 사용하지 않은 계정을 식별하고 비활성화합니다.

비밀번호 정책 적용

  • 강력한 비밀번호: 복잡성 요구사항과 만료 정책을 설정하여 강력한 비밀번호 사용을 강제합니다.
  • 비밀번호 만료 설정: chage 명령어로 비밀번호 만료 정책을 설정합니다.
    sudo chage -M 90 newuser  # 90일 후 비밀번호 만료 설정
    

사용자 활동 및 접근 모니터링

  • 로그 모니터링: /var/log/auth.log 같은 로그 파일을 정기적으로 확인하여 사용자 로그인 활동을 추적하고 의심스러운 행동을 탐지합니다.
  • 접근 제어: pam_tally2 같은 도구를 사용해 로그인 실패 횟수를 제한하고 너무 많은 실패 시 계정을 잠급니다.

추가 보안 조치

  • 이중 인증(2FA): 추가 보안을 위해 이중 인증을 구현합니다.
  • Sudo 접근 제어: sudo 사용을 제한하고 모니터링하여 신뢰할 수 있는 사용자만 관리자 권한을 갖도록 합니다.

Linux Add Users

FAQ

리눅스에서 새 사용자를 어떻게 생성하나요?

useradd 명령어 뒤에 사용자 이름을 입력하여 새 사용자를 생성합니다. 예:

sudo useradd -m -s /bin/bash newuser

이 명령어는 홈 디렉터리와 기본 셸이 Bash인 새 사용자를 생성합니다.

새 사용자 비밀번호는 어떻게 설정하나요?

passwd 명령어 뒤에 사용자 이름을 입력하여 비밀번호를 설정합니다:

sudo passwd newuser

비밀번호를 입력하고 확인하라는 메시지가 표시됩니다.

사용자를 그룹에 추가하려면 어떻게 하나요?

usermod 명령어에 -aG 옵션을 사용합니다:

sudo usermod -aG groupname newuser

리눅스에서 사용자를 어떻게 삭제하나요?

userdel 명령어를 사용합니다. 홈 디렉터리도 삭제하려면 -r 옵션을 추가하세요:

sudo userdel -r newuser

useraddadduser의 차이점은 무엇인가요?

  • useradd는 저수준 명령어로 사용자를 추가합니다.
  • adduseruseradd를 기반으로 하지만 더 친숙하고 대화형으로 사용자 생성 과정을 제공합니다.

사용자의 기본 셸을 어떻게 변경하나요?

chsh 명령어를 사용합니다:

sudo chsh -s /bin/zsh newuser

또는 usermod 명령어를 사용할 수도 있습니다:

sudo usermod -s /bin/zsh newuser

사용자가 속한 그룹을 어떻게 확인하나요?

groups 명령어 뒤에 사용자 이름을 입력합니다:

groups newuser

사용자 계정을 잠그고 해제하는 방법은?

  • 계정 잠금:

    sudo passwd -l newuser
    
  • 계정 잠금 해제:

    sudo passwd -u newuser
    

새 그룹을 어떻게 생성하나요?

groupadd 명령어 뒤에 그룹 이름을 입력합니다:

sudo groupadd groupname

한 번에 여러 사용자를 그룹에 추가하려면?

쉼표로 구분된 사용자 목록을 usermod 명령어에 지정합니다:

sudo usermod -aG groupname user1,user2,user3

사용자 비밀번호 정책을 어떻게 적용하나요?

chage 명령어로 비밀번호 만료 정책을 설정합니다:

sudo chage -M 90 newuser

이 명령어는 비밀번호가 90일 후 만료되도록 설정합니다.

특정 UID와 GID를 가진 사용자를 생성하려면?

useradd 명령어에 -u-g 옵션을 사용합니다:

sudo useradd -u 1001 -g 1001 -m -s /bin/bash customuser

이 명령어는 UID 1001, GID 1001을 가진 사용자를 생성합니다.

사용자에게 sudo 권한을 부여하려면?

usermod 명령어로 사용자를 sudo 그룹에 추가합니다:

sudo usermod -aG sudo newuser

일부 배포판에서는 그룹명이 wheel일 수 있습니다:

sudo usermod -aG wheel newuser

리눅스 시스템의 모든 사용자를 어떻게 확인하나요?

/etc/passwd 파일을 확인합니다:

cat /etc/passwd

각 줄이 하나의 사용자 계정을 나타냅니다.

사용자 정보(전체 이름, 전화번호 등)를 어떻게 변경하나요?

chfn 명령어를 사용합니다:

sudo chfn newuser

프롬프트에 따라 새 정보를 입력하세요.