ผู้ใช้ไม่ได้อยู่ในไฟล์ sudoers เหตุการณ์นี้จะถูกรายงาน


24

ฉันต้องการติดตั้งแพคเกจ เพื่อที่ฉันต้องการเข้าถึงราก อย่างไรก็ตามระบบบอกว่าฉันไม่ได้อยู่ในไฟล์ sudoers เมื่อพยายามที่จะแก้ไขมันก็บ่นเหมือนกัน! ฉันจะเพิ่มตัวเองในไฟล์ sudoers ได้อย่างไรถ้าฉันไม่มีสิทธิ์แก้ไขไฟล์?

ฉันได้ติดตั้งระบบนี้และผู้ดูแลระบบเท่านั้น ฉันควรทำอย่างไร

แก้ไข : ฉันได้ลองvisudoไปแล้ว มันทำให้ฉันต้องอยู่ใน sudoers ตั้งแต่แรก

amarzaya@linux-debian-gnu:/$ sudo /usr/sbin/visudo 

We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:

    #1) Respect the privacy of others.
    #2) Think before you type.
    #3) With great power comes great responsibility.

[sudo] password for amarzaya: 
amarzaya is not in the sudoers file.  This incident will be reported.
amarzaya@linux-debian-gnu:/$ 

4
user not(is) the sudoers fileดีอย่างเห็นได้ชัด (สะกดผิดในชื่อ)
Hello71

8
คุณอยู่ในรายการซนแล้ว - xkcd.com/838
Aaron Newton

คำตอบ:


18

มันจะเป็นช่องโหว่ของการรักษาความปลอดภัยหากคุณสามารถเพิ่มตัวเองลงไป/etc/sudoersโดยไม่ต้องเข้าถึง sudo หรือรูท โดยทั่วไปแล้วทุกคนสามารถทำให้ตัวเองรูต

โดยทั่วไปคุณต้องขอให้ผู้ดูแลระบบของเครื่องนั้นเพิ่มคุณหรือติดตั้งแพคเกจสำหรับคุณตามนโยบายของไซต์

คุณควรแน่ใจว่าใช้ visudo เพื่อแก้ไขไฟล์ sudoers - ตรวจสอบว่าไวยากรณ์นั้นถูกต้องก่อนเขียนไฟล์ และคุณสามารถใช้โปรแกรมแก้ไขอื่นนอกเหนือจาก vi ด้วย visudo โดยค่าเริ่มต้นจะใช้สิ่งที่คุณตั้งไว้$EDITORและหากคุณไม่ได้ตั้งค่าไว้คุณสามารถทำได้

# EDITOR=nano visudo

เพื่อใช้ตัวแก้ไขนาโนแทน


5
ฉันเป็นผู้ดูแลระบบเนื่องจากเป็นเครื่องของฉันและฉันได้ติดตั้งระบบนี้แล้ว แต่ก็ไม่ช่วย :(
Sergiy Belozorov

9
หากเป็นระบบของคุณคุณควรป้อนรหัสผ่านสำหรับผู้ใช้รูทเมื่อทำการติดตั้ง ดังนั้นเข้าสู่ระบบในฐานะ 'รูท' แล้วทำสิ่งที่ visudo
Hamish Downer

จริง ความผิดของฉัน. ฉันลืมว่าฉันได้ใส่รหัสผ่านระหว่างการติดตั้งแล้ว
Sergiy Belozorov

24

เข้าสู่ระบบในฐานะ root และใช้/usr/sbin/visudoเพื่อแก้ไขไฟล์และเพิ่มชื่อผู้ใช้ของคุณ vi / vim ปกติจะไม่สามารถแก้ไขไฟล์ได้

วิธีที่ง่ายที่สุดคือลงไปเรื่อย ๆ จนกว่าคุณจะเห็นบรรทัด " root ALL=(ALL) ALL" และเพิ่มตัวคุณเองภายใต้ไวยากรณ์เดียวกัน ( yourusername ALL=(ALL) ALL) หรือคุณสามารถอ่านmanudo ของ sudoersหากคุณต้องการให้สิทธิพิเศษเพิ่มเติมแก่คุณ


มันต้องให้ฉันอยู่ในรายการ sudoers ในตอนแรกเพื่อที่จะใช้ visudo ฉันติดตั้ง Debian นี้แล้วไม่มีผู้ดูแลระบบคนอื่น
Sergiy Belozorov

หากคุณเข้าสู่ระบบในฐานะ root คุณไม่จำเป็นต้องเรียกใช้sudo visudo; /usr/sbin/visudoเพียงแค่เรียกใช้ แต่ดูเหมือนว่าคุณค้นพบสิ่งนี้แล้วจากความเห็นของคำตอบอื่น ๆ
Ricket

ไม่เพียงพอที่จะเพิ่มผู้ใช้ที่เกี่ยวข้องในกลุ่ม "sudo" หรือ "sudoers" (ขึ้นอยู่กับ distro) น่าเศร้าในกรณีของฉันมันไม่ทำงาน แต่ฉันสามารถสาบานนี้เคยทำงาน ... ?
Gregor

5

เพิ่งพิมพ์คำสั่ง:

$ su

และถามรหัสผ่าน "รูท" พิมพ์แล้วและบูม ... มันใช้งานได้!

ปัญหานี้เป็นความผิดพลาดของฉัน เนื่องจากจะกลับมาที่สถานที่ในเวลาที่ฉันสร้างชื่อผู้ใช้และรหัสผ่าน


ขอบคุณที่เป็นประโยชน์จริง ๆ และช่วยเบคอนของฉัน! แต่ฉันอยากรู้ว่าทำไมเพียงแค่เพิ่มคำสั่งนี้แล้วรหัสผ่านรูทจะอนุญาตให้ยกระดับสิทธิ์ .... ดูเหมือนว่าจะเอาชนะวัตถุประสงค์ของข้อความ "ผู้ใช้ไม่ได้อยู่ในไฟล์ sudoers เหตุการณ์นี้จะมีการรายงาน"
Sol

1

บางทีวิธีที่ง่ายที่สุดเมื่อคุณรูตคือ:

echo 'amarzaya ALL=(ALL) ALL' >> /etc/sudoers

7
คุณควรใช้ visudo เพื่อแก้ไขไฟล์ sudoers แทนที่จะแก้ไขโดยตรงหรือ echo text สิ่งนี้จะช่วยให้มั่นใจว่าถูกต้องตามหลักไวยากรณ์และทำให้แน่ใจว่าคุณไม่ล็อคตัวเองไม่ให้เข้าถึงหรือให้สิทธิ์การเข้าถึงที่ไม่เหมาะสมแก่บางคน
pkaeding

1

หากไฟล์ sudoers ของคุณมีบรรทัดประเภทนี้อยู่แล้ว

# Members of the admin group may gain root privileges
%admin ALL=(ALL) ALL

จากนั้นวิธีที่สะอาดที่สุดในการทำสิ่งต่าง ๆ น่าจะเป็นการให้สิทธิ์adminกลุ่มแก่ผู้ใช้ของคุณ ตัวอย่างเช่นในการเพิ่มoracle ผู้ใช้ในadmin กลุ่ม :

usermod -aG admin oracle

นั่นคือสิ่งที่ฉันกำลังมองหา สำหรับฉันที่สะอาดที่สุดเช่นกันไม่ต้องยุ่งกับไฟล์ sudoers
webjunkie

1
คำสั่งที่ถูกต้องคือusermod -g oracle admin
kvanberendonck

-1: usermod -g $group $userไวยากรณ์คือ คุณอาจจะกำลังคิดของไวยากรณ์ซึ่งเป็นadduser adduser $user $group
Blacklight Shining

1
... usermod -aG $group $userจริงคุณจะมีโอกาสมากที่สุดที่ต้องการ -gตั้งค่ากลุ่มหลักของผู้ใช้เป็นกลุ่มที่คุณระบุและ-Gไม่-aต้องการจะลบผู้ใช้ออกจากกลุ่มที่ไม่อยู่ในรายการ -gจะเปลี่ยนความเป็นเจ้าของกลุ่มของไฟล์ทั้งหมดที่กลุ่มก่อนหน้าเป็นเจ้าของในไดเรกทอรีบ้านของผู้ใช้ ดังนั้นถ้าคุณชอบฉันและคุณตั้ง umask ของคุณเป็น007
Blacklight Shining

1
@BlacklightShining คุณถูก. ไวยากรณ์ที่ไม่ถูกต้องถูกเสนอโดยผู้แสดงความคิดเห็นก่อนหน้าและเนื่องจากoracleมักจะเป็นกลุ่มเช่นกันจึงมีช่องว่างสำหรับความสับสน ฉันไม่ควร "แก้ไข"
Alain Pannetier

-1

ในกรณีที่คุณยังสามารถใช้การเข้าถึงรูทได้suคุณสามารถใช้หนึ่งซับไลน์เพื่อเพิ่มตัวเองใน/etc/sudoers/:

su -c 'echo $USER ALL=(ALL)ALL >> /etc/sudoers'

หากต้องการเปิดใช้งานการเปลี่ยนแปลงให้ออกจากระบบและอีกครั้ง ยกตัวอย่างเช่นจบวาระงาน X exitหรือออกจากระบบผ่านเปลือกใส่


-1: ดูpkaeding ของความคิดเห็น
แบล็กไลท์ส่องแสง

-1

หากคุณไม่สามารถใช้sudoคำสั่งคุณสามารถใช้วิธีการต่อไปนี้:

  1. กดCtrl+ Alt+F1
  2. ออกจากระบบผู้ใช้หากผู้ใช้ไม่ได้รูท
  3. เข้าสู่ระบบในฐานะ root
  4. ใช้สิทธิ์รูท
  5. ออกจากระบบ ( exit) - Ctrl+ Alt+ F7เพื่อไปที่ GUI

-1: นี้จะทำงานเฉพาะในบางสภาพแวดล้อมในท้องถิ่นที่จริงมี GUI
แบล็กไลท์ส่องแสง

-1

ทั้งหมดที่คุณต้องเพิ่มของคุณ<username>ไปยังwhellกลุ่ม

# usermod -aG whell username

จากนั้นเข้าสู่ระบบด้วยชื่อผู้ใช้ของคุณและสนุกกับ :)


-3

เข้าสู่ระบบโดยใช้สิ่งต่อไปนี้ก่อน:

$ su

จากนั้นไปข้างหน้าด้วย:

$ sudo apt-get update

หรืออะไรก็ตามที่เป็นปกติ


1
คุณไม่ต้องการsu- sudo ทำสิ่งนี้
Simon Sheehan

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

@ aaron.newton ฉันจะอ่านมันเป็น Switch User และ DO; คุณสามารถเลือกผู้ใช้ใด ๆ เพื่อเรียกใช้คำสั่งเช่นเดียวกับการ-uตั้งค่าสถานะ มันเป็นส่วนใหญ่จะใช้สำหรับราก suแต่เพื่อให้เป็น
แบล็กไลท์ส่องแสง

@ aaron.newton ฉันจะอ่านมันเป็น Switch User และ DO; คุณสามารถเลือกผู้ใช้ใด ๆ เพื่อเรียกใช้คำสั่งเช่นเดียวกับการ-uตั้งค่าสถานะ มันเป็นส่วนใหญ่จะใช้สำหรับราก suแต่เพื่อให้เป็น
แบล็กไลท์ส่องแสง
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.