Linux에서 사용자를 삭제하고 모든 추적을 제거하는 방법

Linux에서 사용자를 삭제하려면 생각보다 많은 작업이 필요합니다. 시스템 관리자인 경우 시스템에서 계정 및 해당 액세스에 대한 모든 추적을 제거하고 싶을 것입니다. 취해야 할 단계를 알려드리겠습니다.

시스템에서 사용자 계정을 삭제하고 실행 중인 프로세스 및 기타 정리 작업을 끝내는 데 관심이 없다면 아래 “사용자 계정 삭제” 섹션의 단계를 따르십시오. Debian 기반 배포판에서는 deluser 명령이 필요하고 다른 Linux 배포판에서는 userdel 명령이 필요합니다.

Linux의 사용자 계정

이후로 최초의 시분할 시스템은 1960년대 초에 등장했습니다. 여러 사용자가 단일 컴퓨터에서 작업할 수 있는 기능이 제공됨에 따라 각 사용자의 파일과 데이터를 다른 모든 사용자로부터 분리하고 구분할 필요가 있었습니다. 따라서 사용자 계정은및 비밀번호-태어났다.

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

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

우리의 시나리오

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

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

이 시나리오에서는 사용자 Eric이 구내에서 즉시 제거되어야 하는 일을 했다고 가정합니다. 이 순간 그는 이것을 모르고 여전히 일하고 있고 로그인되어 있습니다. 보안에 고개를 끄덕이는 즉시 그는 건물에서 호위될 것입니다.

  Slack에서 중요한 메시지를 기억하는 방법

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

로그인 확인

그가 실제로 로그인했는지 확인하고 로그인했다면 몇 개의 세션으로 작업하고 있는지 봅시다. 누가 명령 활성 세션을 나열합니다.

who

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

사용자 프로세스 검토

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

ps -u eric

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

top -U eric

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

많이 하는 것 같지는 않고 파일을 보는 데 덜 사용합니다. 계속 진행하는 것이 안전합니다. 그러나 그의 프로세스를 종료하기 전에 비밀번호를 잠가 계정을 동결할 것입니다.

계정 잠금

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

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

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

awk 명령 텍스트 파일에서 필드 구문 분석 선택적으로 조작합니다. -F(필드 구분 기호) 옵션을 사용하여 파일이 필드를 구분하기 위해 콜론 ” : “을 사용한다는 것을 awk에 알립니다. “eric” 패턴이 있는 라인을 검색할 것입니다. 일치하는 라인의 경우 첫 번째 및 두 번째 필드를 인쇄합니다. 계정 이름과 암호화된 암호입니다.

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

  Microsoft Teams에서 회의를 취소하는 방법

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

sudo passwd -l eric

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

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

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

사용자가 다시 로그인하는 것을 방지했으므로 그의 프로세스를 종료하고 로그아웃할 수 있습니다.

프로세스 죽이기

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

sudo pkill -KILL -u eric

결정적으로 반(反) 클라이맥스 방식으로 명령 프롬프트로 돌아갑니다. 문제가 발생했는지 확인하려면 누가 누구인지 다시 확인하세요.

who

그의 세션이 사라졌습니다. 그는 로그오프되었고 그의 프로세스는 중지되었습니다. 그 상황에서 긴급성을 일부 제거했습니다. 이제 보안팀이 Eric의 책상으로 걸어가는 동안 우리는 조금 긴장을 풀고 나머지 청소를 계속할 수 있습니다.

사용자의 홈 디렉토리 보관

이와 같은 시나리오에서 향후 사용자 파일에 대한 액세스가 필요하다는 것은 당연합니다. 조사의 일환으로 또는 단순히 그들의 교체가 이전 작업을 다시 참조해야 할 수도 있기 때문입니다. 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의 파일이 생성되었습니다. 나중에 검토할 수 있도록 안전한 위치에 복사할 수 있습니다.

크론 작업 제거

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

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

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

sudo crontab -r -u eric

작업이 자동으로 삭제됩니다. 우리가 아는 한, Eric이 자신이 곧 쫓겨날 것이라고 의심했다면 그는 악의적인 작업을 계획했을 것입니다. 이 단계는 모범 사례입니다.

  Photoshop에서 레이어를 병합하는 방법

인쇄 작업 제거

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

lprm -U eric

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

사용자 계정 삭제

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

사용할 명령은 사용 중인 Linux 배포판에 따라 다릅니다. 을위한 데비안 기반 Linux 배포판, 명령은 deluser이고 나머지 Linux 세계를 위해, 유저델입니다.

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

type deluser
type userdel

둘 다 사용 가능하지만 권장 사항은 deluser를 사용하는 것입니다. 데비안 파생 배포판:

“userdel은 사용자를 제거하기 위한 저수준 유틸리티입니다. 데비안에서 관리자는 일반적으로 대신 deluser(8)를 사용해야 합니다.”

충분히 명확하므로 이 Ubuntu 컴퓨터에서 사용할 명령은 deluser입니다. 우리는 또한 그들의 홈 디렉토리가 제거되기를 원하기 때문에 –remove-home 플래그를 사용하고 있습니다:

sudo deluser --remove-home eric

비 Debian 배포판에 사용할 명령은 –remove 플래그가 있는 userdel입니다.

sudo userdel --remove eric

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

ls /home

사용자 계정 eric이 유일한 항목이기 때문에 eric 그룹도 제거되었습니다. grep을 통해 /etc/group의 내용을 파이핑하여 이를 아주 쉽게 확인할 수 있습니다.

sudo less /etc/group | grep eric

랩이야

에릭은 그의 죄 때문에 사라졌습니다. 보안팀은 여전히 ​​그를 건물 밖으로 내보내고 있고 당신은 이미 그의 파일을 안전하게 보관하고 보관했으며 그의 계정을 삭제했으며 시스템에서 모든 잔여물을 제거했습니다.

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