ผู้ใช้ใดรันคำสั่งที่กำหนดไว้ใน /etc/rc.local?


13

มีคำสั่งใน/etc/rc.localวิ่งsuตามค่าเริ่มต้น?
ฉันจำเป็นต้องระบุเฉพาะsudoก่อนคำสั่งแต่ละคำสั่งหรือsuไม่

คำตอบ:


17

suไม่ใช่ผู้ใช้แต่เป็นโปรแกรมที่จะเรียกใช้คำสั่ง / โปรแกรมที่ตามมาภายใต้ข้อมูลประจำตัวอื่นของผู้ใช้รายอื่นนอกเหนือจากผู้ใช้งานที่ดำเนินการคำสั่ง มันคล้ายกันมากกับsudoเรื่องนั้น

หากไม่มีการระบุผู้ใช้อื่นทั้งสองคำสั่งจะใช้ค่าเริ่มต้นเป็นคำสั่งภายใต้ข้อมูลประจำตัวอื่นของrootผู้ใช้ superuser / administrator

ความแตกต่างที่สำคัญระหว่างsuและsudoคือ:

  • su คุณต้องทราบรหัสผ่านของผู้ใช้สำรองที่
  • sudoจะแจ้งให้ใส่รหัสผ่านของผู้ใช้ที่รันsudoคำสั่งและต้องการตั้งค่าเพื่อให้ผู้ใช้ได้รับอนุญาตให้รันคำสั่ง / โปรแกรมที่ร้องขอ

(เมื่อrootเรียกใช้รหัสผ่านใด ๆsuหรือsudoไม่จำเป็นต้องใช้)


เช่นเดียวกับสคริปต์ init ใด ๆ/etc/rc.localสคริปต์ถูกเรียกrootใช้งานโดยผู้ใช้และคุณไม่จำเป็นต้องผนวกอย่างใดอย่างหนึ่งsuหรือsudoกับคำสั่ง / โปรแกรมที่จำเป็นต้องรันในฐานะรูท

คุณอาจยังจำเป็นต้องใช้suหรือsudoในสคริปต์เริ่มต้นของคุณหากคำสั่งเหล่านั้นจำเป็นต้องดำเนินการไม่rootเพียง แต่เป็นบัญชีผู้ใช้ / บริการอื่น ...

su -oracle/do/something/as/oracle/user


ฉันจะทำอย่างไรถ้าฉันใส่ su - user /path/to/script.sh ใน rc.local และเมื่อทำการจัดหามันจะแจ้งให้ฉันใส่รหัสผ่านของผู้ใช้ (และปิดเทอร์มินัลภายหลัง) ฉันจะไม่ขอรหัสผ่านของผู้ใช้ได้อย่างไร
อลอนโซ่ s

10

ใช่สคริปต์และโปรแกรมทั้งหมดถูกเรียกโดยรูทโดยตรง

/etc/rc.localไฟล์ที่เรียกว่าโดยตรงจากกระบวนการ init


1
ดังนั้นเราไม่จำเป็นต้องเพิ่มsudoก่อนคำสั่ง/etc/rc.localใช่ไหม
Benyamin Jafari
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.