วิธีสร้างผู้ใช้ linux ด้วยการหมดอายุอัตโนมัติหลังจากกำหนดระยะเวลา


1

ฉันสร้างแอปพลิเคชั่น PHP ที่สามารถสร้างบัญชีผู้ใช้ linux ใหม่โดยอัตโนมัติหมดอายุหลังจากใช้งานหลายครั้ง

หลังจากค้นหาใน Google เกี่ยวกับ 'วิธีลบผู้ใช้ linux โดยอัตโนมัติหลังจากแก้ไข periode' ฉันพบคำตอบนี้https://unix.stackexchange.com/a/80971/224583

แต่ฉันไม่รู้ว่าจะทำอย่างไรเช่นสร้างบัญชีใหม่และหมดอายุหลังจาก 10 เดือนหรือ 5 เดือนเป็นต้น

คำถามของฉันคือวิธีการแปลงเดือนต่อวันตัวอย่างฉันให้ 5 เดือนและนับวันเป็นห้าเดือน หรือวิธีแก้ไขปัญหาอื่นนอกเหนือจากคำถามของฉัน

คำตอบ:


0

ตัวเลือกที่จะหมดอายุในยูทิลิตี้ต้องมีวันที่ที่ระบุในรูปแบบuseraddYYYY-MM-DD

คุณสามารถคำนวณวันที่นั้นโดยใช้-dตัวเลือกdateคำสั่ง ใช้ตัวอย่างสถานการณ์ 5 เดือนของคุณ:

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

ขอบคุณ! เหมือนที่ฉันคิดว่า 'เป็นไปได้ที่จะใช้เดือนแทนที่จะเป็นวันในคำถามนี้unix.stackexchange.com/a/80971/224583 ' อย่างไรก็ตามคุณเยี่ยมมาก!
Rizal Fakhri

0

การ-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เมื่อทำงานในวันนี้ (ยกเว้นถ้าคุณอาศัยอยู่ในอเมริกาแล้วเป็นวันก่อนหน้านี้เพราะเรายังคงใช้ระบบเวลาที่ล่าช้าพร้อมโซนเวลา)) ไปยังสคริปต์ทุบตีของคุณ

ตัวอย่างรหัสทุบตี:

useradd -e "2018-02-09" "rizal"
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.