[shell script] 오늘 날짜를 기준으로 패스워드 만료 갱신 스크립트

HYEOB KIM·2022년 5월 25일
1

Shell

목록 보기
67/71

요구사항

  • 오늘 날짜를 기준으로 계정에 디폴트로 설정된 만료 기간 120일로 패스워드 만료 갱신
  • 만료 기간이 never 계정의 경우 생략(ex: root, daemon ...)

스크립트 작성

#!/bin/bash

# 필드분리자를 줄바꿈으로 줘서 정확하게 파싱하도록
IFS=$'\n'

# 계정 정보에서 첫 번째 필드만 받아서 username 변수에 저장
for username in $(cut -f 1 -d : /etc/passwd)
do
	echo "username: $username"
	echo

	# 패스워드 만료 날짜 확인
	expire_date=$(chage -l $username | grep -i "^password expires" | cut -f 2 -d :)
	echo "Current Expire Date: $expire_date"
	
	# 만료 날짜가 never가 아닌 계정들에 대해서 오늘 날짜로 만료 날짜 갱신
	if [ $expire_date != " never" ]
	then
		chage -d $(date "+%Y-%m-%d") $username
		echo "Renew Expire Date..."
		echo "-> New Expire Date: $(chage -l $username | grep -i "^password expires" | cut -f 2 -d :)"
	fi
	echo "-----------------------------------------------"
done
profile
Devops Engineer

0개의 댓글