나는 물었다구성원 파티션의 UUID가 모두 지워진 RAID 1 파티션 복원에 대한 이전 질문입니다.. 이 스레드에서 응답을 받지 못했기 때문에 이제 OS 파티션에 CentOS를 다시 설치하고 시스템을 다시 구축해야 합니다.
재구축의 주요 작업 중 하나는 최근 백업이 없는 사용자 데이터베이스를 복구하는 것입니다. 내 목표는 UID 및 사용자 이름 목록에 있는 스크립트를 사용하여 모든 사람의 계정을 동일한 비밀번호로 만든 다음 로그인 시 변경할 수 있도록 하여 사용자 데이터베이스를 다시 만드는 것입니다.
/home은 다른 곳에 있지만 여전히 존재하는 raid 배열이므로 해당 파티션에 사용자의 전체 목록이 있고 각 사용자 디렉터리의 UID를 읽어 각 사용자의 이전 UID도 얻습니다. 제가 고민하고 있는 것은 한 쌍의 스크립트입니다. 첫 번째는 /home을 반복하여 일치하는 UID 및 사용자 이름 쌍을 포함하는 파일을 생성하고, 두 번째는 해당 출력 파일을 사용하여 새 설치에서 해당 계정을 모두 생성하므로 홈 디렉터리의 UID가 다음으로 변환됩니다. 현재 사용자. 이는 삼바 파일 서버이므로 두 번째 스크립트에서는 일치하는 삼바 사용자 이름도 생성합니다.
휠을 다시 만들지 않도록 이 작업을 수행하기 위해 작성된 도구나 스크립트를 아는 사람이 있습니까?
감사해요!
답변1
다음과 같이 홈 디렉터리에서 "user:home:uid:gid"가 포함된 csv 파일을 만들 수 있습니다.
find /home -mindepth 1 -maxdepth 1 -type d -not -name "lost+found*" \
-printf "%f:%p:%U:%G\n" >/tmp/user.txt
그런 다음 다음과 같이 사용자를 다시 생성하십시오.
cat /tmp/user.txt | while IFS=: read -r user home uid gid; do \
echo useradd -d "$home" -u "$uid" -g "$gid" "$user"
done
echo
출력이 올바른 것으로 보이면 삭제하세요. useradd
이를 필요에 맞게 조정하고 올바른 삼바 명령을 루프에 추가할 수 있어야 합니다 .