본문 바로가기

스크립트

리눅스에서 패스워드를 변경하는 스크립트

반응형

리눅스에서 패스워드를 변경하는 스크립트

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 문법(bash_for)  (0) 2021.01.07
myip 스크립트  (0) 2020.11.04
[shell] 쉘 프로그래밍  (0) 2020.09.04