“ คุณรูตอะไร” หมายความว่าอะไร


16

นี่คือสิ่งที่ฉันได้รับ:

ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ sudo apt-get install flashplugin-installer
bash: sudo: command not found
ascendermedia@magic2tower:~$ apt-get install flashplugin-installer
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ sudo aptitude install flashplugin-nonfree
bash: sudo: command not found
ascendermedia@magic2tower:~$ aptitude install flashplugin-nonfree
E: Could not open lock file /var/lib/dpkg/lock - open (13: Permission denied)
E: Unable to lock the administration directory (/var/lib/dpkg/), are you root?
ascendermedia@magic2tower:~$ 

ผมทำอะไรผิดหรือเปล่า?

คำตอบ:


29

rootเป็นบัญชี superuser ในระบบ - (โดยพื้นฐาน) มีสิทธิ์ทั้งหมด ระบบจำนวนมากถูกกำหนดค่าเพื่อให้คุณสามารถใช้sudoคำสั่งด้านหน้าคำสั่งอื่นเพื่อรันคำสั่งนั้น "เป็น root" - นั่นคือราวกับว่าคุณเป็นผู้ใช้รูทด้วยสิทธิพิเศษเดียวกัน

โดยปกติจะเป็นกรณีที่คุณต้องการสิทธิ์รูทเพื่อติดตั้งแพ็กเกจระบบซึ่งเป็นสิ่งที่apt-getทำ ดังนั้นจึงใช้งานไม่ได้เป็นครั้งแรกเพราะคุณไม่sudoว่าง ครั้งที่สองเพราะsudoไม่ปรากฏอย่างน่าอัศจรรย์เพียงเพราะคุณวิ่งสองครั้ง และครั้งที่สาม (และครั้งที่ห้า) เพราะapt-get(และaptitude) จำเป็นต้องใช้รูทเซิร์ฟเวอร์เพื่อติดตั้งแพ็คเกจเช่นนี้

ดังที่คุณเห็นจากข้อความแสดงข้อผิดพลาดครั้งแรก sudo ไม่ได้ถูกติดตั้งหรือไม่อยู่ในพา ธ ของคุณและอาจไม่ได้รับการกำหนดค่า คุณอาจจะสามารถแทนที่ได้su -cและให้รหัสผ่านรูท (รหัสผ่านสำหรับrootบัญชี) เมื่อได้รับแจ้ง

หากคุณไม่ทราบรหัสผ่านคุณต้องก) ถามผู้ที่ทำหน้าที่นี้ให้กับคุณหากไม่ใช่ระบบของคุณหรือ b) หาวิธีกู้คืน


ส่วนใหญ่แล้วจะถูกต้องแม้ว่าฉันจะพูดถึงว่าsudoไม่เพียง แต่เรียกใช้คำสั่ง "ราวกับว่าคุณเป็นรูท" มันจะทำงานเป็นรูท หากคุณดูกระบวนการคุณจะเห็นว่ามันทำงานเหมือนรูทไม่ใช่เป็น ID ผู้ใช้ของคุณ อนึ่งในเครื่องที่ไม่ได้ตั้งขึ้นมาเพื่อช่วยให้การเข้าสู่ระบบแบบโต้ตอบโดย root โดยค่าเริ่มต้นคุณสามารถเรียกใช้เพียงsudo bashเพื่อให้ได้เปลือกราก :)
reirab

@ รีแรบฉันคิดว่าsudo -iเป็นที่ต้องการ แต่เนื่องจากมันเคารพเชลล์ปัจจุบันของคุณ
new123456

2
@ new123456 sudo -i จะใช้เชลล์เริ่มต้นสำหรับรูท sudo -s จะใช้ค่า $ SHELL สำหรับผู้ใช้ที่ดำเนินการ
bgvaughan

@reirab คุณอ้างอิงจากส่วนที่ฉันให้คำอธิบายว่า "เป็น root" หมายถึงอะไรจากมุมมองของผู้ใช้ที่เรียบง่าย
mattdm

5

คุณจำเป็นต้องใช้สิทธิ์ root apt-getเพื่อที่จะดำเนินการปรับปรุงระบบผ่านทาง

su rootคุณสามารถสลับไปยังบัญชีของรากใช้ ปรากฏว่าคุณไม่ได้sudoติดตั้งโปรแกรม


2
OP ไม่เพียง แต่ขาดsudoสิทธิ์ แต่ยังไม่ได้sudoติดตั้ง
n.st

1
จริงๆ OP ควร su sudoเพื่อรากนานพอที่จะติดตั้งและตั้งค่า
Kevin

1
@ n.st PATHอาจจะไม่ถูกต้องก็ไม่อาจจะอยู่ใน
o11c

2
@ o11c ฉันเถียงพวกเขาเป็นคนเดียวกันที่ไม่เคยพบปัญหาโดยไม่ต้อง sudo เพราะพวกเขาเข้าสู่ระบบในฐานะที่เป็นรากเสมอ
เควิน

1
@ o11c แม้ว่าจะเป็นไปได้ แต่ก็ไม่น่าจะเป็นไปได้โดยเฉพาะอย่างยิ่งตั้งแต่sudoและapt-getติดตั้งทั้งสอง/usr/binโดยค่าเริ่มต้น (อย่างน้อยใน Debian)
n.st

5

“ คุณรูตอะไร” หมายความว่าอะไร

ในการติดตั้งแพคเกจทั้งระบบ (มีอะไรapt-getบ้าง) จำเป็นต้องมีสิทธิ์รูทเนื่องจากคุณจะสร้างและเปลี่ยนแปลงไฟล์ระบบ ( rootเป็นชื่อปกติสำหรับบัญชีผู้ดูแลระบบ * nix)

ข้อความ«คุณเป็นรูทหรือไม่»เป็นข้อความเตือนความจำที่อ่อนโยนว่าคุณ "จำเป็นต้องรูท" เพื่อให้ทำงานapt-get installได้ นี่คือเหตุผลที่พบบ่อยที่สุดสำหรับปัญหาที่เกิดขึ้น (แสดงด้านบน):

/ var / lib / dpkg / lock - เปิด (13: ปฏิเสธการอนุญาต)

.

จะกลายเป็นอย่างไร

su

วิธีการดั้งเดิมของ "การรูท" คือการเรียกใช้su(และระบุรหัสผ่านของผู้ใช้รูท) su (1)ย่อมาจากs uper u ser หรือs witch u ser

โปรดทราบว่ามันสามารถใช้เป็นผู้ใช้งานได้ดังนั้นคุณสามารถเรียกใช้su johnเพื่อรับเชลล์เป็น john เล่นด้วยชื่อผู้ใช้ไม่เป็นชวเลขเป็นsusu root

เพื่อให้ใช้งานได้จะต้องเปิดใช้งานบัญชีผู้ใช้รูทและตั้งรหัสผ่านไว้ บางระบบมีการกำหนดค่า (แม้โดยค่าเริ่มต้น) โดยที่ปิดใช้งานบัญชีรูทเพื่อหลีกเลี่ยงการใช้คนอื่น ผู้โจมตีเข้าสู่ระบบด้วยบัญชีผู้ดูแลระบบ ในกรณีเหล่านั้นพวกเขาเสนอวิธีอื่นในการเรียกใช้คำสั่งการจัดการเช่น sudo

sudo

sudo (1)เป็นโปรแกรมที่อนุญาตให้คุณรันคำสั่งในฐานะผู้ใช้รายอื่น (เช่นด้านบนซึ่งมักจะทำเพื่อรูท) มีการกำหนดค่าใน/etc/sudoersและอนุญาตให้มีการควบคุมที่ละเอียดยิ่งขึ้นเช่นอนุญาตให้เรียกใช้โปรแกรมเดียวในฐานะ root สำหรับผู้ใช้เฉพาะ (ซึ่งอาจถูกตั้งค่าให้ต้องใช้รหัสผ่านของตัวเองอีกครั้ง) และยังให้บริการการบันทึก (เช่น " john ประหารระบบทำลายในฐานะรูท ")

มีตัวเลือกอื่น ๆ สำหรับ runinng พร้อมสิทธิพิเศษที่เพิ่มขึ้น (เช่นcalife ) แต่มีการใช้งานที่ต่ำกว่ามาก

บันทึกด้านบนของคุณระบุsudoว่าไม่ได้ติดตั้งบน magic2tower


0

พวกเขาได้อธิบายว่ารูทคืออะไรเมื่อคุณมีคำสั่ง "ไม่พบคำสั่ง" อาจเป็นเพราะคุณไม่ได้ติดตั้งโปรแกรมที่คุณพยายามเรียกใช้หรือคุณไม่มีเส้นทางในตัวแปร env ของคุณ

ลองเรียกใช้ comand ดังนี้:

/usr/bin/sudo apt-get install flashplugin-installer

ในลินุกซ์ distros บางอันคุณไม่สามารถเปลี่ยนเป็นรูทได้ดังนั้นทุกคำสั่ง mas จะถูกรันด้วย sudo =)


1
ใช่ถ้าคุณมีข้อความเช่นbash: sudo: command not foundความคิดที่ดีที่สุดคือการติดตั้งด้วยsudo apt-get install sudoและถ้ามันทำให้คุณมีข้อผิดพลาดเดียวกันคุณจะได้เรียนรู้ว่าการเรียกซ้ำคืออะไร
pqnet

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