สิทธิ์ Sudo เสมอ


17

ฉันเคยค้นหาสิ่งนี้และคำตอบน่าจะอยู่ในสถานที่หลายล้านแห่งบน 'เน็ต แต่ฉันไม่สามารถหาได้ ...

คุณให้สิทธิ์รูทบัญชีของคุณใน Linux อย่างไรเพื่อที่คุณไม่จำเป็นต้องใช้sudoทุกคำสั่งเดียวที่ต้องการสิทธิ์พิเศษ มันยิ่งน่ารำคาญยิ่งกว่าการควบคุมบัญชีผู้ใช้ของ Windows

(ได้โปรด ... ฉันไม่ต้องการบรรยายว่าฉันจะมีชีวิตที่อันตรายได้อย่างไรขอบคุณ)

คำตอบ:


12

มันใช้งานได้สำหรับคุณหรือไม่

sudo EDITOR=gedit visudo

เปลี่ยนบรรทัดนี้:

%admin ALL=(ALL) ALL

ถึงบรรทัดนี้:

%admin ALL=(ALL) NOPASSWD: ALL

ไม่มีการบรรยาย :)


3
+1 sudoแต่ที่เป็นปัญหาก็ยังคงต้องการให้ฉันพิมพ์
user541686

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

2
ฉันได้ทำไปแล้วเพื่อตั้งรหัสผ่านรูทและเข้าสู่ระบบrootและแน่นอนว่าฉันไม่จำเป็นต้องทำsudoอีกต่อไป ปัญหาคือการค้นหาวิธีการทำสิ่งเดียวกันสำหรับบัญชีอื่น
user541686

7

คุณทำไม่ได้ สองสิ่งที่คุณสามารถทำได้คือ:

1) เรียกใช้ sudo -s เพื่อคงสถานะรูทเมื่อคุณวางแผนที่จะป้อนคำสั่งหลายคำสั่งและไม่ต้องการให้คำนำหน้าด้วย sudo

2) คุณสามารถกำหนดค่าไฟล์ sudoers ของคุณเพื่อให้คุณเรียกใช้ sudo โดยไม่ต้องป้อนรหัสผ่าน


2
สิ่งที่ฉันไม่เข้าใจคือถ้าฉันสามารถเข้าสู่ระบบในฐานะ "รูท" ได้อย่างง่ายดายและไม่ต้องคิดถึงคำว่า "sudo" ดังนั้นทำไมฉันไม่สามารถทำสิ่งเดียวกันในบัญชีอื่นได้
user541686

@Lambert: เนื่องจากบัญชีอื่น ๆ UID 0เหล่านั้นไม่ได้
JanC

1
อืม ... ดังนั้นแม้แต่เพิ่มตัวเองลงในกลุ่มsudoหรือแม้แต่สิ่งที่ไม่พอ? :(
user541686

2

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

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


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

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

การออกแบบความปลอดภัยของ Ubuntu นั้นใช้สำหรับสภาพแวดล้อมภายในบ้านที่มีผู้ใช้หลายคน การเปลี่ยนแปลงทั่วทั้งระบบควรกระทำโดยบุคคลที่เชื่อถือได้เท่านั้นไม่ใช่เฉพาะคนที่มีบัญชีผู้ใช้หรือเกิดขึ้นเพื่อยืมบัญชีของคุณ
Jeremy Bicha

@JeremyBicha พวกเขาไม่ได้เพิ่มอะไรเลยนอกเหนือจากการออกแบบระบบความปลอดภัย / การอนุญาตแบบเดิมที่ Imo ทำขึ้นสำหรับการใช้ร่วมกันหลายผู้ใช้บนเมนเฟรมคอมพิวเตอร์ ... นี่คือคำถามที่เหมาะสมสำหรับบ้าน แต่เป็นปัญหาอื่น
masterxilo

1

คุณสามารถติดตั้ง / เปิดใช้งานคำสั่ง 'su' และกำหนดค่าเชลล์ให้รันเมื่อเริ่มต้น


มีวิธี "โดยตรง" อีกหรือไม่ เช่นการใช้sudoersหรือเพิ่มตัวเองในกลุ่มพิเศษบางอย่าง?
user541686

sudo -s ทำสิ่งเดียวกัน
psusi

@psusi: แต่คำถามก็ไม่ใช่ประเด็นที่ชัดเจนที่จะไม่ต้องทำอย่างนั้นทุกครั้งที่ฉันเริ่มคอมพิวเตอร์?
user541686

มีวิธีใดที่จะไม่ขอรหัสผ่านทุกครั้งหรือไม่
user541686

0

ที่ถูกต้องคำตอบให้กับคำถามของฉัน:

คุณสามารถเปลี่ยน ID ผู้ใช้ (UID) และ ID กลุ่ม (GID) เป็นศูนย์/etc/passwdได้เพื่อรับสิทธิ์รูท

อย่างไรก็ตาม:

หากคุณเป็นเช่นนั้นคุณจะไม่สามารถลงชื่อเข้าใช้ได้ !

อย่างไรก็ตามคุณสามารถสร้างผู้ใช้ใหม่และเปลี่ยนกลุ่ม / ID ผู้ใช้เป็น 0 โดยพื้นฐานแล้วผู้ใช้รายนั้นจะเป็นคนอื่นrootแต่ด้วยโฟลเดอร์โปรไฟล์อื่น ฯลฯ

จากนั้นคุณสามารถใช้โปรไฟล์นั้นราวกับว่าคุณเป็นrootตัวของตัวเอง! : D

"ทางออก" อื่น:

(ถ้าคุณชอบรหัสผ่านเปล่า)

  1. เรียกใช้คำสั่งด้านล่างและเปรียบเทียบผลลัพธ์

    sudo cat /etc/shadow
    sudo sed "s/\(^$(whoami):\)[^:]*/\1/" /etc/shadow
    

    คุณควรเห็นว่าอันหลังได้ลบคำที่ไม่มีความหมายต่อหน้าชื่อผู้ใช้ของคุณ (ซึ่งอ่านโดยใช้$(whoami)) (ถ้าคุณไม่ทำไม่ต้องดำเนินการต่อ!)

  2. เมื่อคุณพร้อมให้รันคำสั่งเพื่อเขียนทับ/etc/shadow(ในความเสี่ยงของคุณเอง!)

    sudo sed -i.bak "s/\(^$(whoami):\)[^:]*/\1/" /etc/shadow
    
  3. ตอนนี้บัญชีของคุณมีรหัสผ่านว่างเปล่าและคุณไม่ควรได้รับแจ้งให้ขออนุญาต sudo อีกต่อไป (อย่างน้อยนั่นคือสิ่งที่เกิดขึ้นกับฉัน)

บันทึก:

นอกจากนี้คุณยังอาจต้องเปิดใช้เข้าสู่ระบบ passwordless ; ฉันไม่แน่ใจว่าจำเป็นหรือไม่


ฉันได้อ่านบางแห่งที่ใช้ "sudo bash" ทำงานแล้ว คุณเคยลองสิ่งนี้หรือไม่?
ลูกศิษย์อยากรู้อยากเห็น

@CuriousApprentice: sudoจุดรวมคือการหลีกเลี่ยง
user541686

0

ฉันแนะนำอย่างแรงไม่ให้ GID 0. ตัวคุณเอง SUDO ไม่ได้ทำสิ่งที่ถูกคอมไพล์ เหตุผลเดียวที่จะสร้างบัญชีผู้ใช้รูทอื่น (โฮมไดเร็กตอรี่คือ / root / หรือไดเร็กตอรี่ที่กำหนดเองเช่น / home / root2 /) คือมี administratos สองตัวในระบบที่ไม่ต้องการแชร์รหัสผ่านหนึ่งรูท

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

แต่ถ้าคุณรู้สึกว่าคุณมีความปลอดภัยผู้ใช้ปกติ (ฉันใช้รหัสผ่าน STRONG ด้วยวิธีนี้เป็นการส่วนตัว) ฉันให้ผู้ใช้ของฉัน (เช่น tatu.staff / uid = 1xxx, gid 50) รัน SUDO โดยไม่ใช้รหัสผ่าน ดังนั้นฉันไม่เคยผสมสิ่งที่เป็นเพียงสำหรับรูทและอะไรสำหรับผู้ใช้

ใช้คำแนะนำด้านบนเพื่อสร้างไฟล์ sudoers (และกลุ่มที่เกี่ยวข้อง) เพื่อให้ผู้ใช้ที่ต้องการเรียกใช้ SUDO โดยไม่ต้องใช้รหัสผ่านหรือดูไฟล์ตัวอย่างฉันจะวางที่นี่:

#
# This file MUST be edited with the 'visudo' command as root.
#
# Please consider adding local content in /etc/sudoers.d/ instead of
# directly modifying this file.
#
# See the man page for details on how to write a sudoers file.
#
Defaults        env_reset
Defaults        mail_badpass
Defaults        secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Defaults        !authenticate

# Host alias specification

# User alias specification

# Cmnd alias specification

# User privilege specification
root    ALL=(ALL:ALL) ALL
YOURUSER    ALL=(ALL) NOPASSWD:ALL

# Allow members of group sudo to execute any command
%sudo   ALL=(ALL:ALL) ALL
%wheel  ALL=(ALL) NOPASSWD:ALL

# See sudoers(5) for more information on "#include" directives:

#includedir /etc/sudoers.d

YOURUSER เป็นชื่อผู้ใช้ของคุณบรรทัดนั้นอนุญาตให้ผู้ใช้เฉพาะเรียกใช้ SUDO โดยไม่ต้องใช้รหัสผ่าน

ผู้ใช้ทุกคนในกลุ่ม SUDO ต้องให้รหัสผ่าน

ผู้ใช้ทุกคนในกลุ่มวงล้อสามารถเรียกใช้ sudo ได้โดยไม่ต้องใช้รหัสผ่าน - มีประโยชน์ถ้าคุณต้องการให้ SUDO ACCESS แบบไม่มีรหัสผ่านแก่ผู้ใช้หลายคน

ยัง: - จำ% charachter ก่อนชื่อกลุ่ม - สามารถแก้ไข / etc / group ได้โดยตรง แต่ไม่แนะนำให้ทำ ใช้ ADDGROUP เพื่อแก้ไขดูข้อมูลเพิ่มเติมโดยพิมพ์: man addgroup

ฉันต้องเครียดอีกครั้งว่าจะแก้ไขไฟล์ sudoers โดยใช้คำสั่ง VISUDO ไม่เคยแก้ไขโดยตรง เพื่อให้แน่ใจว่าคุณได้รับไฟล์ sudoers ที่ถูกต้องเสมอการพิมพ์ข้อผิดพลาดหรือข้อความที่ไม่ถูกต้อง ฯลฯ เป็นสิ่งที่เลวร้ายมากในไฟล์สำคัญและ visudo ช่วยคุณทุกปัญหาที่คุณอาจไม่สามารถกู้คืนได้ด้วยตัวเอง นี่คือ "ใช้ visdo เสมอพวกเขาไม่บอกคุณเหรอ? หรืออะไรที่เหมือนกัน;)

-

คำทักทายจากฟินแลนด์ - ดีฤดูหนาวค่อนข้างดีที่นี่เพียง -10 องศาเซลเซียสไม่ต่ำกว่า -25 องศาเซลเซียส

\\ tatu-o


นอกจากนี้หากคุณไม่ต้องการที่จะเขียนคำสั่งยาว ๆ หรือมีแนวโน้มที่จะลืม - ธง, aliseses อยู่ที่นั่นสำหรับคุณ! ตรวจสอบ ~ / .bashrc ว่ามีการตั้งค่าไฟล์นามแฝงแล้วเพิ่มชื่อแทนคุณเป็น ~ / .bash_aliases
tatu stty
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.