고유하지 않은 ID를 가진 사용자 삭제

고유하지 않은 ID를 가진 사용자 삭제

고유하지 않은 ID를 가진 사용자를 생성하고 명령 -o -u 1000 -m에 옵션을 전달했습니다 . useradd이제 ID는 동일하지만 이름과 홈 디렉터리가 다른 두 명의 사용자가 있습니다.
나는 이것이 (테스트 목적으로) 새로운 깨끗한 환경을 만들고 일부 개발 디렉터리 및 파일에 대해 동일한 액세스를 유지하는 솔루션일 수 있다고 생각했습니다.

사용자가 자신의 데스크톱 환경에서 성공적으로 생성되고 로그인되었지만 터미널에서 수동으로 시작된 응용 프로그램은 원래 사용자의 홈 디렉터리를 사용하고 있었습니다. 그럼, 시작 idea.sh해보세요부족한_2아직 사용자의 홈 디렉터리를 사용 중입니다.반짝임.

어떻게 이럴 수있어? 이 애플리케이션을 두 번째 사용으로 실행했는데도 여전히 원래 사용자의 홈 디렉터리를 사용하는 이유는 무엇입니까?

다음은 일부 환경 변수의 내용입니다.

$> echo $HOME
/home/scantlight_2

$> echo $USER
scantlight_2

$> cd ~
$> pwd
/home/scantlight_2

모든 테스트가 끝난 후,
명령을 사용하여 "scantlight_2" 사용자를 삭제하는 것이 안전합니까? 아니면 일부 충돌을 피하기 위해 파일에서 수동으로 삭제해야 userdel합니까 ?/etc/shadow

편집: 이것은 idea.sh"IntelliJ IDEA" IDE의 시작 스크립트입니다. grepgetent 명령을 사용하지 않고 bin 디렉토리의 내용에 대해 빠른 재귀를 수행했습니다 . 다음은 내가 사용하는 명령입니다.

grep -r -i "getent|passwd" ./idea_install/bin

감사해요.

답변1

사용자 이름에 관심이 있는 대부분의 프로그램은 UID를 찾기 위해 조회를 수행 getent()하고 그때부터 이를 사용합니다. 이는 사용자가 uid(번호)로 식별되기 때문입니다. 이름은 예쁜 프린팅과 편리함 그 이상입니다.

예를 들어, id 1000또는를 실행 getent passwd 1000하면 해당 uid에 대한 첫 번째 항목만 표시됩니다.

두 번째 사용자를 삭제하기 위해 유사한 명령을 사용하는 userdel것은 안전하지 않습니다.deluser

삭제될 가능성이 높기 때문입니다.첫 번째그들은 uid 1000을 가진 사용자를 찾았습니다.

대신, passwd 및 group 파일을 수동으로 편집해야 합니다.

  • vipw편집 vipw -s하고/etc/passwd/etc/shadow
  • vigr편집 vigr -s하고/etc/group/etc/gshadow

관련 정보