sudo สามารถติดตั้งใหม่ได้หลังจากถูกลบออกหรือไม่?


61

นี่น่าจะเป็นปัญหาไก่ไข่ งานที่พบบ่อยที่สุดsudoคือการติดตั้งและลบซอฟต์แวร์

sudo apt-get purge <appname>

แต่sudoตัวเองสามารถลบออกได้

sudo apt-get purge sudo # Do not run this command on production computers!

นี่คือที่ที่ความสนุกมา

ubuntu@ubuntu:~$ sudo
bash: /usr/bin/sudo: No such file or directory

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

ดังนั้นจะมีวิธีการติดตั้ง sudo อีกครั้งหรือไม่?


3
ดีคนหนึ่งฉันไม่เคยรู้เลยว่า sudo สามารถกำจัดได้เช่นกัน! linux นั้นปรับแต่งได้แล้ว!
user247696

ไม่คุ้มกับคำตอบจริง ๆ เพราะมันจะสายเกินไปหากสิ่งนี้เกิดขึ้น แต่ไม่มีอะไรที่ป้องกันไม่ให้คุณตั้งรหัสผ่านสำหรับrootผู้ใช้ จากนั้นคุณสามารถใช้suหรือล็อกอินโดยตรงในฐานะรูทหากคุณมีการเข้าถึงเครื่องโดยทั่วไป (โดยทั่วไปแล้ว ssh จะได้รับการกำหนดค่าให้ปฏิเสธการพยายามลงชื่อเข้าใช้ในฐานะรูท)
IMSoP

คำตอบทั้งหมดขึ้นอยู่กับวิธีการเข้าถึงระบบไฟล์ด้วยสิทธิ์บางอย่าง ตัวอย่างเช่น (ตัวนับ): Android Asus Memopad ของฉันไม่มีsudoและไม่มี "การบูตปลอดภัย" หรือเทียบเท่า วิธีเดียวที่ฉันรู้คือไปxda-devและแพคเกจติดตั้งแบบเต็ม d / la ที่สร้างไว้ล่วงหน้า คุณโชคดีที่พูดได้ว่าคุณไม่มีข้อ จำกัด นี้
Carl Witthoft

@CarlWitthoft Android เป็นอนุพันธ์ของ linux มากกว่าที่เป็น linux distro google มีการเปลี่ยนแปลงมากมายเช่นกัน (ซึ่งแฟน ๆ linux ส่วนใหญ่เกลียด) การรูทซึ่งเป็นที่รู้จักกันดีในสมาร์ทโฟน Android นั้นไม่ได้เป็นเพียงความพยายามที่จะได้รับพลังของลินุกซ์จริง ๆบน Android
ผู้ใช้ที่ลงทะเบียน

4
คุณเข้าสู่ระบบในฐานะ root ไม่ได้ใช่ไหม
Konrad Höffner

คำตอบ:


56

ฉันสามารถติดตั้งแอปพลิเคชันโดยใช้:

pkexec apt-get install <appname>

จากman pkexec:

  pkexec allows an authorized user to execute PROGRAM as another user. If
  username is not specified, then the program will be executed as the
  administrative super user, root.

ดังนั้นฉันคิดว่ามันน่าpkexec apt-get install sudoจะใช้ได้เหมือนกัน


แก้ไข : ตอนนี้ผมสามารถยืนยันได้: ใช่ , sudoสามารถติดตั้งใช้ใช้pkexec apt-get install sudo:

ติดตั้ง sudo อีกครั้ง

( คลิกเพื่อดูภาพขยาย )


@RaduRadeanu นี้เป็นสิ่งที่น่าสนใจฉันจะลองนี้ขอบคุณคุณ ......
Premkumar

@Premkumar ทดสอบด้วยความระมัดระวัง! คำสั่งสุดท้ายจากการถ่ายหน้าจอน่าจะเป็นในกรณีของคุณเท่านั้น: sudo apt-get install gksu ubuntu-minimal. sudoแต่ที่ดีกว่าการตรวจสอบแพ็กเกจจะถูกลบออกในเวลาเดียวกันกับ
Radu Rădeanu

5
@Thebluefish แพคเกจเรียกว่าpolicykit-1(ณ 12.04) สามารถลบออกได้ แต่ด้วยค่าใช้จ่ายในการลบแพ็คเกจที่คุณมักต้องการในระบบเดสก์ท็อปเช่นgnome-coreและubuntu-desktop(บนเซิร์ฟเวอร์มีแนวโน้มที่จะไม่จำเป็นต้องใช้แพ็คเกจที่จำเป็น) อย่างไรก็ตาม Radu กำหนดว่าบัญชีของคุณสามารถใช้ได้pkexec apt-get …อย่างไร นี่คือสิ่งที่คุณกำหนดค่าหรือเกิดขึ้นโดยอัตโนมัติและหากเป็นเช่นนั้นจะกำหนดว่าบัญชีสามารถทำอะไรได้บ้าง
Gilles

1
@Gilles ฉันจำไม่ได้ว่าจะทำการกำหนดค่าบางอย่างในแง่นี้ในอดีต ดังนั้นฉันคิดว่ามันเกิดขึ้นโดยอัตโนมัติ หากคุณรู้ว่าอะไรเป็นตัวกำหนดว่าบัญชีสามารถทำสิ่งนี้ได้โปรดแชร์ สิ่งนี้อยู่นอกขอบเขตความเชี่ยวชาญของฉัน
Radu Rădeanu

2
@Gilles ฉันคิดว่าสมาชิกของsudoกลุ่มสามารถใช้งานpkexecได้ (ประสบการณ์ของฉันอยู่ที่การเพิ่มผู้ใช้กลุ่มนี้ฟาโรห์pkexecความสามารถและลบออกจากมันเอาpkexecความสามารถในแบบนี้pkexecความสามารถดูเหมือนจะพระราชทานเดียวกันเป็นsudoความสามารถในการเริ่มต้นsudoersการตั้งค่าซึ่งจะทำให้รู้สึกตั้งแต่ความสามารถในการsudoและpkexecเป็นราก ส่วนใหญ่สิ่งที่ทำให้ผู้ใช้เป็นผู้ดูแลระบบใน Ubuntu) ฉันไม่คิดว่าการถอนการติดตั้งsudoจะลบsudoกลุ่มออก แต่ฉันไม่แน่ใจว่าการสนับสนุนของฉันเป็นจริงภายใต้สถานการณ์ที่สมเหตุสมผลทั้งหมด
Eliah Kagan

29

คุณสามารถบู๊ตเข้าสู่โหมดการกู้คืนวางลงในรูทเชลล์และติดตั้งโดยไม่ต้องใช้ sudo


16
คุณสามารถเพิ่มส่วนที่สำคัญและเกี่ยวข้องจากลิงค์ที่นี่ได้ไหม?
สมาชิกที่ลงทะเบียน

หากไม่มีการกู้คืนในเมนูการบูต grub ให้กด <kbd> e </kbd> และเพิ่ม `single` ลงใน bootline จากนั้นเมื่อ booted ตั้งรหัสผ่าน root passwdโดยใช้ Reboot normaly บน commandline enter suตามด้วยรหัสผ่านใหม่และรันapt-get install sudo(โดยไม่มีsudo
-prefix

1
คุณได้รับการเชื่อมต่ออินเทอร์เน็ตบนรูทเชลล์ได้อย่างไร?
Avinash Raj

22

ใช่sudoแพคเกจการติดตั้งใหม่จะเป็นไปได้ด้วยวิธีการchroot

  • บูตครั้งแรกจาก Ubuntu live disk

  • ติดพาร์ทิชันที่ติดตั้ง Ubuntu ก่อนหน้านี้เป็นสิ่งที่คุณไดเรกทอรี want.In /media/ubuntuกรณีที่ผมติดไว้ใน

    sudo mkdir /media/ubuntu
    sudo mount /dev/sdaX /media/ubuntu   # /dev/sdaX - previously installed Ubuntu partition.
    
  • โดยค่าเริ่มต้นคุณจะไม่สามารถรับการเชื่อมต่ออินเทอร์เน็ตหลังจาก chrooted เข้าไปในพาร์ติชันเพื่อรันคำสั่งด้านล่างเพื่อให้มันทำงาน

    for d in dev sys run proc; do sudo mount --bind /$d /media/ubuntu/$d ; done
    

ขอขอบคุณที่ @Oli สำหรับนี้ชิ้นที่ยอดเยี่ยมของรหัส

  • ตอนนี้ chroot เป็นไดเรกทอรีที่ติดตั้ง

    $ sudo chroot /media/ubuntu
    # apt-get update
    
  • ติดตั้งsudoแพคเกจโดยเรียกใช้

    # apt-get install sudo
    
  • ตอนนี้ออกจากสภาพแวดล้อมที่ chrooted

    exit
    
  • ในที่สุดก็บูตอัพ Ubuntu OS ของคุณตอนนี้ทดสอบsudoคำสั่งของคุณมันจะทำงานได้อย่างแน่นอน


4

บูตด้วยพารามิเตอร์พิเศษinit=/bin/shบนบรรทัดคำสั่งเคอร์เนล สิ่งนี้จะนำคุณเข้าสู่รูทเชลล์โดยตรงจากที่ที่คุณสามารถเรียกใช้apt-get install sudoแล้วรีบูต คุณอาจต้องเรียกใช้/etc/init.d/networking startเพื่อรับการเชื่อมต่อเครือข่ายที่ใช้งานได้ก่อน ทำได้ง่ายกว่าการเล่นแผ่นซีดีกู้คืนหรือดิสก์สดถ้าคุณถามฉัน


1

ถ้าคุณตั้งค่าแล้วหรือปรับปรุงrootรหัสผ่านของบัญชีผู้ใช้โดยการใช้คำสั่งนี้sudo passwd rootแล้วคุณไม่ต้องกังวลเกี่ยวกับการกวาดล้างsudoการเข้าสู่ระบบ .Just ลงในrootบัญชีแล้วติดตั้งsudo,

su
apt-get install sudo

ป้อนคำอธิบายรูปภาพที่นี่

คลิกที่นี่เพื่อดูภาพขยาย


ใช้งานได้หากเปิดใช้งานบัญชีรูทและใน Ubuntu มันมักจะปิดการใช้งาน suบนพีซีของฉันให้ "su: การรับรองความถูกต้องล้มเหลว" แม้ว่าฉันจะให้รหัสผ่านที่ถูกต้อง
B --овиЈ

ใช่คุณถูกต้องนั่นคือสิ่งที่ฉันพูดถ้าคุณอัปเดตรหัสผ่านบัญชีผู้ใช้รูทแล้วคุณไม่ต้องกังวลเกี่ยวกับการลบออกsudoตอนนี้ให้ลองsudo passwd rootมันจะช่วยให้คุณสามารถอัปเดตรหัสผ่านบัญชีผู้ใช้รูทได้ โดยใช้suคำสั่งเมื่อคุณสามารถเข้าสู่ระบบแล้วคุณจะมีอิสระที่จะล้าง sudo ตอนนี้ล้าง sudo โดย. sudo apt-get purge sudoเข้าสู่บัญชี root ของคุณเพื่อติดตั้งแพคเกจ sudo โดยการทำงานsuและapt-get install sudo
Avinash Raj

-1

sudo (และสิทธิ์รูทอื่น ๆ ) ใช้กับ OS ที่รันอยู่เท่านั้น หากคุณโง่และลบ sudo (หรือ / usr / สำหรับเรื่องนั้น) และไม่มีทางเลือกเช่น pkexec คุณสามารถบูตจากอย่างอื่นคัดลอกซอฟต์แวร์ที่หายไปและเริ่มใหม่อีกครั้ง

การเข้าถึงทางกายภาพจะยกเลิกความปลอดภัยของซอฟต์แวร์ใด ๆ และทั้งหมดที่ระบบของคุณอาจมี


ฉันขอแนะนำให้ขยายเพื่ออธิบายสิ่งที่คุณหมายถึงโดย "คัดลอกซอฟต์แวร์ที่มีอยู่"
Eliah Kagan

ไม่ใช่วิธีง่าย ๆ ที่จะแก้ไข
เซ

@ เซทโดยไม่มีการแทรกแซงฉันสงสัยอย่างจริงจังว่าสามารถแก้ไขได้โดยไม่ต้องเขียนคำตอบอีก
Braiam

วิธีที่เหมาะสมในการทำเช่นนั้นจะเป็น chroot แต่มีวิธีป่าเถื่อนน้อยลงมากมาย ตัวอย่างเช่นการเข้าสู่ระบบในฐานะ root (วิธีปกติ) หรือหากคุณไม่มีรหัสผ่านรูทให้ตั้งค่า init = / bin / bash เป็นพารามิเตอร์เคอร์เนลและคุณผ่านระบบ init ทั้งหมดรวมถึงการตรวจสอบสิทธิ์การเข้าสู่ระบบ
orion

-2

ปัญหานี้น่าจะเฉพาะอูบุนตูมาก ๆ ในฐานะผู้ใช้ที่ไม่ใช่อูบุนตูฉันไม่ได้เข้าใจในตอนแรกว่าทำไม sudo จะเป็นกรณีพิเศษในทางใดทางหนึ่ง (การกระจายจำนวนมากไม่ได้ติดตั้งไว้เป็นค่าเริ่มต้น)

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

แน่นอนว่าคุณต้องมีการrootตั้งรหัสผ่านนั่นคือการกำหนดค่าที่เหมาะสมมิฉะนั้นคุณจะมีระบบเหมือนหน้าต่างที่มีการกระทำที่ไม่มีใครสามารถทำได้และคุณถูกล็อคจริงๆหากsudoไม่สามารถใช้งานได้ (ต้องทำงาน/etc/ตั้งค่า$PATHและอื่น ๆ ) สิ่งที่ติดตั้งอยู่ - ซึ่งคุณอาจไม่มีหากมีสิ่งผิดปกติในการบูต)


นี่อาจเป็นข้อมูลที่มีประโยชน์ แต่ไม่สามารถตอบคำถามได้
Luís de Sousa

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

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