![기간 수정 후 자동 만료되는 Linux 사용자를 생성하는 방법](https://rvso.com/image/109244/%EA%B8%B0%EA%B0%84%20%EC%88%98%EC%A0%95%20%ED%9B%84%20%EC%9E%90%EB%8F%99%20%EB%A7%8C%EB%A3%8C%EB%90%98%EB%8A%94%20Linux%20%EC%82%AC%EC%9A%A9%EC%9E%90%EB%A5%BC%20%EC%83%9D%EC%84%B1%ED%95%98%EB%8A%94%20%EB%B0%A9%EB%B2%95.png)
몇 기간 후에 자동 만료되는 새로운 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"