반응형
리눅스에서 패스워드를 변경하는 스크립트
pwch.sh 스크립트 생성
vim pwch.sh
#!/bin/bash
# 색상 정의
CYAN='\033[0;36m'
RED='\033[0;31m'
GREEN='\033[0;32m'
NC='\033[0m'
# 현재 시스템의 공인 IP 주소 가져오기
MyIP=$(dig @resolver1.opendns.com myip.opendns.com +short)
# IP 주소를 네트워크 ID와 호스트 ID로 분리
NetworkID=$(echo $MyIP | cut -d . -f1-3)
HostID=$(echo $MyIP | cut -d . -f4)
# 패스워드를 설정할 사용자 목록
userlist=$@
# 사용자별 초기 패스워드 설정 함수
function set_password {
for user in $userlist; do
case $user in
user1)
password_str=aaa
;;
user2)
password_str=bbb
;;
root)
password_str=ccc
;;
*)
echo -e "알 수 없는 사용자 이름 '$user'."
exit 1
;;
esac
# 패스워드 설정 및 출력
echo $password_str$network_id$host_id | passwd --stdin $user > /dev/null 2>&1
echo -e "${GREEN}$user 사용자의 패스워드가 업데이트되었습니다.${NC}"
echo -e "${RED}sshpass -p'$password_str$network_id$host_id' ssh $user@$MyIP -o StrictHostKeyChecking=no${NC}"
done
}
# 네트워크 ID에 따라 패스워드 설정 실행
case $NetworkID in
111.111.111)
network_id='!!!'
host_id=$HostID
set_password
;;
222.222.222)
network_id='@@@'
host_id=$HostID
set_password
;;
10.10.10)
network_id=')!)'
host_id=$HostID
set_password
;;
10.10.20)
network_id=')@)'
host_id=$HostID
set_password
;;
192.168.0)
network_id=')))'
host_id=$HostID
set_password
;;
*)
echo -e "알 수 없는 네트워크 ID(넷마스크) '$NetworkID'."
;;
esac
pwch.sh 스크립트에 실행 권한 부여
chmod +x pwch.sh
pwch.sh 스크립트 실행
./pwch.sh user1 user2 user3
user1, user2, user3 등으로 패스워드를 변경하려는 사용자의 이름을 나열합니다. 필요한 사용자 이름을 나열합니다.
스크립트가 실행되면 각 사용자에 대한 패스워드가 설정되고 설정된 패스워드와 SSH 연결 명령이 출력됩니다. 사용자 이름을 나열하여 실행하면 해당 사용자들에 대한 패스워드가 각각 변경됩니다.
참고URL
- github : https://github.com/anti1346/password-change
728x90
반응형
'스크립트' 카테고리의 다른 글
리눅스에서 운영체제와 GCC 버전을 체크하는 스크립트 (0) | 2021.02.01 |
---|---|
[shell] bash colors (0) | 2021.01.25 |
Shell 스크립트 for 반복문 (0) | 2021.01.07 |
myip 스크립트 (0) | 2020.11.04 |
[shell] 쉘 프로그래밍 (0) | 2020.09.04 |