วิธีการรันงาน cron ในฐานะผู้ใช้ที่เฉพาะเจาะจง?


15

ฉันมีคำสั่งสองสามข้อที่ฉันต้องการให้เรียกใช้งานหลังจากที่เครื่องบูทขึ้น ผู้ใช้ไม่จำเป็นต้องเข้าสู่ระบบหรืออะไรก็ตามที่พวกเขาต้องทำงาน

ฉันพบคำตอบที่ดีที่แนะนำ crontabด้วย@rebootคำหลักอย่างไรก็ตามสิ่งนี้จะทำงานในฐานะรูทและฉันต้องการเรียกใช้ในฐานะผู้ใช้เฉพาะที่สร้างขึ้นสำหรับ "บริการ" เหล่านี้ (ไม่ใช่บริการระบบจริง)

อะไรคือการออกแบบเพื่อให้ได้ผลเช่นเดียวกันกับผู้ใช้ที่ได้รับ?


ลองเรียกใช้ '$ su [ชื่อผู้ใช้] [คำสั่ง]'
LittleByBlue

คำตอบ:


26

คุณสามารถสร้าง crontab สำหรับผู้ใช้ที่ต้องการเช่น:

crontab -u <username> -e

หรือมากกว่านั้นคุณสามารถเรียกใช้crontab -eเมื่อลงชื่อเข้าใช้ในฐานะผู้ใช้รายนั้น

อีกวิธีหนึ่งคุณสามารถนำหน้าคำสั่งของคุณใน (root) crontab ด้วยsudo -u <username>เพื่อเรียกใช้คำสั่งในฐานะผู้ใช้ที่ระบุ


ขอบคุณฉันไม่สามารถทำงานกับสิ่งเหล่านั้นได้ แต่ตอนนี้ฉันเห็นแล้วว่าฉันสามารถสร้าง crontab สำหรับใครก็ได้ คำสั่งกระทบกระทั่งการทำงานได้ดีเช่นเดียวกับรูทด้วย sudo ฉันไม่รู้ว่าฉันสามารถใช้ sudo ได้ (คาดว่าจะล้มเหลวในการรอรหัสผ่าน)
Louis

2
@Louis sudoไม่ต้องการรหัสผ่านเมื่อคุณเรียกใช้เป็นรูต โดยทั่วไปคุณจะไม่ได้รับอนุญาต แต่จะยอมแพ้
kraxor

1
@kraxor - คุณสามารถเรียกใช้ crontab -e เมื่อลงชื่อเข้าใช้ในฐานะผู้ใช้รายนั้น ฉันคิดว่ามันไม่ถูกต้อง
bhv
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.