วิธีการเรียกใช้แอปพลิเคชันเมื่อเริ่มต้นในฐานะผู้ใช้บางคน


17

มีวิธีที่จะเปิดใช้งานแอปพลิเคชันในระหว่างการเริ่มต้นภายใต้บัญชีผู้ใช้ที่แน่นอนหรือไม่?

ตัวอย่างเช่นฉันต้องการa_small_appทำงานภายใต้บัญชีผู้ใช้bob(ซึ่งอยู่ในกลุ่มbobsgroup) ฉันจะเพิ่มบางสิ่งใน/etc/init.dหรือไม่

หมายเหตุ: ฉันไม่ต้องการให้แอปพลิเคชันเริ่มต้นหลังจากที่ผู้ใช้ลงชื่อเข้าใช้แต่เมื่อคอมพิวเตอร์เริ่มทำงาน


คุณต้องการให้แอปเริ่มก่อนลงชื่อเข้าใช้ในหน้าต่างเข้าสู่ระบบหรือไม่
Martin Owens -doctormo-

@ มาร์ติน: ก็ไม่สำคัญ ... ฉันใช้ Apache เป็นตัวอย่างที่นี่ มันเริ่มเมื่อไหร่
Nathan Osman

คำตอบ:


13

วิธีการเริ่มต้นระบบไม่เชื่อเรื่องพระเจ้า คุณสามารถใช้ในครั้งนี้/etc/rc.localเป็น/etc/init.d/...สคริปต์การกำหนดค่าแฟ้มพุ่งพรวดและอาจกำหนดค่า systemd เกินไป

sudo -u oli /full/path/to/application

คำสั่งนี้จะทำงานในฐานะผู้ใช้รูทและsudoจะเลื่อนลงไปที่ผู้ใช้ "oli" เห็นได้ชัดว่าเปลี่ยนผู้ใช้และคำสั่งเพื่อวัตถุประสงค์ของคุณ

ฉันควรเพิ่มว่ามีอย่างน้อยหนึ่งโหลในการทำเช่นนี้ ... แต่จากประสบการณ์ของฉันพวกเขาทั้งหมดเหมือนกันในผล นี่คือตัวอย่างของการพุ่งพรวดโดยใช้setuidบทของมัน:

start on (filesystem and stopped udevtrigger)
stop on runlevel [06]

setuid oli
respawn

exec /full/path/to/application

ฉันขอแนะนำตัวอย่าง
waltinator

ฉันได้รับsudo: unknown group: 1004
ThorSummoner

นอกจากนี้poke : เวลาในการอัพเดตบรรทัดเกี่ยวกับการพุ่งพรวด
muru

@muru ฉันจะ แต่ไม่ต้องการกลุ่ม sudo จะใช้กลุ่มเริ่มต้นของผู้ใช้ที่ระบุ
Oli

แก้ไขให้ดีขึ้นแล้ว คำสั่งนั้นผิดไปสามปีแล้วเพราะมีคนปรับปรุงมัน! : D
muru

1

ดูเหมือนว่าคำตอบแรกจะไม่ทำงานใน Ubuntu 14.10 อีกต่อไป

นี่คือวิธีที่ฉันทำ (วางไว้ใน / etc / rc.local)

su <username> - -c "<command>"

sudo -i -u ...หากคุณจำเป็นต้องเข้าสู่ระบบเปลือกเทียบเท่าคือ
muru
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.