![하나의 스크립트로 100명 이상의 사용자에 대한 사용자 및 비밀번호를 생성하는 방법](https://linux55.com/image/126168/%ED%95%98%EB%82%98%EC%9D%98%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A1%9C%20100%EB%AA%85%20%EC%9D%B4%EC%83%81%EC%9D%98%20%EC%82%AC%EC%9A%A9%EC%9E%90%EC%97%90%20%EB%8C%80%ED%95%9C%20%EC%82%AC%EC%9A%A9%EC%9E%90%20%EB%B0%8F%20%EB%B9%84%EB%B0%80%EB%B2%88%ED%98%B8%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
저는 100명이 넘는 사용자의 비밀번호를 추가하고 설정하는 스크립트를 작성했습니다. 예: 사용자의 비밀번호를 설정하려면 모든 사용자에 대해 "user+123" 형식을 설정하고 싶습니다. 즉, 사용자는 비밀번호의 사용자 이름에 따라 변경됩니다. 이에 대한 스크립트를 어떻게 작성할 수 있습니까?
#!/bin/bash
for i in `more users.txt`
do
useradd $i;
echo "User $i added successfully"
passwd $("$i"123)
echo "Password added successfully for user"
done
답변1
#!/bin/bash
for i in $( cat users.txt ); do
useradd $i
echo "user $i added successfully!"
echo $i:$i"123" | chpasswd
echo "Password for user $i changed successfully"
done
이 작은 스크립트가 당신이 찾고 있는 것이어야 합니다. 먼저 사용자를 추가한 다음 비밀번호 변경을 진행합니다. 백틱은 더 이상 사용되지 않으므로 피하는 것이 $()
좋은 선택입니다.
답변2
다른 답변은 이를 수행하는 방법에 대한 기술적 답변을 제공합니다. 하지만 제발 이러지 마세요.
위협 행위자가 이 패턴을 본 후에는 다른 사용자로 로그인할 수 있습니다. (처음 로그인할 때 비밀번호를 강제로 변경하더라도 누군가가 다른 모든 사용자를 잠글 수 있습니다.)
대신 각 사용자에게 새 비밀번호를 설정하기 위한 임의의 비밀번호나 토큰을 이메일로 보내야 합니다.
답변3
아래 스크립트에서는 user1, user2, user3, user4, user5 등 5명의 사용자를 생성하고 각 사용자의 비밀번호를 "username+123"으로 설정했는데, 테스트 후 성공적으로 작동했습니다.
필요에 따라 사용자 수를 변경할 수 있습니다.
for i in user{1..5}; do useradd $i; passwd -d $i; echo $i"123" | passwd $i --stdin; done
특정 사용자 이름이 포함된 텍스트 파일이 있는 경우 다음을 사용할 수 있습니다.
for i in $(cat users.txt); do useradd $i; passwd -d $i; echo $i"123" | passwd $i --stdin; done