회사에서 새 서버를 구입 한 후 서버 실의 하향식 업그레이드를 수행합니다. 모든 하드웨어가 변하기 때문에 베어 메탈 복제 도구를 사용하여 마이그레이션 할 수 없습니다. 데비안의 newusers
명령을 사용하면 이전 서버의 모든 사용자를 대량으로 생성 할 수 있습니다./etc/shadow 파일의 경우 새 시스템의 관련 계정의 두 번째 열에 shadow.sync (이전 서버의) 파일의 두 번째 열을 복사 할 수 있습니다. 그러면 계정 암호가 새 시스템으로 전송됩니다. 그러나 awk (또는 이미 쉘 스크립트에 통합 할 수있는 다른 것)를 사용하여 프로그래밍 방식으로이 작업을 수행하는 방법을 잘 모르겠습니다.Awk - 열 1 (테이블간에 공통)의 일치하는 데이터를 기반으로 표 2의 coumn 2에서 표 1의 coumn 2를 바꿉니다.
shadow.sync에는 다음과 같은 내용이 포함되어 있습니다 (보안상의 이유로 암호가 변경된 &). 이것은 두 번째 열의 데이터가 INCORECT 값을 제외하고 거의 동일하게 보이는 현재 섀도우 파일에 복사 할 파일입니다. 은/etc/쉐도우 파일 필드
심층 설명은
user1:$6$HiwQEKYDgT$xYU9F3Wv0jFWHmZxN60nFMkTqWn87RRIOvx7Epp57rOmdHN9plJgjhC.jRVVNc1.HUaqSpX/ZcCEFSn6RmQQA0:17531::0:99999:7:::
user2:$6$oOuwJtrIKk$THLsfDppLI8QVw9xEOAaIoZ90Mcz3xGukVdyWGJJqygsavtXvtJ8X9ECc0CfuGzHp0pHNSAqdZY9TAzF5YKLc.:17531::0:99999:7:::
user3:$6$IEHAyRsokQ$e5K3RicE.PUAej8IxG9GnF/SUl1NQ57pqzUVuAzsP8.89SNhuaKE1W7kG5P4hbzV23Bb2zWHx353t.e9ERSVy.:17531::0:99999:7:::
user4:$6$lFOIUQvxdb$W5ITiH/Y021xw1vo8uw6ZtIOmfKjnNnC/SttQjN85MHtLbFeQ2Th5kfAIijXC81CRG4T0kJQ3rzRNRSyQHjyb1:17531::0:99999:7:::
user5:$6$RZbtYxWiwE$lnP8.tTbs0JbLZg5FsmPR8QvrJARbcRuJi2nYm1okwjfkWPkj212mBPjVF1BTo2hVCxLGSw64Cp6DgXheacSx.:17531::0:99999:7:::
here는 본질적 나 동기 파일 쉐도우 파일 사이에 1 열 (아이디)와 일치 할 필요가 복사 찾을 수있다 실제 그림자 파일의 동일한 열에있는 동기화 파일의 2 열을 가져옵니다. 내가 900 명 이상의 사용자로 마이그레이션 할 90 대의 서버를 보유하고 있으므로 손으로이 작업을 수행하는 것은 끔찍한 일입니다. 데모에 대한
임의 shadow.sync 파일을 사용하여 생성되었습니다
#!/usr/bin/env python
import random, string, crypt, datetime
userList = ['user1','user2','user3','user4','user5']
dateNow = (datetime.datetime.utcnow() - datetime.datetime(1970,1,1)).days
for user in userList:
randomsalt = ''.join(random.sample(string.ascii_letters,10))
randompass = ''.join(random.sample(string.ascii_letters,10))
print("%s:%s:%s::0:99999:7:::" % (user, crypt.crypt(randompass, "$6$"+randomsalt), dateNow))
이 파이썬 스크립트 만 데모가 아닌 실제 생산 데이터를했다 유의하시기 바랍니다. 사용자가 서버에 추가되면/etc/shadow 파일이 명령 줄에 표시된 암호와 함께 생성됩니다. newusers
명령
후 원하는 출력하고 시도한 몇 가지 코드 (어떤 노력을 보여!). – PesaThe
@PesaThe 비록 AWK 또는 펄 스크립트를 선호했을지라도, 대량 데이터를 처리 할 때 훨씬 더 빠르다. 도움을 주셔서 감사합니다. –