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
스위치 도 있지만 --password
STDIN을 사용하는 것이 더 안전합니다.
adduser
useradd
배포판의 사용자 정책을 더 잘 만족시키려면 더 나을 수도 있습니다.