사용자를 그룹에 일괄 할당

사용자를 그룹에 일괄 할당

2개의 텍스트 파일이 있는데, users.txt에는 1000명의 사용자 목록이 포함되어 있고 groups.txt에는 50개의 그룹 목록이 포함되어 있습니다. 각 그룹에 30명의 사용자를 추가하는 명령을 실행하고 싶습니다(예: 사용자 1-30은 그룹 1, 사용자 31-60은 그룹 2 등). 이를 수행하는 가장 실용적인 방법은 무엇입니까?

각각 30명의 사용자 목록이 포함된 50개의 새 텍스트 파일을 만들고 50개의 bash 스크립트를 실행할 수 있다고 생각하지만 이보다 더 좋은 방법이 있다고 생각합니다.

편집: 이것은 내가 지금까지 가지고 있는 것입니다:

for i in `cat users.txt` ; do useradd $i; echo Pass$i | passwd $i -- stdin; done
for i in `cat groups.txt ; do groupadd $i; done

답변1

이것은 단지 연습일 뿐이므로 스스로 해야 하지만 해결책은 다음과 같습니다. 정말로 스스로 해야 합니다. 그렇지 않으면 바보가 될 것입니다.

몇 가지 루프와 간단한 테스트를 사용하세요.

while read group
do 
  i=30
  while read user
  do 
    echo $user:$group
    let "i--" 
    if [ $i -eq 0 ]
    then 
      break
    fi
  done < /tmp/users.txt
  sed -i -e '1,30d' /tmp/users.txt
done < groups.txt > userswithgroup.txt

이렇게 하면 users.txt 파일이 지워집니다. 그러니 복사해 두는 것이 가장 좋습니다.

그런 다음 사용자도 추가해야 하지만 지금은 복잡하지 않습니다.

관련 정보