
나는 물었다이전에 멤버 파티션의 UUID가 모두 0으로 설정된 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
필요에 따라 이 명령을 채택하고 루프에 올바른 삼바 명령을 추가할 수도 있습니다 .