ฉันต้องเรียกใช้คำสั่งด้วยสิทธิ์ระดับผู้ดูแล มีคนพูดว่าฉันควรรันคำสั่งในฐานะรูท ฉันจะทำสิ่งนี้ได้อย่างไร
ฉันต้องเรียกใช้คำสั่งด้วยสิทธิ์ระดับผู้ดูแล มีคนพูดว่าฉันควรรันคำสั่งในฐานะรูท ฉันจะทำสิ่งนี้ได้อย่างไร
คำตอบ:
ความเป็นไปได้ของ commandline หลักสองประการคือ:
su
และป้อนรหัสผ่านรูทเมื่อได้รับแจ้งsudo
คำสั่งด้านหน้าแล้วป้อนรหัสผ่านของคุณเมื่อได้รับแจ้งนี่เป็นวิธีที่ต้องการในระบบส่วนใหญ่รวมถึง Ubuntu, Linux Mint, (เนื้อหา) Debian และอื่น ๆ หากคุณไม่ทราบรหัสผ่านรูทอื่นให้ใช้วิธีนี้
Sudo ต้องการให้คุณพิมพ์รหัสผ่านของคุณเอง (มีวัตถุประสงค์เพื่อจํากัดความเสียหายถ้าคุณออกจากแป้นพิมพ์ของคุณไม่ได้ตั้งใจและปลดล็อคและยังให้แน่ใจว่าคุณจริงๆต้องการที่จะเรียกใช้คำสั่งที่และมันก็ไม่ได้เช่นพิมพ์ผิด.) มันมักจะมีการกำหนดให้ต้องถามอีกไม่กี่ นาทีเพื่อให้คุณสามารถเรียกใช้หลายsudo
คำสั่งอย่างต่อเนื่อง
ตัวอย่าง:
sudo service apache restart
sudo
หากคุณจำเป็นต้องเรียกใช้คำสั่งหลายเป็นรากคำนำหน้าแต่ละของพวกเขาด้วย บางครั้งการเรียกใช้เชลล์แบบโต้ตอบในฐานะรูทจะสะดวกกว่า คุณสามารถใช้sudo -i
สำหรับ:
$ sudo -i
# command 1
# command 2
...
# exit
แทนที่จะคุณสามารถใช้sudo -i
sudo -s
แตกต่างก็คือ-i
อีกครั้งฉัน nitializes สภาพแวดล้อมที่เป็นค่าเริ่มต้นมีสติในขณะที่-s
ใช้แฟ้มการกำหนดค่าของคุณให้ดีขึ้นหรือแย่ลง
สำหรับข้อมูลเพิ่มเติมดูเว็บไซต์ sudoหรือพิมพ์man sudo
บนระบบของคุณ Sudo สามารถกำหนดค่าได้มาก ตัวอย่างเช่นสามารถกำหนดค่าให้ผู้ใช้บางคนรันคำสั่งบางอย่างเป็นรูตเท่านั้น อ่านsudoers
man pageสำหรับข้อมูลเพิ่มเติม ใช้sudo visudo
สำหรับแก้ไขไฟล์ sudoers
su
คำสั่งที่มีอยู่บนระบบยูนิกซ์ชอบมากที่สุด มันช่วยให้คุณสามารถเรียกใช้คำสั่งในฐานะผู้ใช้รายอื่นได้หากคุณทราบรหัสผ่านของผู้ใช้รายนั้น เมื่อเรียกใช้โดยไม่ระบุผู้ใช้su
จะใช้ค่าเริ่มต้นเป็นบัญชีรูท
ตัวอย่าง:
su -c 'service apache restart'
คำสั่งที่จะเรียกใช้ต้องถูกส่งผ่านโดยใช้-c
ตัวเลือก โปรดทราบว่าคุณต้องมีเครื่องหมายคำพูดเพื่อไม่ให้คำสั่งแยกวิเคราะห์โดยเชลล์ของคุณ แต่ส่งผ่านไปยังรูทเชลล์ที่su
รันอยู่
ในการรันหลายคำสั่งในฐานะรูทการเริ่มเชลล์แบบโต้ตอบได้สะดวกยิ่งขึ้น
$ su
# command 1
# command 2
...
# exit
ในบางระบบที่คุณต้องการที่จะอยู่ในกลุ่มจำนวน 0 (เรียกว่าwheel
) su
เพื่อใช้ (ประเด็นคือเพื่อ จำกัด ความเสียหายหากรหัสผ่านรูทถูกรั่วไหลโดยไม่ตั้งใจกับใครบางคน)
หากมีการตั้งค่ารหัสผ่านรูทและคุณมีสิทธิ์ใช้งานนั้นคุณสามารถพิมพ์ได้root
ที่พรอมต์ล็อกอินและป้อนรหัสผ่านรูท ระวังให้มากและหลีกเลี่ยงการเรียกใช้แอปพลิเคชันที่ซับซ้อนเหมือนรูทเพราะอาจทำสิ่งที่คุณไม่ต้องการ การเข้าสู่ระบบโดยตรงในฐานะรูทนั้นมีประโยชน์ส่วนใหญ่ในสถานการณ์ฉุกเฉินเช่นความล้มเหลวของดิสก์หรือเมื่อคุณล็อคตัวเองออกจากบัญชีของคุณ
โหมดผู้ใช้คนเดียวหรือระดับการรัน 1 ยังให้สิทธิ์รูตแก่คุณ สิ่งนี้มีไว้สำหรับสถานการณ์การบำรุงรักษาฉุกเฉินเป็นหลักซึ่งไม่สามารถทำการบูตในระดับผู้ใช้หลายคนได้ คุณสามารถบูตเข้าสู่โหมดผู้ใช้คนเดียวโดยผ่านsingle
หรือemergency
บนบรรทัดคำสั่งเคอร์เนล โปรดทราบว่าการบูตเข้าสู่โหมดผู้ใช้คนเดียวนั้นไม่เหมือนกับการบู๊ตระบบตามปกติและเข้าสู่ระบบในฐานะรูท แต่ระบบจะเริ่มให้บริการที่กำหนดไว้สำหรับการรันระดับ 1 เท่านั้นโดยทั่วไปนี่เป็นจำนวนบริการที่น้อยที่สุดที่จำเป็นต้องมีระบบที่ใช้งานได้
นอกจากนี้คุณยังจะได้รับโหมดผู้เดียวโดยใช้คำสั่ง telinit นี้telinit 1
; อย่างไรก็ตามคำสั่งนี้ต้องการให้คุณได้รับสิทธิ์รูทผ่านวิธีอื่นในการใช้งาน
ในหลาย ๆ ระบบการบูทเข้าสู่โหมดผู้ใช้คนเดียวจะทำให้ผู้ใช้เข้าถึงรูทเชลล์โดยไม่ต้องใส่รหัสผ่าน โดยเฉพาะอย่างยิ่งsystemd
ระบบที่ใช้จะแจ้งให้คุณใส่รหัสผ่านรูทเมื่อคุณบูตด้วยวิธีนี้
Califeให้คุณเรียกใช้คำสั่งในฐานะผู้ใช้อื่นโดยพิมพ์รหัสผ่านของคุณเองหากได้รับอนุญาต มันคล้ายกับ sudo ที่แพร่หลายมากขึ้น (ดูด้านบน) Calife มีน้ำหนักเบากว่า sudo แต่ยังกำหนดค่าได้น้อยกว่า
Opให้คุณเรียกใช้คำสั่งในฐานะผู้ใช้อื่นรวมถึงรูท นี่ไม่ใช่เครื่องมือแบบเต็มรูปแบบเพื่อเรียกใช้คำสั่งโดยพลการ: คุณพิมพ์op
ตามด้วยตัวช่วยจำที่กำหนดค่าโดยผู้ดูแลระบบเพื่อเรียกใช้คำสั่งเฉพาะ
Super ให้คุณเรียกใช้คำสั่งในฐานะผู้ใช้อื่นรวมถึงรูท คำสั่งต้องได้รับอนุญาตจากผู้ดูแลระบบ
pkexec
เพียงแค่คำนำหน้าคำสั่งของคุณต้องการด้วยคำสั่ง โปรดทราบว่าในขณะที่วิธีนี้ใช้งานได้ในกรณีส่วนใหญ่ แต่ก็ไม่สามารถทำงานได้ในระดับสากล
ดูman pkexec
ข้อมูลเพิ่มเติม
kdesu
และkdesudo
เป็นกราฟิคส่วนหน้าsu
และsudo
ตามลำดับ พวกเขาอนุญาตให้คุณรันโปรแกรม X Window ในฐานะรูทโดยไม่ต้องยุ่งยาก พวกเขาเป็นส่วนหนึ่งของKDE ชนิด
kdesu -c 'command --option argument'
และป้อนรหัสผ่านรูทหรือพิมพ์
kdesudo -c 'command --option argument'
และป้อนรหัสผ่านของคุณ (หากได้รับอนุญาตให้ทำงานsudo
) หากคุณเลือกตัวเลือก“ เก็บรหัสผ่าน” ใน KdeSu คุณจะต้องพิมพ์รหัสผ่านรูทเพียงครั้งเดียวต่อการเข้าสู่ระบบ
Ktsuss (“ ทำให้ su ง่าย, โง่”) เป็นเวอร์ชันกราฟิกของ su
BeesuBeesuเป็น front-end แบบกราฟิกของคำสั่ง su ที่แทนที่ Gksu ในระบบปฏิบัติการที่ใช้ Red Hat มันได้รับการพัฒนาเป็นหลักสำหรับ RHEL และ Fedora
gksu
และ gksudo
gksu
และgksudo
เป็นกราฟิคส่วนหน้าsu
และsudo
ตามลำดับ พวกเขาอนุญาตให้คุณรันโปรแกรม X Window ในฐานะรูทโดยไม่ต้องยุ่งยาก พวกเขาเป็นส่วนหนึ่งของคำพังเพย ชนิด
gksu command --option argument
และป้อนรหัสผ่านรูทหรือพิมพ์
gksudo command --option argument
และป้อนรหัสผ่านของคุณ (หากได้รับอนุญาตให้ทำงานsudo
)
gksu
และgksudo
ล้าสมัย พวกเขาถูกแทนที่ด้วย PolicyKit ใน GNOME และการแจกแจงจำนวนมาก (เช่น Ubuntu) จะไม่ติดตั้งตามค่าเริ่มต้นอีกต่อไป คุณไม่ควรพึ่งพาพวกเขาที่มีอยู่หรือทำงานอย่างถูกต้อง
ใช้วิธีใดวิธีหนึ่งใน "การเรียกใช้คำสั่งเชลล์เป็นส่วนรูต" คุณจะต้องตรวจสอบให้แน่ใจว่าDISPLAY
ตัวแปรสภาพแวดล้อมหรือXAUTHORITY
สภาพแวดล้อมไม่ได้รับการรีเซ็ตระหว่างการเปลี่ยนเป็นรูท นี่อาจต้องการการกำหนดค่าเพิ่มเติมของวิธีการเหล่านั้นที่อยู่นอกขอบเขตของคำถามนี้
โดยรวมแล้วนี่เป็นแนวคิดที่ไม่ดีส่วนใหญ่เป็นเพราะกราฟิกแอปพลิเคชันจะอ่านและเขียนไฟล์กำหนดค่าเป็นรูทและเมื่อคุณลองใช้แอปพลิเคชันเหล่านั้นอีกครั้งในฐานะผู้ใช้ปกติของคุณแอปพลิเคชันเหล่านั้นจะไม่ได้รับ
sudo
จะใช้งานได้เมื่อ (1) ติดตั้งและ (2) หากการใช้งานของคุณอยู่ในไฟล์ sudoers และอนุญาตให้ดำเนินการได้
pkexec
มีการแทนที่gksu
/ gksudo
ในการกระจายจำนวนมากในปัจจุบัน
เนื่องจากคำถามไม่ใช่เฉพาะ Linux นี่คือวิธีที่คุณบรรลุเป้าหมายเดียวกันใน Solaris 9+ (หรือ Trusted Solaris 8):
Solaris ตั้งแต่รุ่นที่ 9 ได้รวมชุดเครื่องมือที่เรียกว่า RBAC หรือการควบคุมการเข้าถึงตามบทบาท
ส่วนสำคัญของ RBAC คือการให้สิทธิ์และการอนุญาตแก่ผู้ใช้และ / หรือบทบาทหรือการอนุญาตบทบาทให้กับผู้ใช้คุณสามารถสร้างแบบจำลองที่สวยงามอย่างเหลือเชื่อสำหรับผู้ที่สามารถทำงานในสิ่งที่มีสิทธิ์พิเศษ
โดยพื้นฐานแล้วคุณระบุการอนุญาตใน / etc / security / auth_attr จากนั้นให้สิทธิ์ผู้ใช้หรือบทบาทใน / etc / user_attr
คุณกำหนดโปรไฟล์ใน / etc / security / prof_attr จากนั้นคุณเชื่อมโยงคำสั่งกับโปรไฟล์เหล่านั้นใน / etc / security / exec_attr ตามด้วยการกำหนดโปรไฟล์เหล่านั้นให้กับผู้ใช้ในไฟล์ / etc / user_attr
เมื่อสิ่งเหล่านั้นทำคุณทำงานจริงpfexec <command>
ในการดำเนินการคำสั่งด้วยสิทธิพิเศษหรือการอนุมัติที่ได้รับไปที่ผู้ใช้ที่คำสั่ง
สิ่งที่ดีเกี่ยวกับ RBAC คือไม่มีสิทธิ์เพิ่มเติมที่กำหนดให้กับคำสั่งหรือผู้ใช้เฉพาะกับการรวมกันของคำสั่งผู้ใช้ + ดังนั้นจึงปลอดภัยกว่าการสร้างไบนารี + s หรือเพียงแค่ใช้ sudo เพื่อให้ผู้ใช้สามารถดำเนินการได้ทุกอย่าง (ฉันรู้ว่าคุณสามารถล็อค sudo แต่ในประสบการณ์ของฉันคนส่วนใหญ่ไม่ได้)
ข้อดีอีกประการของ RBAC คือคุณสามารถสร้างบัญชีบทบาทและกำหนดบทบาทนั้นให้กับผู้ใช้ที่สามารถกลายเป็นรูตได้ด้วยคำสั่ง 'su' และรหัสผ่านรูท ผู้ใช้รูทจะสามารถเข้าสู่ระบบในโหมดผู้ใช้เดียวซึ่งดีกว่า (ในความคิดของฉัน) กว่ารุ่นลินุกซ์ที่คุณสามารถปิดการใช้งานรหัสผ่านรูpasswd -d root
ทหรือล็อคบัญชีpasswd -l root
รูทได้ ยากเมื่อมีสิ่งผิดปกติ
เบน Rockwood มีโพสต์บล็อกที่ดีเกี่ยวกับอาร์แบคที่สามารถอ่านได้ในการใช้อาร์แบคบน (เปิด)
หรือคุณสามารถสั่งให้มหาอำนาจบางอย่าง ฉันกำลังพูดถึงสิทธิ์พิเศษที่คำสั่งถูกดำเนินการโดยได้รับอนุญาตจากเจ้าของ
รับเส้นทางของคำสั่งโดย#which <command>
และตั้งค่า SUID หรือ SGID สำหรับเส้นทางนั้น
ควรได้รับบิต PS - SUID และ SGID ด้วยความระมัดระวัง พวกเขาสามารถทำให้ระบบของคุณไม่ปลอดภัย