그래서 나는 책에서 숙제로 운동을해야했다. 먼저 다음과 같은 사용자를 만들어야했습니다.
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의 오래된 파일을 소유했습니다. 어떻게 되었습니까?
답변
악마는 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에 할당됩니다 (uid useradd
선택은 useradd
명령을 사용할 때 두 사용자 모두 동일하므로 ).
디스크의 파일은 uid 만 저장하고 사용자 이름 변환은 저장하지 않습니다 (이 변환은 암호 파일에 정의되어 있음). ls -ln
uid 소유권 파일이 무엇인지 확인하여 발급 을 확인할 수 있습니다 .
실제로 계정을 삭제하는 대신 비활성화 하는 것이 좋습니다 . 대부분의 Linux 배포에서 계정 잠금은을 (를) 사용하여 수행 할 수 있습니다.이 usermod -L -e today <username>
경우 암호가 잠기고 계정이 오늘 만료되도록 설정됩니다 chage -l
.
답변
삭제 된 사용자의 UID는 새로운 사용자에 의해 재사용되었으며 파일 시스템은 사용자 이름이 아닌 소유권을 위해 UID를 사용합니다.