고유하지 않은 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의 시작 스크립트입니다. grep
getent 명령을 사용하지 않고 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