1시간마다 Linux 사용자 비밀번호 자동 변경

1시간마다 Linux 사용자 비밀번호 자동 변경

1시간마다 Linux 사용자의 비밀번호를 변경하고 싶습니다. cron을 통해 호출되는 bash 스크립트를 사용하거나 Linux cronjob을 통해 직접 명령을 사용하는 방법에 대한 아이디어가 있는 사람이 있습니까?

답변1

@SINA GH의 답변을 확장하지만 직접적인 답변을 위해 단순화합니다.

mkpasswd를 사용할 수 있는 경우:

echo '0 * * * * root mkpasswd -l 50 cloud-user' >> /etc/crontab

mkpasswd를 사용할 수 없는 경우:

echo '0 * * * * root < /dev/urandom tr -dc A-Z-a-z-0-9 | head -c50 | passwd --stdin cloud-user' >> /etc/crontab

그러면 개별 사용자의 비밀번호가 매시간 무작위로 생성된 문자열로 자동 변경되도록 crontab에 줄이 추가됩니다.

그것을 파괴:

echo '...' >> /etc/crontab

일정에 따라 실행되도록 새 행/항목 추가

0 * * * * root

평일 매시간 0분에 루트로 실행

< /dev/urandom tr -dc A-Z-a-z-0-9

무작위 데이터 생성 및 문자 필터링

| head -c50

stdin에서 처음 50자(임의의 문자)를 가져옵니다.

| passwd --stdin cloud-user

클라우드 사용자의 비밀번호를 stdin에서 전달된 비밀번호로 설정합니다(처음 50자 임의 문자).

답변2

임의의 문자열로 매일 사용자 비밀번호를 변경하십시오.
용법:autopass.sh username

설치하다:

다음 코드 autopass.sh/root/.

#!/bin/bash
set -e
MyUser=$1
RandPass=$(< /dev/urandom tr -dc A-Z-a-z-0-9 | head -c12)
set +e
echo -e "$RandPass\n$RandPass\n" | passwd $MyUser &> /dev/null && echo "$(date) --> Passwd: $RandPass" >> /root/${MyUser}-pass.txt || echo "$(date) --> Error: failed to change pass" >> /root/${MyUser}-pass.txt
exit 0

권한 실행: chmod u+x autopass.sh
crontab 편집: crontab -e파일에 추가: 0 3 * * * /root/autopass.sh username
매일 스크립트가 임의의 문자열로 비밀번호를 변경하여 /root/username-pass.txt파일 에 저장합니다.

관련 정보