คำถามติดแท็ก privileges

8
วิธีใดที่ปลอดภัยที่สุดในการรับสิทธิ์รูท: sudo, su หรือ login
ฉันต้องการให้บัญชีรูทมีความปลอดภัยแม้ว่าผู้ใช้ที่ไม่มีสิทธิ์ของฉันจะถูกบุกรุก บน Ubuntu คุณสามารถใช้ sudo ได้เฉพาะ "เหตุผลด้านความปลอดภัย" เท่านั้น อย่างไรก็ตามฉันไม่แน่ใจว่ามันปลอดภัยกว่าแค่ใช้ล็อกอินบนคอนโซลโหมดข้อความ มีหลายสิ่งหลายอย่างที่อาจผิดปกติได้หากผู้โจมตีสามารถเรียกใช้รหัสในฐานะผู้ใช้ปกติของฉันได้ ตัวอย่างเช่นการเพิ่มชื่อแทนการเพิ่มสิ่งต่างๆลงใน PATH ของฉันการตั้งค่าคีย์ล็อกเกอร์ LD_PRELOAD และ X11 เพื่อพูดถึงบางอย่าง ข้อได้เปรียบเดียวที่ฉันเห็นคือหมดเวลาดังนั้นฉันจึงไม่ลืมที่จะออกจากระบบ ฉันมีข้อสงสัยเหมือนกันเกี่ยวกับ su แต่มันไม่มีเวลา จำกัด การดำเนินการบางอย่าง (โดยเฉพาะการเปลี่ยนเส้นทาง IO) มีความมั่นใจมากขึ้นกับ su แต่การรักษาความปลอดภัยที่ชาญฉลาดน่าจะแย่กว่านี้ การลงชื่อเข้าใช้บนคอนโซลโหมดข้อความนั้นปลอดภัยที่สุด เนื่องจากมันเริ่มต้นโดย init หากผู้โจมตีสามารถควบคุม PATH หรือ LD_PRELOAD ได้ กิจกรรม keypress ไม่สามารถดักจับโดยโปรแกรมที่ทำงานบน X ฉันไม่รู้ว่าโปรแกรมที่ทำงานบน X สามารถดักจับ [ctrl] + [alt] + [f1] (และเปิดหน้าต่างเต็มหน้าจอที่ดูเหมือนคอนโซล) หรือ …
120 security  sudo  login  su  privileges 

3
internals of sudo ทำงานอย่างไร
วิธีการที่ไม่sudoทำงานภายใน? วิธีการที่จะเป็นไปได้ว่ามันจะกลายเป็นรากโดยไม่ต้องมีรหัสผ่านรากแตกต่างsu? อะไร syscalls ฯลฯ มีส่วนร่วมในกระบวนการ? ไม่ใช่ช่องโหว่ความปลอดภัยที่อ้าปากค้างใน Linux (เช่นทำไมฉันจึงไม่สามารถคอมไพล์โปรแกรมปะแก้sudoที่ทำตามปกติsudoไม่ได้ แต่ไม่ได้ขอรหัสผ่านของผู้ใช้ที่ไม่ได้รับสิทธิพิเศษ)? ฉันได้อ่านเข้าสู่ระบบและ internals ฉันได้อ่านด้วยsudo ตั้งใจจะใช้อย่างไร แต่แม้จะมีชื่อที่พวกเขาส่วนใหญ่จัดการกับความแตกต่างระหว่างและsusudo
74 sudo  root  privileges 


6
วิธีที่ปลอดภัยที่สุดสำหรับการเขียนทางโปรแกรมไปยังไฟล์ที่มีสิทธิ์รูทคืออะไร
แอปพลิเคชันขนาดใหญ่ต้องการในเวลาหนึ่งเพื่อทำการเขียนจำนวนเล็กน้อยไปยังไฟล์ที่ต้องการการอนุญาตรูต มันไม่ได้เป็นไฟล์จริงๆ แต่เป็นส่วนต่อประสานฮาร์ดแวร์ที่สัมผัสกับลีนุกซ์เป็นไฟล์ เพื่อหลีกเลี่ยงการให้สิทธิ์รูทแก่แอปพลิเคชันทั้งหมดฉันเขียนสคริปต์ทุบตีซึ่งทำหน้าที่สำคัญ ตัวอย่างเช่นสคริปต์ต่อไปนี้จะเปิดใช้งานพอร์ต 17 ของอินเตอร์เฟสฮาร์ดแวร์เป็นเอาต์พุต: echo "17" > /sys/class/gpio/export echo "out" > /sys/class/gpio/gpio17/direction อย่างไรก็ตามตามที่suidถูกปิดการใช้งานสำหรับสคริปต์ทุบตีในระบบของฉันฉันสงสัยว่าอะไรคือวิธีที่ดีที่สุดในการบรรลุเป้าหมาย ใช้วิธีแก้ปัญหาที่แสดงไว้ที่นี่ เรียกใช้สคริปต์ด้วยsudoจากแอปพลิเคชันหลักและแก้ไขรายการ sudoers ตามเพื่อหลีกเลี่ยงการต้องใช้รหัสผ่านเมื่อเรียกใช้สคริปต์ ฉันเล็กน้อยอึดอัดที่จะให้สิทธิ์ sudo echoไป เพียงแค่เขียนโปรแกรม C ด้วยfprintfและตั้งเป็น suid root ฮาร์ดโค้ดสตริงและชื่อไฟล์และตรวจสอบให้แน่ใจว่าเฉพาะ root เท่านั้นที่สามารถแก้ไขได้ หรืออ่านสตริงจากไฟล์ข้อความเช่นเดียวกันตรวจสอบให้แน่ใจว่าไม่มีใครสามารถแก้ไขไฟล์ได้ วิธีแก้ปัญหาอื่นที่ไม่ได้เกิดขึ้นกับฉันและปลอดภัยกว่าหรือง่ายกว่านั้นคือวิธีที่นำเสนอข้างต้น


8
สิทธิ์การเข้าถึงใดที่ผู้ใช้ระดับสูงไม่สามารถละเมิดได้
Fr. br จอร์จบอกในหนึ่งในการบรรยายของเขา (เป็นภาษารัสเซีย) ว่ามีสิทธิ์การเข้าถึงบางส่วนที่ superuser ไม่สามารถละเมิด นั่นคือมีสิทธิ์การเข้าถึงบางอย่างที่สามารถห้ามผู้ใช้ระดับสูงทำบางสิ่งได้ ฉันไม่สามารถค้นหาข้อมูลนี้บนอินเทอร์เน็ตและฉันอยากรู้ว่าพวกเขาคืออะไร นี่อาจเป็นสิ่งที่เกี่ยวข้องกับการประมวลผลหลักของระบบใช่ไหม บางทีเขาไม่สามารถหยุดกระบวนการบางอย่างของระบบ? หรือบางทีเขาไม่สามารถเรียกใช้กระบวนการในโหมดจริงได้? คำถามนี้ไม่เกี่ยวข้องกับ SELinux (จอร์จพูดถึงเรื่องนี้ก่อนคำถาม)

3
อะไรเป็นตัวกำหนดว่าคำสั่ง Linux ใดที่ต้องมีการเข้าถึงรูท
อะไรเป็นตัวกำหนดว่าคำสั่ง Linux ใดที่ต้องมีการเข้าถึงรูท ฉันเข้าใจถึงเหตุผลว่าทำไมจึงเป็นที่พึงปรารถนาที่apt-getควรพูดว่าต้องการrootสิทธิ์ แต่สิ่งที่แตกต่างคำสั่งเหล่านี้จากส่วนที่เหลือ? มันเป็นเพียงเรื่องของการเป็นเจ้าของและดำเนินการสิทธิ์ของปฏิบัติการหรือไม่?
23 linux  root  privileges 

3
สคริปต์ใดที่ทำให้ผู้ใช้ทั่วไปสามารถใช้เนมสเปซเครือข่ายได้
ฉันมีสถาปัตยกรรมที่ใช้เนมสเปซเครือข่าย (netns) ฉันต้องการอนุญาตให้ผู้ใช้ทั่วไปทำการดำเนินการบางอย่างในเน็ตเหล่านี้ ฉันสามารถเขียนสคริปต์netns-exec.shซึ่งได้รับแรงบันดาลใจจากโพสต์นี้ดำเนินการโดยsudoมี: ip netns exec $1 su $USER -c "$2" และเพิ่มลงในไฟล์ sudoer ของฉัน: user ALL=(ALL) /path/to/netns-exec.sh แต่ฉันคิดว่ามันน่าเกลียดมากจนฉันสามารถฝันร้ายได้โดยสิ้นเชิง มีวิธีแก้ปัญหาที่ดีกว่าเพื่อให้ผู้ใช้ทั่วไปสามารถใช้เนมสเปซหรือไม่ เป็นไปได้ไหมที่จะนำผู้ใช้ไปสู่กลุ่มที่มีประโยชน์บางกลุ่ม? ฉันค้นหามัน แต่ไม่พบอะไรเลย

3
GID, ปัจจุบัน, หลัก, เสริม, มีประสิทธิภาพและ ID กลุ่มจริงหรือไม่
ลิงค์ต่อไปนี้จะกล่าวถึงแนวคิดเหล่านี้ในบริบทที่แตกต่างกัน ฉันได้อ่านคำจำกัดความของพวกเขาแล้ว แต่ฉันก็ยังบอกไม่ได้ว่าพวกมันเกี่ยวข้องกันอย่างไรหรือบางคนก็เหมือนกัน ID กลุ่มปัจจุบัน รหัสกลุ่ม รหัสกลุ่มหลักและกลุ่มเสริม ID กลุ่มที่มีประสิทธิภาพและแท้จริง (เช่นเดียวกับ Wikipedia ) นี่คือตัวอย่างหนึ่งของแหล่งที่มาของความสับสนของฉัน: ตามที่man idฉันพิมพ์idฉันควรได้รับสิ่งที่พวกเขาเรียกว่ามีประสิทธิภาพและรหัสกลุ่มจริง id uid=501(joe) gid=501(joe) groups=501(joe), 100(users) อย่างไรก็ตามWikipediaหมายถึงผลลัพธ์ของidการแยกแยะระหว่างID หลักและรหัสเสริม นอกจากนี้วิกิพีเดียแตกต่างระหว่างหลัก VS เสริมและมีประสิทธิภาพ VS จริงรหัสกลุ่ม แนวคิดเหล่านี้เกี่ยวข้องกันอย่างไร นอกจากนี้เป็นจริงหรือไม่ที่กลุ่มหลัก ID = กลุ่ม ID = ID กลุ่มปัจจุบัน ?

4
ทำไม sudo ทำงานบน Linux แต่ไม่ใช่ Android?
ฉันไม่ได้มีโอกาสอ่านมากพอเกี่ยวกับAndroid , Linux หรือ UNIX เพื่อตอบคำถามนี้ด้วยตัวเอง sudoใช้งานได้บนเครื่อง Linux แต่ไม่สามารถใช้งานบน Android ได้จนกว่าคุณจะรูทอุปกรณ์มือถือ (เช่น Samsung GT-N8013) ทำไมอุปกรณ์มือถือจำเป็นต้องรูท แต่ไม่ใช่การติดตั้งลีนุกซ์ทั่วไป? บริบทของคำถามของฉันเกี่ยวข้องกับ /programming/14019698/adb-shell-sudo-on-windows-7/14019726#14019726 (นอกจากนี้ยังมีวิธีใดบ้างที่โปรแกรมจะขอให้ทำงานrootบน Android เช่นเดียวกับที่คุณมีการเพิ่มสิทธิ์ในการ "เรียกใช้ในฐานะผู้ดูแลระบบ" บน Windows หรือไม่หากคุณคิดว่าคำถามนี้ควรอยู่ในเธรดของตัวเอง หนึ่ง)

1
อนุญาตให้แขกบางคนดำเนินการคำสั่งบางอย่าง
ฉันต้องการสร้างผู้ใช้ใหม่บนโฮสต์ Debian / Ubuntu บางแห่งที่สามารถอัปเดตเซิร์ฟเวอร์โดยใช้คำสั่งapt-get updateและapt-get dist-upgradeแต่ฉันไม่ต้องการให้พวกเขาเข้าถึง sudo อย่างเต็มที่เพื่อให้สามารถทำสิ่งอื่นได้ เป็นไปได้ไหม อาจมีวิธีการสร้างสคริปต์ที่ไม่สามารถแก้ไข แต่สามารถดำเนินการได้ซึ่งจะได้รับการดำเนินการในฐานะผู้ใช้รูท?

3
ประโยชน์และข้อเสียของภาชนะบรรจุที่ไม่มีสิทธิประโยชน์คืออะไร
คำอธิบายทางเทคนิคของสิ่งที่ไม่ได้รับสิทธิพิเศษค่อนข้างดี อย่างไรก็ตามไม่ใช่สำหรับผู้ใช้พีซีทั่วไป มีคำตอบง่ายๆเมื่อใดและเพราะเหตุใดผู้คนจึงควรใช้ภาชนะที่ไม่ได้รับสิทธิพิเศษและประโยชน์และข้อเสียของพวกเขาคืออะไร?

3
ทำให้ทุกกระบวนการของผู้ใช้ที่กำหนดสามารถฆ่าได้โดยใครก็ได้
บนเซิร์ฟเวอร์ที่ใช้ร่วมกันฉันต้องการให้ผู้ใช้ที่มีระดับความสำคัญต่ำมาก ๆ ต้องใช้ทรัพยากรเมื่อใดก็ตามที่ผู้ใช้รายอื่น (ที่ไม่มีสิทธิ์รูท) ต้องการทรัพยากรพวกเขาสามารถฆ่ากระบวนการใด ๆ ของผู้ใช้ที่มีลำดับความสำคัญต่ำ เป็นไปได้ไหมที่จะปล่อยให้เป็นอย่างนั้น?

2
การสาธิตช่องโหว่บน Ubuntu 9.04
สำหรับชั้นเรียนเกี่ยวกับความปลอดภัยด้านไอทีฉันต้องการแสดงให้เห็นถึงการยกระดับสิทธิ์ให้กับนักเรียน เมื่อต้องการทำเช่นนั้นฉันได้ตรวจสอบexploit/linux/localรายการในกรอบ Metasploit ที่ค้นพบ (จากคนอื่น ๆ ) exploit/linux/local/sock_sendpageตั้งแต่เดือนสิงหาคม 2009 ฉันจะตั้งค่า VM กับ 32 บิตอูบุนตูเซิร์ฟเวอร์ 9.04 ( http://old-releases.ubuntu.com/releases/9.04/ubuntu-9.04-server-amd64.iso ) ตั้งแต่เดือนเมษายน 2009 ให้ฉันuname -r 2.6.28-11-genericตามคำอธิบายของการใช้ประโยชน์ Linux 2.4 / 2.6 ทุกรุ่นตั้งแต่พฤษภาคม 2001 เชื่อว่าจะได้รับผลกระทบ: 2.4.4 ขึ้นไปและรวมถึง 2.4.37.4; 2.6.0 ขึ้นไปและรวมถึง 2.6.30.4 ดังนั้นดูเหมือนว่าเซิร์ฟเวอร์ Ubuntu ที่ฉันตั้งค่าควรเหมาะสำหรับการสาธิต อย่างไรก็ตามฉันไม่สามารถทำงานได้ ฉันเพิ่มผู้ใช้ (ปกติ) บนเซิร์ฟเวอร์และการเข้าถึง SSH ทำงานได้ จากภายใน Metasploit auxiliary/scanner/ssh/ssh_loginกรอบฉันสามารถสร้างเซสชั่นโดยใช้ อย่างไรก็ตามเมื่อฉันใช้ประโยชน์จากฉันได้รับ [*] …

5
ฉันจะลบสิทธิพิเศษรูทในเชลล์สคริปต์ได้อย่างไร
ตัวเลือก "--up" ใน OpenVPN โดยปกติจะใช้สำหรับการเราต์เป็นต้นดังนั้นมันจะถูกประมวลผลก่อนที่ OpenVPN จะลดระดับสิทธิ์การใช้งานของรูทเพื่อไม่ให้มีใครทำงาน อย่างไรก็ตามฉันกำลังเรียกใช้เชลล์สคริปต์ที่จำเป็นต้องเรียกใช้ในฐานะผู้ใช้ที่ไม่มีสิทธิพิเศษ ฉันจะทำอย่างไร ฉันได้ศึกษาสิทธิ์ของ Drop Processโดยเฉพาะคำตอบของพหุนามและ tylerl แต่ฉันไม่เข้าใจวิธีการใช้ ฉันทำงานใน Centos 6.5 และ suid ถูกบล็อกทั้งสองเป็น "chmod u + s" และเป็น "setuid ()" มีปลั๊กอิน OpenVPN ("openvpn-down-root.so") ซึ่งเปิดใช้งานสคริปต์ที่เรียกใช้โดยตัวเลือก "--down" เพื่อเรียกใช้เป็นรูท อาจมีสิ่งที่เทียบเท่าเช่น "openvpn-up-user.so" แต่ฉันไม่พบมัน Edit0 คำตอบต่อ Nikola Kotur ผมได้ติดตั้งเอียนเมเยอร์ runit แม้ว่าคำสั่ง chpst จะทำงานในเทอร์มินัล แต่ในสคริปต์ up มันล้มเหลวด้วย "ไม่พบคำสั่ง" สิ่งที่ใช้ได้คือ …

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