웹사이트 검색

Linux에서 홈 디렉토리가 있는 사용자 계정을 삭제하는 방법


이 튜토리얼에서는 Linux 시스템에서 사용자 계정과 홈 디렉터리를 삭제하는 데 사용할 수 있는 단계를 안내해 드리겠습니다.

Linux 시스템에서 사용자 계정을 생성하고 관리하는 방법을 알아보려면 아래 링크에서 다음 문서를 읽어보세요.

  1. Linux에서 사용자 계정을 관리하기 위한 15가지 "useradd" 명령 예
  2. Linux에서 사용자 계정 이름을 변경/수정하기 위한 15가지 "usermod" 명령 예
  3. Linux에서 파일 권한으로 사용자 및 그룹을 관리하는 방법

Linux의 시스템 관리자는 사용자 계정이 오랫동안 휴면 상태가 되거나 사용자가 조직이나 회사를 떠나거나 기타 이유로 인해 사용자 계정을 제거해야 할 수도 있습니다.

Linux 시스템에서 사용자 계정을 제거할 때 홈 디렉터리를 제거하여 새 시스템 사용자나 기타 서비스를 위해 저장 장치의 공간을 확보하는 것도 중요합니다.

홈 디렉토리가 있는 사용자 계정 삭제/제거

1. 시연을 위해 먼저 내 시스템에 두 개의 사용자 계정(tecmint 사용자 및 linuxsay 사용자)을 홈 디렉토리에 생성하는 것부터 시작하겠습니다. adduser 명령을 사용하여 각각 /home/tecmint/home/linusay.

adduser tecmint
passwd tecmint

adduser linuxsay
passwd linuxsay

위 스크린샷에서 adduser 명령을 사용하여 Linux에서 사용자 계정을 만들었습니다. useradd 명령을 사용할 수도 있습니다. 둘 다 동일하고 동일한 작업을 수행합니다.

2. 이제 deluser(Debian 및 그 파생 제품의 경우) 및 userdel( RedHat/CentOS 기반 시스템의 경우) 명령.

deluseruserdel 명령에 대한 구성 파일 내의 지시문은 명령을 실행할 때 모든 사용자 파일과 디렉터리를 처리하는 방법을 결정합니다.

Ubuntu, Kali, Mint 및 RHEL/CentOS/Fedora와 같은 Debian 파생 제품의 /etc/deluser.confdeluser 명령에 대한 구성 파일을 살펴보겠습니다. 사용자는 /etc/login.defs 파일을 볼 수 있습니다.

이러한 구성의 값은 기본값이며 필요에 따라 변경할 수 있습니다.

vi /etc/deluser.conf         [On Debian and its derivatives]
vi /etc/login.defs           [On RedHat/CentOS based systems]

3. 홈 디렉토리가 있는 사용자를 삭제하려면 Linux 서버 시스템에서 다음 단계에 따라 고급 방법을 사용할 수 있습니다. 사용자는 서버에 로그온하면 서비스를 사용하고 다른 프로세스를 실행합니다. 사용자는 서버에 로그온하지 않은 경우에만 효과적으로 삭제할 수 있다는 점에 유의하는 것이 중요합니다.

Linux에서 사용자 계정 잠금

사용자가 시스템에 액세스할 수 없도록 사용자 계정 비밀번호를 잠그는 것부터 시작하십시오. 이렇게 하면 사용자가 시스템에서 프로세스를 실행하는 것을 방지할 수 있습니다.

–lock 옵션이 포함된 passwd 명령은 이를 달성하는 데 도움이 될 수 있습니다.

# passwd --lock tecmint

Locking password for user tecmint.
passwd: Success

사용자의 실행 중인 모든 프로세스를 찾아 종료합니다.

다음으로 사용자 계정에서 실행 중인 모든 프로세스를 찾아내고 다음을 사용하여 사용자가 소유한 프로세스의 PID(프로세스 ID)를 확인하여 해당 프로세스를 종료합니다.

# pgrep -u tecmint

1947
1959
2091
2094
2095
2168
2175
2179
2183
2188
2190
2202
2207
2212
2214

그런 다음 표시된 대로 다음 명령을 사용하여 사용자 이름, PID, PPID(상위 프로세스 ID), 사용된 터미널, 프로세스 상태, 명령 경로의 프로세스 기간을 전체 형식 스타일로 나열할 수 있습니다.

# ps -f --pid $(pgrep -u tecmint)

UID        PID  PPID  C STIME TTY      STAT   TIME CMD
tecmint   1947     1  0 10:49 ?        SLl    0:00 /usr/bin/gnome-keyring-daemon --daemonize --login
tecmint   1959  1280  0 10:49 ?        Ssl    0:00 mate-session
tecmint   2091  1959  0 10:49 ?        Ss     0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch mate-session
tecmint   2094     1  0 10:49 ?        S      0:00 /usr/bin/dbus-launch --exit-with-session /usr/bin/im-launch mate-session
tecmint   2095     1  0 10:49 ?        Ss     0:00 //bin/dbus-daemon --fork --print-pid 6 --print-address 9 --session
tecmint   2168     1  0 10:49 ?        Sl     0:00 /usr/lib/dconf/dconf-service
tecmint   2175  1959  0 10:49 ?        Sl     0:02 /usr/bin/mate-settings-daemon
tecmint   2179  1959  0 10:49 ?        Sl     0:47 marco
tecmint   2183     1  0 10:49 ?        Sl     0:00 /usr/lib/gvfs/gvfsd
tecmint   2188  1959  0 10:49 ?        Sl     0:00 mate-panel
tecmint   2190     1  0 10:49 ?        Sl     0:00 /usr/lib/gvfs/gvfsd-fuse /run/user/1000/gvfs -f -o big_writes
tecmint   2202     1  0 10:49 ?        S<l    0:20 /usr/bin/pulseaudio --start --log-target=syslog
tecmint   2207  1959  0 10:49 ?        S      0:00 /bin/sh /usr/bin/startcaja
tecmint   2212     1  0 10:49 ?        Sl     0:03 /usr/bin/python /usr/lib/linuxmint/mintMenu/mintMenu.py
tecmint   2214     1  0 10:49 ?        Sl     0:11 /usr/lib/mate-panel/wnck-applet
....

사용자의 실행 중인 프로세스를 모두 찾으면 killall 명령을 사용하여 표시된 대로 실행 중인 프로세스를 종료할 수 있습니다.

killall -9 -u tecmint

-9SIGKILL 신호의 신호 번호이거나 -9 대신 -KILL을 사용합니다. >-u는 사용자 이름을 정의합니다.

참고: RedHat/CentOS 7.x 버전 및 Fedora 21+의 최신 릴리스에서는 다음과 같은 오류 메시지가 표시됩니다.

-bash: killall: command not found

이러한 오류를 수정하려면 다음과 같이 psmisc 패키지를 설치해야 합니다.

yum install psmisc       [On RedHat/CentOS 7.x]
dnf install psmisc       [On Fedora 21+ versions]

삭제하기 전에 사용자 데이터 백업

다음으로 사용자 파일을 백업할 수 있습니다. 이는 선택 사항일 수 있지만 나중에 사용자 계정 세부 정보 및 파일을 검토해야 할 경우 사용하는 것이 좋습니다.

tar 유틸리티를 사용하여 다음과 같이 사용자 홈 디렉토리의 백업을 생성했습니다.

tar jcvf /user-backups/tecmint-home-directory-backup.tar.bz2 /home/tecmint

사용자 계정 및 파일 삭제/제거

이제 홈 디렉터리와 함께 사용자를 안전하게 제거할 수 있습니다. 시스템의 모든 사용자 파일을 제거하려면 아래 명령에서 --remove-all-files 옵션을 사용하세요.

deluser --remove-home tecmint      [On Debian and its derivatives]
userdel --remove tecmint           [On RedHat/CentOS based systems]

요약

이것이 Linux 시스템에서 사용자와 해당 홈 디렉터리를 제거하는 것과 관련된 모든 것입니다. 이 가이드는 따라하기가 충분히 쉽다고 생각합니다. 하지만 의견을 남겨서 우려 사항을 표명하거나 더 많은 아이디어를 추가할 수 있습니다.