신규 사용자가 삭제된 사용자로부터 파일을 상속받는 이유는 무엇입니까?

신규 사용자가 삭제된 사용자로부터 파일을 상속받는 이유는 무엇입니까?

그래서 책에 나오는 연습문제를 숙제로 해야 했어요. 먼저 다음과 같이 사용자를 생성해야 합니다.

useradd -c "Steven Baxter" -s "/bin/sh" sbaxter

/home/sbaxter그런 다음 해당 디렉터리에 일부 파일을 추가 해야 합니다 .

touch /home/sbaxter/ some.txt new.txt files.txt

그런 다음 해당 사용자를 삭제 sbaxter하고 이름이 새 사용자를 만들어야 합니다 mjane. 놀랍게도 를 실행하면 find /home/ -user mjane새 사용자가 mjane이제 sbaxter에 대한 모든 이전 파일을 갖게 됩니다. 무슨 일이 일어났습니까?

답변1

악마는 세부사항과 useradd매뉴얼 페이지에 있습니다(를 실행하여 이를 볼 수 있습니다 man 8 useradd):

   -u, --uid UID
       The numerical value of the user's ID. This value must be unique,
       unless the -o option is used. The value must be non-negative. The
       default is to use the smallest ID value greater than or equal to
       UID_MIN and greater than every other user.

따라서 기본값은 비밀번호 파일에서 사용되지 않은 가장 작은 uid, 즉 다른 사용자의 uid보다 큰 값입니다. sbaxter를 제거하면 passwd 파일에서 제거되므로 그의 uid는 "무료"이며 mjane에 할당됩니다( useradd이 명령을 사용할 때 두 사용자가 선택한 uid가 동일하기 때문입니다).useradd

디스크의 파일은 사용자 이름 변환이 아닌 uid만 저장합니다(이 변환은 비밀번호 파일에 정의되어 있기 때문입니다). ls -lnuid 소유권 파일의 내용을 보는 명령을 실행하여 이를 확인할 수 있습니다 .

나는 실제로 당신을 추천하고 싶습니다장애를 입히다계정을 삭제하는 대신 대부분의 Linux 배포판에서 계정을 잠그는 방법은 비밀번호를 잠그고 계정이 오늘 만료되도록 설정하는 방법을 통해 수행할 수 있습니다 (다음 을 사용하여 usermod -L -e today <username>계정의 만료 날짜를 볼 수 있습니다).chage -l

답변2

삭제된 사용자의 UID는 새 사용자에 의해 재사용되며, 파일 시스템은 UID를 사용하여 사용자 이름이 아닌 소유권을 나타냅니다.

관련 정보