사용자 이름에 대한 스크립트 생성

사용자 이름에 대한 스크립트 생성

student_list.txt. 라는 파일에 모든 학생의 사용자 이름/비밀번호를 생성하는 스크립트를 어떻게 작성할 수 있습니까? 비밀번호는 이라는 파일에서 가져와야 합니다 passwords.txt. 스크립트를 진행하기 전에 스크립트를 실행하는 사용자가 루트인지 확인하세요. 레코드를 읽기 전에 파일이 존재하는지 확인하십시오. 또한 모든 사용자를 그룹에 추가합니다 students.

답변1

paste student_list.txt passwords.txt  | 
  while read user password; do 
      useradd "$user" && 
         printf '%s\n%s\n' "$password" "$password" | passwd "$user"
  done

student_list.txt다음과 같다고 가정해 보겠습니다 .

foo
bar
baz

다음과 같이 보입니다 passwords.txt:

foo_passwd
bar_passwd
baz_passwd

붙여넣으면 다음으로 바뀔 것입니다.

foo foo_passw
bar bar_passw
baz baz_passw

read내장 함수를 쌍으로 처리하는 것이 더 쉽습니다 .

그렇다면 휴식은 자명해야합니다. passwd비밀번호가 두 번 필요합니다(확인 필요).

useradd스위치 도 있지만 --passwordSTDIN을 사용하는 것이 더 안전합니다.

adduseruseradd배포판의 사용자 정책을 더 잘 만족시키려면 더 나을 수도 있습니다.

관련 정보