Linux에서 사용자를 삭제하는 방법 (및 모든 추적 제거)

Linux에서 사용자를 삭제하려면 생각보다 더 많은 작업이 필요합니다. 시스템 관리자 인 경우 시스템에서 계정의 모든 흔적과 액세스를 제거 할 수 있습니다. 취해야 할 단계를 보여 드리겠습니다.

시스템에서 사용자 계정 만 삭제하고 실행중인 프로세스 및 기타 정리 작업을 종료하지 않으려는 경우 아래 "사용자 계정 삭제"섹션의 단계를 따르십시오. deluserDebian 기반 배포 에서는 명령 이 필요하고 userdel다른 Linux 배포 에서는 명령 이 필요합니다 .

Linux의 사용자 계정

1960 년대 초에 최초의 시분할 시스템이 등장하고 여러 사용자가 단일 컴퓨터에서 작업 할 수있는 기능을 제공 한 이후로, 각 사용자의 파일과 데이터를 다른 모든 사용자로부터 분리하고 구분해야 할 필요가있었습니다. 그래서 사용자 계정과 암호가 탄생했습니다.

사용자 계정에는 관리 오버 헤드가 있습니다. 사용자가 컴퓨터에 처음 액세스해야 할 때 생성되어야합니다. 해당 액세스가 더 이상 필요하지 않으면 제거해야합니다. Linux에는 컴퓨터에서 사용자, 파일 및 계정을 정확하고 체계적으로 제거하기 위해 따라야하는 일련의 단계가 있습니다.

당신이 시스템 관리자라면 그 책임은 당신에게 있습니다. 이에 대한 방법은 다음과 같습니다.

우리의 시나리오

계정을 삭제해야하는 이유에는 여러 가지가 있습니다. 직원이 다른 팀으로 이동하거나 완전히 퇴사 할 수 있습니다. 다른 회사의 방문자와 단기 협업을 위해 계정이 설정되었을 수 있습니다. 팀 업은 학계에서 일반적이며 연구 프로젝트는 부서, 다른 대학, 심지어 상업 기관에 걸쳐있을 수 있습니다. 프로젝트가 끝날 때 시스템 관리자는 관리를 수행하고 불필요한 계정을 제거해야합니다.

최악의 시나리오는 경범죄로 인해 누군가가 클라우드 아래에서 떠날 때입니다. 이러한 이벤트는 대개 사전 경고없이 갑자기 발생합니다. 따라서 시스템 관리자는 계획 할 시간이 거의 없으며 폐쇄 후 포렌식에 필요한 경우에 대비하여 사용자 파일의 사본을 백업하여 계정을 잠그고, 폐쇄하고, 삭제해야합니다.

우리의 시나리오에서는 사용자 Eric이 자신의 건물에서 즉시 제거 할 수있는 작업을 수행했다고 가정합니다. 이 순간 그는 이것을 알지 못하고, 그는 여전히 일하고 있고, 로그인했습니다. 당신이 보안에 고개를 끄덕이는 즉시 그는 건물에서 호송 될 것입니다.

모든 것이 설정되었습니다. 모든 시선이 당신에게 있습니다.

로그인 확인

그가 실제로 로그인했는지, 그가 있다면 얼마나 많은 세션을 작업하고 있는지 살펴 보겠습니다. 이 who명령은 활성 세션을 나열합니다.

WHO

Eric은 한 번 로그인합니다. 그가 어떤 프로세스를 실행하고 있는지 봅시다.

사용자의 프로세스 검토

ps명령을 사용 하여이 사용자가 실행중인 프로세스를 나열 할 수 있습니다 . -u(사용자) 옵션은 우리가 알 수 있도록 ps해당 사용자 계정의 소유권에서 실행중인 프로세스에 출력을 제한 할 수 있습니다.

ps -u eric

top명령을 사용하여 더 많은 정보로 동일한 프로세스를 볼 수 있습니다 . top 또한 -U단일 사용자가 소유 한 프로세스로 출력을 제한 하는 (사용자) 옵션이 있습니다. 이번에는 대문자 "U"입니다.

최고 -U 에릭

각 작업의 메모리 및 CPU 사용량을 볼 수 있으며 의심스러운 활동이있는 항목을 빠르게 찾을 수 있습니다. 우리는 그의 모든 프로세스를 강제 종료하려고하므로 잠시 시간을내어 프로세스를 신속하게 검토하고 사용자 계정 eric의 프로세스 를 종료 할 때 다른 사용자가 불편을 겪지 않는지 확인하고 확인하는 것이 가장 안전 합니다.

less파일을보기 위해 사용하는 것뿐입니다  . 계속 진행해도 안전합니다. 그러나 그의 프로세스를 종료하기 전에 암호를 잠가 계정을 동결합니다.

관련 : ps 명령을 사용하여 Linux 프로세스를 모니터링하는 방법

계정 잠금

프로세스를 종료하면 사용자가 로그 아웃되므로 프로세스를 종료하기 전에 계정을 잠급니다. 이미 비밀번호를 변경 한 경우 다시 로그인 할 수 없습니다.

암호화 된 사용자 암호는 /etc/shadow파일에 저장 됩니다. 일반적으로 다음 단계는 신경 쓰지 않지만 /etc/shadow 계정을 잠글 때 파일 에서 어떤 일이 발생하는지 확인할 수 있도록 약간의 우회를하겠습니다. 다음 명령을 사용하여 eric 사용자 계정 항목의 처음 두 필드를 볼  수 있습니다.

sudo awk -F : '/ eric / {print $ 1, $ 2}'/ etc / shadow

awk 명령은 텍스트 파일에서 필드를 구문 분석하고 선택적으로이를 조작합니다. 우리는 사용하고있는 -F말 (필드 분리) 옵션 awk파일이 "콜론을 사용하는 :필드를 구분하는 방법"을 참조하십시오. "eric"패턴이있는 줄을 검색합니다. 일치하는 줄의 경우 첫 번째 및 두 번째 필드를 인쇄합니다. 이것은 계정 이름과 암호화 된 암호입니다.

사용자 계정 eric에 대한 항목이 인쇄됩니다.

계정을 잠 그려면 passwd명령 을 사용합니다 . -l(잠금) 옵션을 사용하고 잠글 사용자 계정의 이름을 전달합니다.

sudo passwd -l eric

/etc/passwd파일을 다시 확인하면 무슨 일이 있었는지 알 수 있습니다.

sudo awk -F : '/ eric / {print $ 1, $ 2}'/ etc / shadow

암호화 된 암호의 시작 부분에 느낌표가 추가되었습니다. 첫 번째 문자를 덮어 쓰지 않고 암호 시작 부분에 추가됩니다. 사용자가 해당 계정에 로그인 할 수 없도록하기 위해 필요한 모든 것입니다.

사용자가 다시 로그인하지 못하도록 막았으므로 이제 프로세스를 종료하고 로그 아웃 할 수 있습니다.

프로세스 죽이기

사용자의 프로세스를 죽이는 방법에는 여러 가지가 있지만 여기에 표시된 명령은 널리 사용 가능하며 일부 대안보다 더 현대적인 구현입니다. 이 pkill명령은 프로세스를 찾아서 종료합니다. KILL 신호를 전달하고 -u(user) 옵션을 사용합니다 .

sudo pkill -KILL -u eric

확실히 반 기후 방식으로 명령 프롬프트로 돌아갑니다. 문제가 발생했는지 확인하려면 who다시 확인 하세요.

WHO

그의 세션이 종료되었습니다. 그는 로그 오프되었고 그의 프로세스는 중지되었습니다. 그것은 상황에서 약간의 긴급 성을 제거했습니다. 이제 보안 팀이 Eric의 책상으로 걸어가는 동안 잠시 휴식을 취하고 나머지 걸레질을 계속할 수 있습니다.

관련 : Linux 터미널에서 프로세스를 종료하는 방법

사용자의 홈 디렉토리 보관

이와 같은 시나리오에서 향후 사용자의 파일에 대한 액세스가 필요하다는 것은 당연한 일이 아닙니다. 조사의 일부로 또는 단순히 교체가 전임자의 작업을 다시 참조해야 할 수 있기 때문입니다. 이 tar명령을 사용하여 전체 홈 디렉토리를 아카이브합니다.

우리가 사용하는 옵션은 다음과 같습니다.

  • c : 아카이브 파일을 생성합니다.
  • f : 아카이브 이름에 지정된 파일 이름을 사용합니다.
  • j : bzip2 압축을 사용합니다.
  • v : 아카이브가 생성 될 때 자세한 출력을 제공합니다.
sudo tar cfjv eric-20200820.tar.bz / home / eric

많은 화면 출력이 터미널 창에서 스크롤됩니다. 아카이브가 생성되었는지 확인하려면 ls명령을 사용하십시오 . 우리는 사용하고 -l(긴 형식)와 -h(사람이 읽을 수있는) 옵션을.

ls -lh eric-20200802.tar.bz

722MB의 파일이 생성되었습니다. 나중에 검토 할 수 있도록 안전한 곳에 복사 할 수 있습니다.

크론 작업 제거

cron사용자 계정에 예약 된 작업 이 있는지 확인하는 것이 좋습니다 eric. cron작업은 지정된 시간이나 간격으로 트리거되는 명령입니다. 다음 cron을 사용하여이 사용자 계정에 대해 예약 된 작업 이 있는지 확인할 수 있습니다 ls.

sudo ls -lh / var / spool / cron / crontabs / eric

이 위치에 항목이 있으면 cron해당 사용자 계정에 대해 대기중인 작업 이 있음을 의미 합니다. 이 crontab명령으로 삭제할 수 있습니다 . -r(제거) 옵션은 작업을 제거하고 -u(사용자) 옵션을 알려줍니다 crontab그 작업을 제거합니다.

sudo crontab -r -u eric

작업이 자동으로 삭제됩니다. 우리가 아는 한, Eric이 그가 곧 퇴거 될 것이라고 의심했다면 그는 악의적 인 작업을 예약했을 수 있습니다. 이 단계는 모범 사례입니다.

인쇄 작업 제거

사용자에게 보류중인 인쇄 작업이 있었습니까? 확실히하기 위해 사용자 계정에 속한 모든 작업의 ​​인쇄 대기열을 삭제할 수 있습니다 eric. 이 lprm명령은 인쇄 대기열에서 작업을 제거합니다. -U(사용자 이름) 옵션을 사용하면 명명 된 사용자 계정이 소유 작업을 제거 할 수 있습니다 :

lprm -U 에릭

작업이 제거되고 명령 줄로 돌아갑니다.

사용자 계정 삭제

우리는 이미 /home/eric/디렉토리 에서 파일을 백업 했으므로 계속해서 사용자 계정을 삭제 /home/eric/하는 동시에 디렉토리를 삭제할 수 있습니다.

사용할 명령은 사용중인 Linux 배포에 따라 다릅니다. Debian 기반 Linux 배포판의 경우 명령은 deluser이고 나머지 Linux 환경의 경우 명령은 입니다 userdel.

실제로 Ubuntu에서는 두 명령을 모두 사용할 수 있습니다. 나는 하나가 다른 하나의 별칭이 될 것이라고 반쯤 예상했지만 그들은 별개의 바이너리입니다.

유형 deluser
userdel 입력

둘 다 사용할 수 있지만 권장 사항은 deluserDebian 파생 배포판 에서 사용 하는 것입니다.

" userdel는 사용자 제거를위한 저수준 유틸리티입니다. 데비안에서 관리자는 보통 deluser(8)을 대신 사용해야 합니다.”

충분히 명확하므로이 Ubuntu 컴퓨터에서 사용할 명령은 deluser. 홈 디렉토리도 제거하기를 원하기 때문에 --remove-home플래그를 사용합니다 .

sudo deluser --remove-home eric

데비안이 아닌 배포판에 사용할 명령어는 다음 userdel과 같은 --remove플래그 와 함께입니다 .

sudo userdel-eric 제거

사용자 계정의 모든 흔적 eric이 지워졌습니다. /home/eric/디렉토리가 제거 되었는지 확인할 수 있습니다 .

ls / home

eric사용자 계정이 있기 때문에 그룹은 제거 된 eric그것의 유일한 항목이었다. 다음을 /etc/group통해 내용물을 파이핑하여 매우 쉽게 확인할 수 있습니다 grep.

sudo 덜 / etc / group | 그렙 에릭

랩입니다

에릭은 그의 죄 때문에 사라졌습니다. 보안은 여전히 ​​그를 건물 밖으로 쫓아 내고 있으며, 당신은 이미 그의 파일을 보호 및 보관하고, 그의 계정을 삭제하고, 나머지 시스템을 제거했습니다.

정확성은 항상 속도보다 우선합니다. 수행하기 전에 각 단계를 고려하십시오. 누군가가 당신의 책상으로 걸어 가서“아니요, 다른 에릭”이라고 말하는 것을 원하지 않습니다.