기간 수정 후 자동 만료되는 Linux 사용자를 생성하는 방법

기간 수정 후 자동 만료되는 Linux 사용자를 생성하는 방법

몇 기간 후에 자동 만료되는 새로운 Linux 사용자 계정을 만들 수 있는 PHP 응용 프로그램을 만들었습니다.

Google에서 '기간 수정 후 Linux 사용자 제거를 자동화하는 방법'에 대해 검색한 후 이 답변을 찾았습니다.https://unix.stackexchange.com/a/80971/224583

하지만 예를 들어 새 계정을 만들고 10개월 또는 5개월 후에 만료되는 등의 방법을 몰랐습니다.

내 질문은 월을 일로 변환하는 방법입니다. 예를 들어 5개월을 제공하고 일 수를 5개월로 변환합니다. 아니면 내 질문 외에 어떤 해결책이 있습니까?

답변1

유틸리티 의 만료 옵션에는 useradd형식으로 지정된 날짜가 필요합니다 YYYY-MM-DD.

-d명령 에 대한 옵션을 사용하여 해당 날짜를 계산할 수 있습니다 date. 5개월 시나리오 예를 사용하면 다음과 같습니다.

$ date +"%Y-%m-%d"
2017-04-08
$ date -d "5 months" +"%Y-%m-%d"
2017-09-08

답변2

의 스위치 -e는 매뉴얼 페이지에서 볼 수 있듯이 useradd국제 날짜 형식( )의 날짜를 예상합니다 .YYYY-MM-DD

   -e, --expiredate EXPIRE_DATE
       The date on which the user account will be disabled. The date is
       specified in the format YYYY-MM-DD.
       [...]

이제 계정이 만료되는 날짜만 명시하면 됩니다. PHP에서 이 계산을 수행할 수 있습니다. 귀하가 링크한 답변은 표준 명령줄 도구를 사용하여 수행하므로 고급 언어를 사용할 필요가 없습니다.

다음은 PHP에서 이를 수행하는 방법에 대한 예제 코드입니다.

$diffHour = 0;
$diffMinute = 0;
$diffSecond = 0;
$diffMonth = 10;
$diffDay = 0;
$diffYear = 0;

$hour = date("H") + $diffHour;
$minute = date("i") + $diffMinute;
$second = date("s") + $diffSecond;
$month = date("n") + $diffMonth;
$day = date("j") + $diffDay;
$year = date("Y") + $diffYear;

$time = mktime($hour, $minute, $second, $month, $day, $year);

$date = date("Y-m-d", $time);

최상위 블록에 변수를 입력하면 됩니다. 10개월 예시를 위해 작성했습니다. 시간을 되돌릴 수도 있습니다. 예를 들어, 7개월에서 4일을 뺀 후 만료되도록 하려면 $diffMonth = 7;및 를 설정할 수 있습니다 $diffDay = -4;.

그런 다음 날짜 값( 2018-02-09오늘 실행하는 경우(미국에 거주하는 경우 제외, 시간대와 함께 지연된 시간 시스템을 사용하고 있기 때문에 하루 전이 됨))을 bash 스크립트에 전달합니다.

Bash 코드 예:

useradd -e "2018-02-09" "rizal"

관련 정보