기술 가이드

Ubuntu에서 셸 사용자 추가 및 삭제

6 min read 시스템 관리 업데이트됨 19 Oct 2025
Ubuntu 셸 사용자 추가/삭제 가이드
Ubuntu 셸 사용자 추가/삭제 가이드

목적과 범위

이 문서는 Ubuntu에서 셸 사용자 계정을 생성하고 삭제하는 실무 절차를 다룹니다. 대상은 시스템 관리자, 데브옵스, 헬프데스크 기술자입니다. 기본 명령어 사용법과 보안 권장사항, 검증 체크리스트, 롤백 절차 및 자주 발생하는 오류와 해결책을 포함합니다.

정의: 셸 사용자 — 시스템에 로그인해 셸(터미널)을 통해 명령을 실행할 수 있는 계정.

핵심 개념 한 줄 정의

  • adduser: Ubuntu에서 상위 수준의 사용자 생성 스크립트. 사용자 친화적.
  • useradd: 유닉스 전통의 저수준 사용자 생성 도구. 세부 옵션 필요.
  • deluser / userdel: 사용자 삭제 명령.
  • sudo: 비특권 계정에 임시 관리자 권한을 부여하는 메커니즘.

기본 명령 요약

  • 사용자 추가(권장): sudo adduser username
  • 사용자 추가(SSH 키 설정 포함): sudo adduser username && sudo mkdir -p /home/username/.ssh && sudo sh -c ‘cat > /home/username/.ssh/authorized_keys’ && sudo chown -R username:username /home/username && sudo chmod 700 /home/username/.ssh && sudo chmod 600 /home/username/.ssh/authorized_keys
  • 사용자에 sudo 권한 부여: sudo usermod -aG sudo username
  • 사용자 삭제(홈 남김): sudo deluser username
  • 사용자 삭제(홈 포함): sudo deluser –remove-home username
  • 대안(저수준 삭제): sudo userdel -r username
  • 계정 잠금: sudo usermod -L username 또는 sudo passwd -l username
  • 계정 만료 설정: sudo chage -E YYYY-MM-DD username

새 사용자 추가 단계별 가이드

1) 사전 준비

  • 필요한 정보 수집: 사용자 이름, 실명(옵션), SSH 공개키(권장), 필요한 그룹(예: sudo, docker)과 셸(예: /bin/bash).
  • 정책 확인: 비밀번호 복잡성, 홈 디렉터리 위치, 계정 템플릿(/etc/skel) 적용 여부.

2) 간단한 추가 (대부분 상황에서 권장)

  1. 루트이거나 sudo 가능한 계정으로 로그인합니다.
  2. 다음을 실행합니다:
sudo adduser newuser
  1. 비밀번호를 묻는 프롬프트에 강력한 비밀번호를 입력합니다. 추가 정보(Full Name 등)는 빈칸으로 넘겨도 됩니다.
  2. 필요하면 새 사용자를 sudo 그룹에 추가합니다:
sudo usermod -aG sudo newuser

설명: adduser는 useradd보다 상호작용적이며 홈 디렉터리와 초기 설정을 자동으로 처리합니다.

3) SSH 전용(비밀번호 없음) 사용자 생성

SSH 키만 허용하는 계정은 원격 로그인 보안에 유리합니다.

sudo adduser --disabled-password --gecos "" newuser
sudo mkdir -p /home/newuser/.ssh
sudo sh -c 'cat > /home/newuser/.ssh/authorized_keys' <<'KEY'
ssh-rsa AAAA... user@example
KEY
sudo chown -R newuser:newuser /home/newuser
sudo chmod 700 /home/newuser/.ssh
sudo chmod 600 /home/newuser/.ssh/authorized_keys

포인트: –disabled-password는 로컬 비밀번호 로그인을 비활성화합니다. SSH 키를 넣어야 원격 접속이 가능합니다.

4) 계정 템플릿과 셸 지정

  • 기본 셸을 /bin/bash 대신 /bin/zsh 등으로 바꾸려면:
sudo usermod -s /bin/zsh newuser
  • /etc/skel을 이용해 기본 파일을 사용자 홈으로 복사합니다(보통 adduser가 자동 처리).

5) 테스트 및 검증

  • 새 사용자로 전환:
su - newuser

또는 SSH로 접속해 로그인 테스트를 수행합니다. 파일 권한, 홈 디렉터리 소유권, 필요한 그룹 멤버십을 확인하세요.

사용자 삭제 단계별 가이드

삭제는 영구적이므로 신중해야 합니다. 아래는 안전한 삭제 절차입니다.

1) 사전 점검 및 백업

  • 사용자 소유 파일 검색(시스템 전체):
sudo find / -uid $(id -u username) -print
  • 홈 디렉터리, 메일 스풀, 애플리케이션 데이터 백업 권장:
sudo tar -czf /root/backup-username-home.tar.gz /home/username
  • 사용자의 현재 프로세스 확인 및 종료:
sudo pkill -u username

2) 삭제 명령

  • 홈을 남기고 계정만 삭제:
sudo deluser username
  • 홈을 포함해 삭제:
sudo deluser --remove-home username

대안(저수준 도구):

sudo userdel -r username

주의: userdel 대신 deluser 쓰는 것이 Ubuntu 관습입니다. deluser가 더 친절하게 동작합니다.

3) sudoers와 권한 정리

  • visudo로 sudoers 파일을 편집해 삭제한 사용자의 행을 제거합니다:
sudo visudo

파일에서 다음과 같은 행을 삭제하거나 주석 처리하세요:

newuser ALL=(ALL:ALL) ALL
  • /etc/sudoers.d/ 디렉터리도 확인하세요. 해당 이름으로 파일이 있을 수 있습니다.

4) 소유권 없는 파일 처리

삭제 후 uid가 남아있는 파일(예: 백업, 로그)을 찾아 소유자를 변경하거나 기록용으로 보관하세요.

sudo find / -nouser -print
sudo chown root:root /path/to/file

5) 잠금 또는 일시 비활성화(완전 삭제가 아닐 때)

  • 계정을 비활성화하려면 잠금 사용:
sudo usermod -L username
sudo passwd -l username
  • 만료일 설정:
sudo chage -E 2025-12-31 username

보안 권장사항 및 모범 사례

  • 최소 권한 원칙을 따르세요. 사용자에게 꼭 필요한 권한만 부여합니다.
  • sudo 대신 그룹 기반 권한(예: docker 그룹) 사용을 검토하세요.
  • SSH 키 인증을 기본으로 사용하고 비밀번호 로그인을 제한하세요(파일 /etc/ssh/sshd_config에서 PasswordAuthentication no).
  • 주기적으로 /etc/sudoers.d/와 /etc/passwd를 감시하여 미등록 권한을 탐지하세요.
  • 사용자를 삭제하기 전에 반드시 데이터 백업을 수행하세요.

검사 및 수락 기준

  • 새 사용자로 로그인하여 셸 진입이 성공한다.
  • 홈 디렉터리의 소유자가 올바르다(chown username:username).
  • sudo 권한이 필요한 경우 sudo -l로 확인한다.
  • 삭제 시 사용자의 프로세스가 모두 종료되었다.
  • 삭제 후 sudoers 파일 및 /etc/sudoers.d/에 해당 항목이 남지 않았다.

역할별 체크리스트

시스템 관리자

  • 사용자 정보(이름, 팀, 권한)를 기록
  • 홈과 중요 데이터를 백업
  • sudoers 정리 및 /etc/sudoers.d 확인
  • 시스템 전체에서 소유 파일 검색

데브옵스

  • SSH 키 배포 자동화 스크립트 적용
  • CI/CD 접근 권한 조정
  • 관련 그룹 멤버십 검토

헬프데스크

  • 계정 잠금/재활성화 방법 숙지
  • 비밀번호 초기화 절차 문서화
  • 사용자 요청 기록 유지

테스트 케이스 및 수락 기준 예시

  • TC1: adduser로 사용자 생성 후 su - username으로 전환하면 홈으로 이동하고 쉘이 정상 동작해야 함.
  • TC2: –disabled-password로 생성한 계정에는 비밀번호 로그인 불가, SSH 키로만 접속 가능해야 함.
  • TC3: deluser –remove-home 실행 후 /home/username이 삭제되어야 함.
  • TC4: 삭제 후 sudo -l로 더 이상 sudo 권한이 없어야 함.

문제 해결(자주 발생하는 상황)

  • 로그인 실패: /var/log/auth.log에서 오류 확인.
  • 홈 디렉터리 권한 문제: chown -R username:username /home/username 수행.
  • 사용자 이름 충돌: 사용자 이름이 이미 존재하면 adduser가 실패. /etc/passwd를 확인.
  • 삭제 후 잔존 파일: find / -nouser -print로 확인, 적절히 처리.

대체 접근법 및 비교

  • adduser vs useradd: adduser는 Debian/Ubuntu 친화적이고 자동 설정이 많음. useradd는 더 저수준이며 스크립트화에 유리.
  • deluser vs userdel: deluser는 Debian 툴로 편리. userdel은 표준 유닉스 도구.
  • 계정 비활성화 vs 삭제: 비활성화는 데이터 보존이 필요할 때 안전. 삭제는 완전 제거가 필요할 때 사용.

소규모 운영 환경용 간단 SOP

  1. 요청 접수: 사용자명, 팀, 권한 목록 수집.
  2. adduser로 생성: sudo adduser username
  3. 권한 부여: 필요한 그룹에 추가(예: sudo, docker)
  4. SSH 키 등록: authorized_keys 등록
  5. 확인 기록: 계정 생성 로그를 중앙 기록 시스템에 남김
  6. 요청자에게 접속 정보 전달

롤백 및 인시던트 대응

  • 실수로 삭제했을 경우:
    1. 즉시 시스템 사용 중지(불필요한 쓰기 방지).
    2. /root/backup-username-home.tar.gz가 있다면 복원.
    3. 삭제된 uid의 파일을 찾아 복사.
    4. 계정 재생성 후 소유자 복원(chown).

의사결정 흐름도

flowchart TD
  A[요청: 사용자 추가/삭제?] -->|추가| B[SSH 키 있음?]
  B -->|예| C[adduser --disabled-password]
  B -->|아니오| D[adduser '비밀번호 설정']
  D --> E[필요 시 sudo 그룹 추가]
  A -->|삭제| F[데이터 백업 필요?]
  F -->|예| G[백업 수행]
  F -->|아니오| H[deluser --remove-home 실행]
  G --> H
  E --> I[테스트와 기록]
  H --> I

간단 용어집

  • 홈 디렉터리: 사용자의 개인 파일이 저장되는 /home/username 디렉터리.
  • UID: 시스템에서 사용자 계정을 식별하는 정수 식별자.
  • 스풀(mail spool): 시스템 메일이 저장되는 위치(예: /var/mail).

요약

  • adduser는 Ubuntu에서 사용자 생성 시 권장됩니다. SSH 키 사용을 권장하며 비밀번호 로그인을 제한하세요. 사용자 삭제 전에는 반드시 백업과 소유 파일 검사를 수행하고, sudoers 항목을 정리하세요. 계정 잠금은 삭제보다 안전한 대안입니다.

중요: 실제 삭제는 되돌릴 수 없습니다. 삭제 작업 전 반드시 백업을 수행하세요.

공유하기: X/Twitter Facebook LinkedIn Telegram
저자
편집

유사한 자료

아이폰 사운드 인식 사용법과 문제 해결
모바일 접근성

아이폰 사운드 인식 사용법과 문제 해결

Google Photos를 외장하드에 백업하는 방법
백업

Google Photos를 외장하드에 백업하는 방법

iPhone 홈 화면에 웹사이트 추가하는 방법
튜토리얼

iPhone 홈 화면에 웹사이트 추가하는 방법

Sora로 AI 영상 리믹스: 단계별 가이드
비디오 제작

Sora로 AI 영상 리믹스: 단계별 가이드

암호화폐 토큰 거래소 상장 가이드
암호화폐

암호화폐 토큰 거래소 상장 가이드

Windows Terminal 설정 백업 및 복원
튜토리얼

Windows Terminal 설정 백업 및 복원