foo
우리는 루트의 uid, guid 및 그룹에 어떻게든 연결된 사용자 계정을 가지고 있습니다 . 실행하면 id foo
모든 루트 ID 정보가 반환됩니다.
id foo
uid=0(root) gid=0(root) groups=0(root)
이 사용자 계정은 더 이상 여기에 없는 옛 동료의 계정이며 서버에서 해당 계정을 완전히 제거하고 싶습니다. 실행하면 ps -ef | grep foo
해당 사용자에 대한 프로세스가 반환되지 않으므로 해당 사용자 이름으로 실행 중인 것이 아무것도 없다고 확신합니다.
실행하면 userdel foo
표시되는 계정이 루트이고 uid=0이라고 확신하지만 해당 계정 이 여전히 foo
표시되므로 사용자 계정이 존재하지 않는 것으로 표시됩니다./etc/passwd
foo:x:0:0::/home/foo:/bin/bash
이 계정을 취소하려면 어떤 조치를 취해야 합니까? usermod를 수행하고 uid, gid 및 그룹을 변경해야 합니까? 사용되지 않는 임의의 uid(예: uid=1099(foo))를 선택하면 문제가 발생합니까?
저는 CentOS 7을 사용하고 있으며 서버는 Active Directory에 연결되어 있지만 foo 계정은 Linux 서버의 로컬 계정입니다. Linux를 AD에 연결하기 전에 사용자가 종료되었으므로 계정이 더 이상 Active Directory에 존재하지 않습니다.
답변1
uid가 userdel
왜 존재하는지 명확하지 않고 실수로 루트를 제거하고 싶지 않기 때문에 이와 같은 도구를 사용하지 않는 것이 좋습니다 .foo
0
대신 항목이 /etc/passwd
자체적으로 편집되고 삭제됩니다 foo
. 루트 자체에 올바른 항목이 있는지 확인하십시오.
root:x:0:0:root:/root:/bin/bash
에 대해서도 동일한 작업을 수행합니다 /etc/group
. 제거된 항목 foo
및 확인된 항목 root
:
root:x:0:
그런 다음 비밀번호 입력을 확인 /etc/shadow
하고 삭제 하고 입력을 foo
확인하십시오 root
. 항목은 다음 root
과 같아야 합니다.
root:SOMEPASSWORDCODE:17219:0:99999:7:::
foo
어쩌면 in에 대한 추가 항목 이 있을 수도 있습니다 /etc/group
. 가능한 예:
audio:x:29:foo,pulse
정리 작업의 경우 이러한 항목에서 foo
해당 콘텐츠 도 삭제합니다 foo,
.
존재하는 경우 /home/foo
확인하고 삭제하십시오.
현재 foo
와 동일합니다 root
. foo가 소유한 프로세스나 파일은 모두 에 속하므로 찾을 수 없습니다 root
. 파일 및 프로세스 소유자는 이름이 아닌 uid로 등록됩니다. 따라서 uid가 0인 모든 프로세스나 파일은 루트로 표시됩니다. (또는 모든 루트 프로세스와 파일이 대신 표시될 수 있습니다 foo
) root
.
답변2
vipw
및를 사용하여 해당 계정의 행을 삭제할 수 있습니다 . 이 작업이 완료되면 해당 계정은 기술적으로 사라집니다.foo
/etc/passwd
/etc/shadow
vipw
버전 에 따라 변경 작업에 사용하면 /etc/passwd
"당신도 편집하시겠습니까? (Y/N)"라는 메시지가 표시되거나 편집에 /etc/shadow
사용하라고 제안 할 수 있습니다 .vipw -s
/etc/shadow
vigr
많은 Linux 배포판에는 해당 편집 명령이 있습니다 /etc/group
( /etc/gshadow
있는 경우).
vipw
및를 사용하면 vigr
파일을 직접 편집하는 것보다 더 안전합니다. 이러한 명령은 편집하기 전에 파일의 복사본을 만들고 원본 파일을 편집된 복사본으로 바꾸기 전에 일부 온전성 검사를 수행하기 때문입니다.
계정을 제거하면 사용자의 홈 디렉토리와 로컬 메일 풀에 대해 원하는 모든 작업을 수행 /etc/passwd
할 수 있습니다 (예 : . 일반적으로 보관해야 할 특별한 이유가 없는 한 삭제하기를 원합니다./home/foo
/var/mail/foo
또한 작업 스케줄러를 확인하고 싶을 수도 있습니다. 레이아웃이 약간 다를 수 있지만 적어도 데비안 시스템에는 디렉토리가 있고 : atjobs
에 사용자가 언급되어 있는지 확인 하고 해당 파일을 삭제하세요.atspool
crontabs
/var/spool/cron/
foo